RTEMS 4.11
Annotated Report
Sat Mar 19 13:51:49 2011

3001004c <TOD_MICROSECONDS_TO_TICKS>:                                 
                                                                      
uint32_t TOD_MICROSECONDS_TO_TICKS(                                   
  uint32_t microseconds                                               
)                                                                     
{                                                                     
  return (microseconds / rtems_configuration_get_microseconds_per_tick());
3001004c:	e59f300c 	ldr	r3, [pc, #12]	; 30010060 <TOD_MICROSECONDS_TO_TICKS+0x14><== NOT EXECUTED
#include <rtems/score/tod.h>                                          
                                                                      
uint32_t TOD_MICROSECONDS_TO_TICKS(                                   
  uint32_t microseconds                                               
)                                                                     
{                                                                     
30010050:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return (microseconds / rtems_configuration_get_microseconds_per_tick());
30010054:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
30010058:	eb00520b 	bl	3002488c <__aeabi_uidiv>                       <== NOT EXECUTED
}                                                                     
3001005c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000b73c <TOD_MILLISECONDS_TO_TICKS>: uint32_t TOD_MILLISECONDS_TO_TICKS( uint32_t milliseconds ) { return (milliseconds / rtems_configuration_get_milliseconds_per_tick());
3000b73c:	e59f3018 	ldr	r3, [pc, #24]	; 3000b75c <TOD_MILLISECONDS_TO_TICKS+0x20><== NOT EXECUTED
#include <rtems/score/tod.h>                                          
                                                                      
uint32_t TOD_MILLISECONDS_TO_TICKS(                                   
  uint32_t milliseconds                                               
)                                                                     
{                                                                     
3000b740:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return (milliseconds / rtems_configuration_get_milliseconds_per_tick());
3000b744:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
3000b748:	e59f3010 	ldr	r3, [pc, #16]	; 3000b760 <TOD_MILLISECONDS_TO_TICKS+0x24><== NOT EXECUTED
3000b74c:	e0812193 	umull	r2, r1, r3, r1                              <== NOT EXECUTED
3000b750:	e1a01321 	lsr	r1, r1, #6                                    <== NOT EXECUTED
3000b754:	eb00443b 	bl	3001c848 <__aeabi_uidiv>                       <== NOT EXECUTED
}                                                                     
3000b758:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30011e64 <TOD_TICKS_PER_SECOND_method>: #include <rtems/config.h> #include <rtems/score/tod.h> uint32_t TOD_TICKS_PER_SECOND_method(void) { return (TOD_MICROSECONDS_PER_SECOND /
30011e64:	e59f3010 	ldr	r3, [pc, #16]	; 30011e7c <TOD_TICKS_PER_SECOND_method+0x18><== NOT EXECUTED
#include <rtems/system.h>                                             
#include <rtems/config.h>                                             
#include <rtems/score/tod.h>                                          
                                                                      
uint32_t TOD_TICKS_PER_SECOND_method(void)                            
{                                                                     
30011e68:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return (TOD_MICROSECONDS_PER_SECOND /                               
30011e6c:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
30011e70:	e59f0008 	ldr	r0, [pc, #8]	; 30011e80 <TOD_TICKS_PER_SECOND_method+0x1c><== NOT EXECUTED
30011e74:	eb000e42 	bl	30015784 <__aeabi_uidiv>                       <== NOT EXECUTED
      rtems_configuration_get_microseconds_per_tick());               
}                                                                     
30011e78:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000cfcc <_CORE_RWLock_Initialize>: CORE_RWLock_Control *the_rwlock, CORE_RWLock_Attributes *the_rwlock_attributes ) { the_rwlock->Attributes = *the_rwlock_attributes;
3000cfcc:	e5912000 	ldr	r2, [r1]                                      <== NOT EXECUTED
  the_rwlock->number_of_waiting_threads = 0;                          
*/                                                                    
  the_rwlock->number_of_readers = 0;                                  
  the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                   
                                                                      
  _Thread_queue_Initialize(                                           
3000cfd0:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
                                                                      
  the_rwlock->Attributes                = *the_rwlock_attributes;     
/*                                                                    
  the_rwlock->number_of_waiting_threads = 0;                          
*/                                                                    
  the_rwlock->number_of_readers = 0;                                  
3000cfd4:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
  CORE_RWLock_Control       *the_rwlock,                              
  CORE_RWLock_Attributes    *the_rwlock_attributes                    
)                                                                     
{                                                                     
                                                                      
  the_rwlock->Attributes                = *the_rwlock_attributes;     
3000cfd8:	e5802040 	str	r2, [r0, #64]	; 0x40                          <== NOT EXECUTED
  the_rwlock->number_of_waiting_threads = 0;                          
*/                                                                    
  the_rwlock->number_of_readers = 0;                                  
  the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                   
                                                                      
  _Thread_queue_Initialize(                                           
3000cfdc:	e3a02802 	mov	r2, #131072	; 0x20000                         <== NOT EXECUTED
                                                                      
  the_rwlock->Attributes                = *the_rwlock_attributes;     
/*                                                                    
  the_rwlock->number_of_waiting_threads = 0;                          
*/                                                                    
  the_rwlock->number_of_readers = 0;                                  
3000cfe0:	e5801048 	str	r1, [r0, #72]	; 0x48                          <== NOT EXECUTED
  the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                   
3000cfe4:	e5801044 	str	r1, [r0, #68]	; 0x44                          <== NOT EXECUTED
                                                                      
  _Thread_queue_Initialize(                                           
3000cfe8:	ea0008d1 	b	3000f334 <_Thread_queue_Initialize>             <== NOT EXECUTED
                                                                      

3000cfec <_CORE_RWLock_Obtain_for_reading>: Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { ISR_Level level; Thread_Control *executing = _Thread_Executing;
3000cfec:	e59fc0cc 	ldr	ip, [pc, #204]	; 3000d0c0 <_CORE_RWLock_Obtain_for_reading+0xd4><== NOT EXECUTED
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_RWLock_API_mp_support_callout   api_rwlock_mp_support          
)                                                                     
{                                                                     
3000cff0:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
3000cff4:	e59c5004 	ldr	r5, [ip, #4]                                  <== NOT EXECUTED
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_RWLock_API_mp_support_callout   api_rwlock_mp_support          
)                                                                     
{                                                                     
3000cff8:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000cffc:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
3000d000:	e1a06003 	mov	r6, r3                                        <== NOT EXECUTED
3000d004:	e202a0ff 	and	sl, r2, #255	; 0xff                           <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000d008:	e10f8000 	mrs	r8, CPSR                                      <== NOT EXECUTED
3000d00c:	e3883080 	orr	r3, r8, #128	; 0x80                           <== NOT EXECUTED
3000d010:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
   *  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 ) {                            
3000d014:	e5903044 	ldr	r3, [r0, #68]	; 0x44                          <== NOT EXECUTED
3000d018:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000d01c:	1a000008 	bne	3000d044 <_CORE_RWLock_Obtain_for_reading+0x58><== NOT EXECUTED
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
	the_rwlock->number_of_readers += 1;                                  
3000d020:	e5903048 	ldr	r3, [r0, #72]	; 0x48                          <== NOT EXECUTED
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    switch ( the_rwlock->current_state ) {                            
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
3000d024:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
	the_rwlock->number_of_readers += 1;                                  
3000d028:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    switch ( the_rwlock->current_state ) {                            
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;          
3000d02c:	e5802044 	str	r2, [r0, #68]	; 0x44                          <== NOT EXECUTED
	the_rwlock->number_of_readers += 1;                                  
3000d030:	e5803048 	str	r3, [r0, #72]	; 0x48                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d034:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
	_ISR_Enable( level );                                                
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
3000d038:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000d03c:	e5853034 	str	r3, [r5, #52]	; 0x34                          <== NOT EXECUTED
	return;                                                              
3000d040:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
   *  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 ) {                            
3000d044:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000d048:	0a000012 	beq	3000d098 <_CORE_RWLock_Obtain_for_reading+0xac><== NOT EXECUTED
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
3000d04c:	e35a0000 	cmp	sl, #0                                        <== NOT EXECUTED
3000d050:	1a000003 	bne	3000d064 <_CORE_RWLock_Obtain_for_reading+0x78><== NOT EXECUTED
3000d054:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
3000d058:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000d05c:	e5853034 	str	r3, [r5, #52]	; 0x34                          <== NOT EXECUTED
3000d060:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
     */                                                               
                                                                      
    _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue );  
    executing->Wait.queue       = &the_rwlock->Wait_queue;            
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
3000d064:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000d068:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000d06c:	e5842030 	str	r2, [r4, #48]	; 0x30                          <== NOT EXECUTED
    /*                                                                
     *  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;            
3000d070:	e5854044 	str	r4, [r5, #68]	; 0x44                          <== NOT EXECUTED
    executing->Wait.id          = id;                                 
3000d074:	e5857020 	str	r7, [r5, #32]                                 <== NOT EXECUTED
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_READ;
3000d078:	e5853030 	str	r3, [r5, #48]	; 0x30                          <== NOT EXECUTED
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
3000d07c:	e5853034 	str	r3, [r5, #52]	; 0x34                          <== NOT EXECUTED
3000d080:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
3000d084:	e59f2038 	ldr	r2, [pc, #56]	; 3000d0c4 <_CORE_RWLock_Obtain_for_reading+0xd8><== NOT EXECUTED
3000d088:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000d08c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
       timeout,                                                       
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
3000d090:	e8bd45f0 	pop	{r4, r5, r6, r7, r8, sl, lr}                  <== NOT EXECUTED
    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(                               
3000d094:	ea00079c 	b	3000ef0c <_Thread_queue_Enqueue_with_handler>   <== NOT EXECUTED
	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 );      
3000d098:	eb000880 	bl	3000f2a0 <_Thread_queue_First>                 <== NOT EXECUTED
        if ( !waiter ) {                                              
3000d09c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000d0a0:	1affffe9 	bne	3000d04c <_CORE_RWLock_Obtain_for_reading+0x60><== NOT EXECUTED
	  the_rwlock->number_of_readers += 1;                                
3000d0a4:	e5943048 	ldr	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
3000d0a8:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000d0ac:	e5843048 	str	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
3000d0b0:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
	  _ISR_Enable( level );                                              
	  executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;              
3000d0b4:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000d0b8:	e5853034 	str	r3, [r5, #52]	; 0x34                          <== NOT EXECUTED
          return;                                                     
3000d0bc:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
                                                                      

3000d0c8 <_CORE_RWLock_Obtain_for_writing>: Watchdog_Interval timeout, CORE_RWLock_API_mp_support_callout api_rwlock_mp_support ) { ISR_Level level; Thread_Control *executing = _Thread_Executing;
3000d0c8:	e59fc084 	ldr	ip, [pc, #132]	; 3000d154 <_CORE_RWLock_Obtain_for_writing+0x8c><== NOT EXECUTED
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_RWLock_API_mp_support_callout   api_rwlock_mp_support          
)                                                                     
{                                                                     
3000d0cc:	e92d0030 	push	{r4, r5}                                     <== NOT EXECUTED
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
3000d0d0:	e59cc004 	ldr	ip, [ip, #4]                                  <== NOT EXECUTED
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_RWLock_API_mp_support_callout   api_rwlock_mp_support          
)                                                                     
{                                                                     
3000d0d4:	e20220ff 	and	r2, r2, #255	; 0xff                           <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000d0d8:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
3000d0dc:	e3854080 	orr	r4, r5, #128	; 0x80                           <== NOT EXECUTED
3000d0e0:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
   *  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 ) {                            
3000d0e4:	e5904044 	ldr	r4, [r0, #68]	; 0x44                          <== NOT EXECUTED
3000d0e8:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000d0ec:	1a000006 	bne	3000d10c <_CORE_RWLock_Obtain_for_writing+0x44><== NOT EXECUTED
      case CORE_RWLOCK_UNLOCKED:                                      
	the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;          
3000d0f0:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000d0f4:	e5803044 	str	r3, [r0, #68]	; 0x44                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d0f8:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
	_ISR_Enable( level );                                                
	executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;                
3000d0fc:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000d100:	e58c3034 	str	r3, [ip, #52]	; 0x34                          <== NOT EXECUTED
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
3000d104:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
3000d108:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      
    /*                                                                
     *  If the thread is not willing to wait, then return immediately.
     */                                                               
                                                                      
    if ( !wait ) {                                                    
3000d10c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000d110:	1a000003 	bne	3000d124 <_CORE_RWLock_Obtain_for_writing+0x5c><== NOT EXECUTED
3000d114:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
3000d118:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000d11c:	e58c3034 	str	r3, [ip, #52]	; 0x34                          <== NOT EXECUTED
3000d120:	eafffff7 	b	3000d104 <_CORE_RWLock_Obtain_for_writing+0x3c> <== NOT EXECUTED
3000d124:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000d128:	e5802030 	str	r2, [r0, #48]	; 0x30                          <== NOT EXECUTED
     */                                                               
                                                                      
    _Thread_queue_Enter_critical_section( &the_rwlock->Wait_queue );  
    executing->Wait.queue       = &the_rwlock->Wait_queue;            
    executing->Wait.id          = id;                                 
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE;
3000d12c:	e58c2030 	str	r2, [ip, #48]	; 0x30                          <== NOT EXECUTED
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
3000d130:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
    /*                                                                
     *  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;            
3000d134:	e58c0044 	str	r0, [ip, #68]	; 0x44                          <== NOT EXECUTED
    executing->Wait.id          = id;                                 
3000d138:	e58c1020 	str	r1, [ip, #32]                                 <== NOT EXECUTED
    executing->Wait.option      = CORE_RWLOCK_THREAD_WAITING_FOR_WRITE;
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
3000d13c:	e58c2034 	str	r2, [ip, #52]	; 0x34                          <== NOT EXECUTED
3000d140:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
                                                                      
    _Thread_queue_Enqueue_with_handler(                               
3000d144:	e59f200c 	ldr	r2, [pc, #12]	; 3000d158 <_CORE_RWLock_Obtain_for_writing+0x90><== NOT EXECUTED
3000d148:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
       _CORE_RWLock_Timeout                                           
    );                                                                
                                                                      
                                                                      
    /* return to API level so it can dispatch and we block */         
}                                                                     
3000d14c:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
    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(                               
3000d150:	ea00076d 	b	3000ef0c <_Thread_queue_Enqueue_with_handler>   <== NOT EXECUTED
                                                                      

3000d15c <_CORE_RWLock_Release>: CORE_RWLock_Status _CORE_RWLock_Release( CORE_RWLock_Control *the_rwlock ) { ISR_Level level; Thread_Control *executing = _Thread_Executing;
3000d15c:	e59f30e0 	ldr	r3, [pc, #224]	; 3000d244 <_CORE_RWLock_Release+0xe8><== NOT EXECUTED
 */                                                                   
                                                                      
CORE_RWLock_Status _CORE_RWLock_Release(                              
  CORE_RWLock_Control  *the_rwlock                                    
)                                                                     
{                                                                     
3000d160:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  ISR_Level       level;                                              
  Thread_Control *executing = _Thread_Executing;                      
3000d164:	e5931004 	ldr	r1, [r3, #4]                                  <== NOT EXECUTED
 */                                                                   
                                                                      
CORE_RWLock_Status _CORE_RWLock_Release(                              
  CORE_RWLock_Control  *the_rwlock                                    
)                                                                     
{                                                                     
3000d168:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000d16c:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000d170:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3000d174:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
   *  If locked for reading and no waiters, then OK to read.          
   *  If any thread is waiting, then we wait.                         
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
3000d178:	e5903044 	ldr	r3, [r0, #68]	; 0x44                          <== NOT EXECUTED
3000d17c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000d180:	0a00002a 	beq	3000d230 <_CORE_RWLock_Release+0xd4>          <== NOT EXECUTED
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
      return CORE_RWLOCK_SUCCESSFUL;                                  
    }                                                                 
    if ( the_rwlock->current_state == CORE_RWLOCK_LOCKED_FOR_READING ) {
3000d184:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000d188:	0a000020 	beq	3000d210 <_CORE_RWLock_Release+0xb4>          <== NOT EXECUTED
          return CORE_RWLOCK_SUCCESSFUL;                              
        }                                                             
    }                                                                 
                                                                      
    /* CORE_RWLOCK_LOCKED_FOR_WRITING or READING with readers */      
    executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;             
3000d18c:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000d190:	e5813034 	str	r3, [r1, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
    /*                                                                
     * Implicitly transition to "unlocked" and find another thread interested
     * in obtaining this rwlock.                                      
     */                                                               
    the_rwlock->current_state = CORE_RWLOCK_UNLOCKED;                 
3000d194:	e5843044 	str	r3, [r4, #68]	; 0x44                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d198:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
  _ISR_Enable( level );                                               
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
3000d19c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000d1a0:	eb0006fb 	bl	3000ed94 <_Thread_queue_Dequeue>               <== NOT EXECUTED
                                                                      
  if ( next ) {                                                       
3000d1a4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000d1a8:	0a000016 	beq	3000d208 <_CORE_RWLock_Release+0xac>          <== NOT EXECUTED
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
3000d1ac:	e5903030 	ldr	r3, [r0, #48]	; 0x30                          <== NOT EXECUTED
3000d1b0:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
      the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_WRITING;     
3000d1b4:	03a03002 	moveq	r3, #2                                      <== NOT EXECUTED
3000d1b8:	05843044 	streq	r3, [r4, #68]	; 0x44                        <== NOT EXECUTED
  _ISR_Enable( level );                                               
                                                                      
  next = _Thread_queue_Dequeue( &the_rwlock->Wait_queue );            
                                                                      
  if ( next ) {                                                       
    if ( next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE ) {
3000d1bc:	0a000011 	beq	3000d208 <_CORE_RWLock_Release+0xac>          <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     * Must be CORE_RWLOCK_THREAD_WAITING_FOR_READING                 
     */                                                               
    the_rwlock->number_of_readers += 1;                               
3000d1c0:	e5943048 	ldr	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
3000d1c4:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000d1c8:	e5843048 	str	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
    the_rwlock->current_state = CORE_RWLOCK_LOCKED_FOR_READING;       
3000d1cc:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000d1d0:	e5843044 	str	r3, [r4, #68]	; 0x44                          <== NOT EXECUTED
3000d1d4:	ea000007 	b	3000d1f8 <_CORE_RWLock_Release+0x9c>            <== NOT EXECUTED
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
      if ( !next ||                                                   
3000d1d8:	e5913030 	ldr	r3, [r1, #48]	; 0x30                          <== NOT EXECUTED
           next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE )
        return CORE_RWLOCK_SUCCESSFUL;                                
      the_rwlock->number_of_readers += 1;                             
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
3000d1dc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
      if ( !next ||                                                   
3000d1e0:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000d1e4:	0a000007 	beq	3000d208 <_CORE_RWLock_Release+0xac>          <== NOT EXECUTED
           next->Wait.option == CORE_RWLOCK_THREAD_WAITING_FOR_WRITE )
        return CORE_RWLOCK_SUCCESSFUL;                                
      the_rwlock->number_of_readers += 1;                             
3000d1e8:	e5943048 	ldr	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
3000d1ec:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000d1f0:	e5843048 	str	r3, [r4, #72]	; 0x48                          <== NOT EXECUTED
      _Thread_queue_Extract( &the_rwlock->Wait_queue, next );         
3000d1f4:	eb0007dc 	bl	3000f16c <_Thread_queue_Extract>               <== NOT EXECUTED
                                                                      
    /*                                                                
     * Now see if more readers can be let go.                         
     */                                                               
    while ( 1 ) {                                                     
      next = _Thread_queue_First( &the_rwlock->Wait_queue );          
3000d1f8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000d1fc:	eb000827 	bl	3000f2a0 <_Thread_queue_First>                 <== NOT EXECUTED
      if ( !next ||                                                   
3000d200:	e2501000 	subs	r1, r0, #0                                   <== NOT EXECUTED
3000d204:	1afffff3 	bne	3000d1d8 <_CORE_RWLock_Release+0x7c>          <== NOT EXECUTED
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
3000d208:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000d20c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
      _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;                                  
3000d210:	e5903048 	ldr	r3, [r0, #72]	; 0x48                          <== NOT EXECUTED
3000d214:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
	if ( the_rwlock->number_of_readers != 0 ) {                          
3000d218:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
      _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;                                  
3000d21c:	e5803048 	str	r3, [r0, #72]	; 0x48                          <== NOT EXECUTED
	if ( the_rwlock->number_of_readers != 0 ) {                          
3000d220:	0affffd9 	beq	3000d18c <_CORE_RWLock_Release+0x30>          <== NOT EXECUTED
3000d224:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
3000d228:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000d22c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
3000d230:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
    if ( the_rwlock->current_state == CORE_RWLOCK_UNLOCKED){          
      _ISR_Enable( level );                                           
      executing->Wait.return_code = CORE_RWLOCK_UNAVAILABLE;          
3000d234:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000d238:	e5813034 	str	r3, [r1, #52]	; 0x34                          <== NOT EXECUTED
  }                                                                   
                                                                      
  /* indentation is to match _ISR_Disable at top */                   
                                                                      
  return CORE_RWLOCK_SUCCESSFUL;                                      
}                                                                     
3000d23c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000d240:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000d248 <_CORE_RWLock_Timeout>: void _CORE_RWLock_Timeout( Objects_Id id, void *ignored ) {
3000d248:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
3000d24c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000d250:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000d254:	eb000609 	bl	3000ea80 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000d258:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000d25c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000d260:	1a000004 	bne	3000d278 <_CORE_RWLock_Timeout+0x30>          <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
3000d264:	eb00084d 	bl	3000f3a0 <_Thread_queue_Process_timeout>       <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000d268:	e59f3010 	ldr	r3, [pc, #16]	; 3000d280 <_CORE_RWLock_Timeout+0x38><== NOT EXECUTED
3000d26c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000d270:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000d274:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
3000d278:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000d27c:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000b9a8 <_CORE_barrier_Wait>: ) { Thread_Control *executing; ISR_Level level; executing = _Thread_Executing;
3000b9a8:	e59f2078 	ldr	r2, [pc, #120]	; 3000ba28 <_CORE_barrier_Wait+0x80>
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
3000b9ac:	e92d0070 	push	{r4, r5, r6}                                 
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
3000b9b0:	e592c004 	ldr	ip, [r2, #4]                                  
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
3000b9b4:	e3a04000 	mov	r4, #0                                        
3000b9b8:	e58c4034 	str	r4, [ip, #52]	; 0x34                          
  Objects_Id                           id,                            
  bool                                 wait,                          
  Watchdog_Interval                    timeout,                       
  CORE_barrier_API_mp_support_callout  api_barrier_mp_support         
)                                                                     
{                                                                     
3000b9bc:	e59d200c 	ldr	r2, [sp, #12]                                 
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000b9c0:	e10f6000 	mrs	r6, CPSR                                      
3000b9c4:	e3864080 	orr	r4, r6, #128	; 0x80                           
3000b9c8:	e129f004 	msr	CPSR_fc, r4                                   
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
  the_barrier->number_of_waiting_threads++;                           
3000b9cc:	e5904048 	ldr	r4, [r0, #72]	; 0x48                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
3000b9d0:	e5905040 	ldr	r5, [r0, #64]	; 0x40                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
  the_barrier->number_of_waiting_threads++;                           
3000b9d4:	e2844001 	add	r4, r4, #1                                    
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
3000b9d8:	e3550000 	cmp	r5, #0                                        
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_BARRIER_STATUS_SUCCESSFUL;       
  _ISR_Disable( level );                                              
  the_barrier->number_of_waiting_threads++;                           
3000b9dc:	e5804048 	str	r4, [r0, #72]	; 0x48                          
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
3000b9e0:	1a000002 	bne	3000b9f0 <_CORE_barrier_Wait+0x48>            
    if ( the_barrier->number_of_waiting_threads ==                    
3000b9e4:	e5905044 	ldr	r5, [r0, #68]	; 0x44                          <== NOT EXECUTED
3000b9e8:	e1540005 	cmp	r4, r5                                        <== NOT EXECUTED
3000b9ec:	0a000008 	beq	3000ba14 <_CORE_barrier_Wait+0x6c>            <== NOT EXECUTED
                                                                      
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;
3000b9f0:	e3a02001 	mov	r2, #1                                        
3000b9f4:	e5802030 	str	r2, [r0, #48]	; 0x30                          
      return;                                                         
    }                                                                 
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
3000b9f8:	e58c0044 	str	r0, [ip, #68]	; 0x44                          
  executing->Wait.id             = id;                                
3000b9fc:	e58c1020 	str	r1, [ip, #32]                                 
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000ba00:	e129f006 	msr	CPSR_fc, r6                                   
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
3000ba04:	e59f2020 	ldr	r2, [pc, #32]	; 3000ba2c <_CORE_barrier_Wait+0x84>
3000ba08:	e1a01003 	mov	r1, r3                                        
}                                                                     
3000ba0c:	e8bd0070 	pop	{r4, r5, r6}                                  
  _Thread_queue_Enter_critical_section( &the_barrier->Wait_queue );   
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
3000ba10:	ea0007e9 	b	3000d9bc <_Thread_queue_Enqueue_with_handler>   
  _ISR_Disable( level );                                              
  the_barrier->number_of_waiting_threads++;                           
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
3000ba14:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000ba18:	e58c3034 	str	r3, [ip, #52]	; 0x34                          <== NOT EXECUTED
3000ba1c:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
  executing->Wait.queue          = &the_barrier->Wait_queue;          
  executing->Wait.id             = id;                                
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );         
}                                                                     
3000ba20:	e8bd0070 	pop	{r4, r5, r6}                                  <== NOT EXECUTED
  if ( _CORE_barrier_Is_automatic( &the_barrier->Attributes ) ) {     
    if ( the_barrier->number_of_waiting_threads ==                    
	 the_barrier->Attributes.maximum_count) {                            
      executing->Wait.return_code = CORE_BARRIER_STATUS_AUTOMATICALLY_RELEASED;
      _ISR_Enable( level );                                           
      _CORE_barrier_Release( the_barrier, id, api_barrier_mp_support );
3000ba24:	ea00158f 	b	30011068 <_CORE_barrier_Release>                <== NOT EXECUTED
                                                                      

3001b244 <_CORE_message_queue_Broadcast>: { Thread_Control *the_thread; uint32_t number_broadcasted; Thread_Wait_information *waitp; if ( size > the_message_queue->maximum_message_size ) {
3001b244:	e590304c 	ldr	r3, [r0, #76]	; 0x4c                          
    Objects_Id                                 id __attribute__((unused)),
    CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support __attribute__((unused)),
  #endif                                                              
  uint32_t                                  *count                    
)                                                                     
{                                                                     
3001b248:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
3001b24c:	e1530002 	cmp	r3, r2                                        
    Objects_Id                                 id __attribute__((unused)),
    CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support __attribute__((unused)),
  #endif                                                              
  uint32_t                                  *count                    
)                                                                     
{                                                                     
3001b250:	e1a07000 	mov	r7, r0                                        
3001b254:	e1a05002 	mov	r5, r2                                        
3001b258:	e1a08001 	mov	r8, r1                                        
3001b25c:	e59da020 	ldr	sl, [sp, #32]                                 
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
3001b260:	3a000016 	bcc	3001b2c0 <_CORE_message_queue_Broadcast+0x7c> 
   *  NOTE: This check is critical because threads can block on       
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
3001b264:	e5906048 	ldr	r6, [r0, #72]	; 0x48                          
3001b268:	e3560000 	cmp	r6, #0                                        
    *count = 0;                                                       
3001b26c:	13a00000 	movne	r0, #0                                      
3001b270:	158a0000 	strne	r0, [sl]                                    
   *  NOTE: This check is critical because threads can block on       
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
3001b274:	18bd85f0 	popne	{r4, r5, r6, r7, r8, sl, pc}                
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
3001b278:	e1a00007 	mov	r0, r7                                        
3001b27c:	eb000b5e 	bl	3001dffc <_Thread_queue_Dequeue>               
3001b280:	e2504000 	subs	r4, r0, #0                                   
3001b284:	0a00000a 	beq	3001b2b4 <_CORE_message_queue_Broadcast+0x70> 
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
3001b288:	e594002c 	ldr	r0, [r4, #44]	; 0x2c                          
3001b28c:	e1a01008 	mov	r1, r8                                        
3001b290:	e1a02005 	mov	r2, r5                                        
3001b294:	eb002424 	bl	3002432c <memcpy>                              
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
3001b298:	e5943028 	ldr	r3, [r4, #40]	; 0x28                          
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
3001b29c:	e1a00007 	mov	r0, r7                                        
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
3001b2a0:	e5835000 	str	r5, [r3]                                      
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
3001b2a4:	eb000b54 	bl	3001dffc <_Thread_queue_Dequeue>               
3001b2a8:	e2504000 	subs	r4, r0, #0                                   
          _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {   
    waitp = &the_thread->Wait;                                        
    number_broadcasted += 1;                                          
3001b2ac:	e2866001 	add	r6, r6, #1                                    
  /*                                                                  
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
  number_broadcasted = 0;                                             
  while ((the_thread =                                                
3001b2b0:	1afffff4 	bne	3001b288 <_CORE_message_queue_Broadcast+0x44> 
      if ( !_Objects_Is_local_id( the_thread->Object.id ) )           
        (*api_message_queue_mp_support) ( the_thread, id );           
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
3001b2b4:	e58a6000 	str	r6, [sl]                                      
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
3001b2b8:	e1a00004 	mov	r0, r4                                        
3001b2bc:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
  Thread_Control          *the_thread;                                
  uint32_t                 number_broadcasted;                        
  Thread_Wait_information *waitp;                                     
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
    return CORE_MESSAGE_QUEUE_STATUS_INVALID_SIZE;                    
3001b2c0:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
    #endif                                                            
                                                                      
  }                                                                   
  *count = number_broadcasted;                                        
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
3001b2c4:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
                                                                      

30013304 <_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 ) {
30013304:	e92d4070 	push	{r4, r5, r6, lr}                             
  /*                                                                  
   *  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)) {              
30013308:	e3130003 	tst	r3, #3                                        
  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                 
)                                                                     
{                                                                     
3001330c:	e1a04000 	mov	r4, r0                                        
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
  the_message_queue->number_of_pending_messages = 0;                  
30013310:	e3a00000 	mov	r0, #0                                        
  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                 
)                                                                     
{                                                                     
30013314:	e1a05001 	mov	r5, r1                                        
30013318:	e24dd004 	sub	sp, sp, #4                                    
  size_t message_buffering_required;                                  
  size_t allocated_message_size;                                      
                                                                      
  the_message_queue->maximum_pending_messages   = maximum_pending_messages;
3001331c:	e5842044 	str	r2, [r4, #68]	; 0x44                          
  the_message_queue->number_of_pending_messages = 0;                  
30013320:	e5840048 	str	r0, [r4, #72]	; 0x48                          
  the_message_queue->maximum_message_size       = maximum_message_size;
30013324:	e584304c 	str	r3, [r4, #76]	; 0x4c                          
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
30013328:	e5840060 	str	r0, [r4, #96]	; 0x60                          
    the_message_queue->notify_argument = the_argument;                
3001332c:	e5840064 	str	r0, [r4, #100]	; 0x64                         
  /*                                                                  
   *  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)) {              
30013330:	01a01003 	moveq	r1, r3                                      
30013334:	0a000005 	beq	30013350 <_CORE_message_queue_Initialize+0x4c>
    allocated_message_size += sizeof(uint32_t);                       
30013338:	e2831004 	add	r1, r3, #4                                    <== NOT EXECUTED
    allocated_message_size &= ~(sizeof(uint32_t) - 1);                
3001333c:	e3c11003 	bic	r1, r1, #3                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  if (allocated_message_size < maximum_message_size)                  
30013340:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
30013344:	9a000001 	bls	30013350 <_CORE_message_queue_Initialize+0x4c><== NOT EXECUTED
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
}                                                                     
30013348:	e28dd004 	add	sp, sp, #4                                    
3001334c:	e8bd8070 	pop	{r4, r5, r6, pc}                              
  /*                                                                  
   *  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));
30013350:	e2816014 	add	r6, r1, #20                                   
                                                                      
  /*                                                                  
   *  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 *    
30013354:	e0000692 	mul	r0, r2, r6                                    
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
30013358:	e1500001 	cmp	r0, r1                                        
    return false;                                                     
3001335c:	33a00000 	movcc	r0, #0                                      
   *  check for overflow on the multiplication.                       
   */                                                                 
  message_buffering_required = (size_t) maximum_pending_messages *    
       (allocated_message_size + sizeof(CORE_message_queue_Buffer_control));
                                                                      
  if (message_buffering_required < allocated_message_size)            
30013360:	3afffff8 	bcc	30013348 <_CORE_message_queue_Initialize+0x44>
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
30013364:	e58d2000 	str	r2, [sp]                                      
30013368:	eb000c25 	bl	30016404 <_Workspace_Allocate>                 
                                                                      
  if (the_message_queue->message_buffers == 0)                        
3001336c:	e3500000 	cmp	r0, #0                                        
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
30013370:	e1a01000 	mov	r1, r0                                        
    return false;                                                     
                                                                      
  /*                                                                  
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
30013374:	e584005c 	str	r0, [r4, #92]	; 0x5c                          
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
30013378:	e59d2000 	ldr	r2, [sp]                                      
    return false;                                                     
3001337c:	01a00000 	moveq	r0, r0                                      
   *  Attempt to allocate the message memory                          
   */                                                                 
  the_message_queue->message_buffers = (CORE_message_queue_Buffer *)  
     _Workspace_Allocate( message_buffering_required );               
                                                                      
  if (the_message_queue->message_buffers == 0)                        
30013380:	0afffff0 	beq	30013348 <_CORE_message_queue_Initialize+0x44>
                                                                      
  /*                                                                  
   *  Initialize the pool of inactive messages, pending messages,     
   *  and set of waiting threads.                                     
   */                                                                 
  _Chain_Initialize (                                                 
30013384:	e2840068 	add	r0, r4, #104	; 0x68                           
30013388:	e1a03006 	mov	r3, r6                                        
3001338c:	eb001654 	bl	30018ce4 <_Chain_Initialize>                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
30013390:	e2842054 	add	r2, r4, #84	; 0x54                            
                                                                      
  head->next = tail;                                                  
30013394:	e5842050 	str	r2, [r4, #80]	; 0x50                          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
30013398:	e2843050 	add	r3, r4, #80	; 0x50                            
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
3001339c:	e3a02000 	mov	r2, #0                                        
300133a0:	e5842054 	str	r2, [r4, #84]	; 0x54                          
  tail->previous = head;                                              
300133a4:	e5843058 	str	r3, [r4, #88]	; 0x58                          
    allocated_message_size + sizeof( CORE_message_queue_Buffer_control )
  );                                                                  
                                                                      
  _Chain_Initialize_empty( &the_message_queue->Pending_messages );    
                                                                      
  _Thread_queue_Initialize(                                           
300133a8:	e5951000 	ldr	r1, [r5]                                      
300133ac:	e1a00004 	mov	r0, r4                                        
300133b0:	e3510001 	cmp	r1, #1                                        
300133b4:	13a01000 	movne	r1, #0                                      
300133b8:	03a01001 	moveq	r1, #1                                      
300133bc:	e3a02080 	mov	r2, #128	; 0x80                               
300133c0:	e3a03006 	mov	r3, #6                                        
300133c4:	eb000973 	bl	30015998 <_Thread_queue_Initialize>            
       THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    STATES_WAITING_FOR_MESSAGE,                                       
    CORE_MESSAGE_QUEUE_STATUS_TIMEOUT                                 
  );                                                                  
                                                                      
  return true;                                                        
300133c8:	e3a00001 	mov	r0, #1                                        
300133cc:	eaffffdd 	b	30013348 <_CORE_message_queue_Initialize+0x44>  
                                                                      

30018d48 <_CORE_message_queue_Insert_message>: _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 ) {
30018d48:	e3720106 	cmn	r2, #-2147483647	; 0x80000001                 
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                      
)                                                                     
{                                                                     
30018d4c:	e92d4030 	push	{r4, r5, lr}                                 
30018d50:	e5812008 	str	r2, [r1, #8]                                  
        _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 ) {           
30018d54:	0a000027 	beq	30018df8 <_CORE_message_queue_Insert_message+0xb0>
      _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 ) {  
30018d58:	e3520102 	cmp	r2, #-2147483648	; 0x80000000                 
30018d5c:	0a000037 	beq	30018e40 <_CORE_message_queue_Insert_message+0xf8>
     *  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                                                              
}                                                                     
30018d60:	e5903050 	ldr	r3, [r0, #80]	; 0x50                          <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
30018d64:	e280c054 	add	ip, r0, #84	; 0x54                            <== NOT EXECUTED
      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 ) ) {             
30018d68:	e15c0003 	cmp	ip, r3                                        <== NOT EXECUTED
30018d6c:	0a000002 	beq	30018d7c <_CORE_message_queue_Insert_message+0x34><== NOT EXECUTED
                                                                      
        this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
        this_priority = _CORE_message_queue_Get_message_priority(this_message);
                                                                      
        if ( this_priority <= the_priority ) {                        
30018d70:	e5934008 	ldr	r4, [r3, #8]                                  <== NOT EXECUTED
30018d74:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
30018d78:	aa000017 	bge	30018ddc <_CORE_message_queue_Insert_message+0x94><== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30018d7c:	e10f4000 	mrs	r4, CPSR                                      <== NOT EXECUTED
30018d80:	e3842080 	orr	r2, r4, #128	; 0x80                           <== NOT EXECUTED
30018d84:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
        the_message_queue->number_of_pending_messages++;              
        _Chain_Insert_unprotected( the_node->previous, &the_message->Node );
30018d88:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
          continue;                                                   
        }                                                             
        break;                                                        
      }                                                               
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
30018d8c:	e5902048 	ldr	r2, [r0, #72]	; 0x48                          <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
30018d90:	e593c000 	ldr	ip, [r3]                                      <== NOT EXECUTED
        the_message_queue->number_of_pending_messages++;              
30018d94:	e2825001 	add	r5, r2, #1                                    <== NOT EXECUTED
30018d98:	e5805048 	str	r5, [r0, #72]	; 0x48                          <== NOT EXECUTED
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
30018d9c:	e2722001 	rsbs	r2, r2, #1                                   <== NOT EXECUTED
30018da0:	33a02000 	movcc	r2, #0                                      <== NOT EXECUTED
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
30018da4:	e5813004 	str	r3, [r1, #4]                                  <== NOT EXECUTED
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
30018da8:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
30018dac:	e58c1004 	str	r1, [ip, #4]                                  <== NOT EXECUTED
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
30018db0:	e581c000 	str	ip, [r1]                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30018db4:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
    /*                                                                
     *  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 )                
30018db8:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30018dbc:	08bd8030 	popeq	{r4, r5, pc}                                <== NOT EXECUTED
30018dc0:	e5903060 	ldr	r3, [r0, #96]	; 0x60                          
30018dc4:	e3530000 	cmp	r3, #0                                        
30018dc8:	08bd8030 	popeq	{r4, r5, pc}                                
      (*the_message_queue->notify_handler)(the_message_queue->notify_argument);
30018dcc:	e5900064 	ldr	r0, [r0, #100]	; 0x64                         <== NOT EXECUTED
30018dd0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
30018dd4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
30018dd8:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
        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;                                  
30018ddc:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
      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 ) ) {             
30018de0:	e15c0003 	cmp	ip, r3                                        <== NOT EXECUTED
30018de4:	0affffe4 	beq	30018d7c <_CORE_message_queue_Insert_message+0x34><== NOT EXECUTED
                                                                      
        this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
        this_priority = _CORE_message_queue_Get_message_priority(this_message);
                                                                      
        if ( this_priority <= the_priority ) {                        
30018de8:	e5934008 	ldr	r4, [r3, #8]                                  <== NOT EXECUTED
30018dec:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
30018df0:	baffffe1 	blt	30018d7c <_CORE_message_queue_Insert_message+0x34><== NOT EXECUTED
30018df4:	eafffff8 	b	30018ddc <_CORE_message_queue_Insert_message+0x94><== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30018df8:	e10fc000 	mrs	ip, CPSR                                      
30018dfc:	e38c3080 	orr	r3, ip, #128	; 0x80                           
30018e00:	e129f003 	msr	CPSR_fc, r3                                   
        _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 );                                          
        SET_NOTIFY();                                                 
30018e04:	e5902048 	ldr	r2, [r0, #72]	; 0x48                          
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
30018e08:	e5903058 	ldr	r3, [r0, #88]	; 0x58                          
        the_message_queue->number_of_pending_messages++;              
30018e0c:	e2825001 	add	r5, r2, #1                                    
RTEMS_INLINE_ROUTINE void _Chain_Append_unprotected(                  
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
30018e10:	e2804054 	add	r4, r0, #84	; 0x54                            
30018e14:	e5805048 	str	r5, [r0, #72]	; 0x48                          
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
30018e18:	e5801058 	str	r1, [r0, #88]	; 0x58                          
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
30018e1c:	e5814000 	str	r4, [r1]                                      
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
30018e20:	e2722001 	rsbs	r2, r2, #1                                   
30018e24:	33a02000 	movcc	r2, #0                                      
  tail->previous = the_node;                                          
  old_last->next = the_node;                                          
30018e28:	e5831000 	str	r1, [r3]                                      
  the_node->previous = old_last;                                      
30018e2c:	e5813004 	str	r3, [r1, #4]                                  
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30018e30:	e129f00c 	msr	CPSR_fc, ip                                   
    /*                                                                
     *  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 )                
30018e34:	e3520000 	cmp	r2, #0                                        
30018e38:	1affffe0 	bne	30018dc0 <_CORE_message_queue_Insert_message+0x78>
30018e3c:	e8bd8030 	pop	{r4, r5, pc}                                  
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30018e40:	e10fc000 	mrs	ip, CPSR                                      
30018e44:	e38c3080 	orr	r3, ip, #128	; 0x80                           
30018e48:	e129f003 	msr	CPSR_fc, r3                                   
        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 ) {  
      _ISR_Disable( level );                                          
        SET_NOTIFY();                                                 
30018e4c:	e5902048 	ldr	r2, [r0, #72]	; 0x48                          
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
30018e50:	e5903050 	ldr	r3, [r0, #80]	; 0x50                          
        the_message_queue->number_of_pending_messages++;              
30018e54:	e2825001 	add	r5, r2, #1                                    
RTEMS_INLINE_ROUTINE void _Chain_Prepend_unprotected(                 
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert_unprotected(_Chain_Head(the_chain), the_node);        
30018e58:	e2804050 	add	r4, r0, #80	; 0x50                            
30018e5c:	e5805048 	str	r5, [r0, #72]	; 0x48                          
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
30018e60:	e5801050 	str	r1, [r0, #80]	; 0x50                          
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
30018e64:	e5814004 	str	r4, [r1, #4]                                  
 *                                                                    
 *  INTERRUPT LATENCY:                                                
 *    insert                                                          
 */                                                                   
                                                                      
void _CORE_message_queue_Insert_message(                              
30018e68:	e2722001 	rsbs	r2, r2, #1                                   
30018e6c:	33a02000 	movcc	r2, #0                                      
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
30018e70:	e5813000 	str	r3, [r1]                                      
  before_node->previous = the_node;                                   
30018e74:	e5831004 	str	r1, [r3, #4]                                  
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30018e78:	e129f00c 	msr	CPSR_fc, ip                                   
    /*                                                                
     *  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 )                
30018e7c:	e3520000 	cmp	r2, #0                                        
30018e80:	1affffce 	bne	30018dc0 <_CORE_message_queue_Insert_message+0x78>
30018e84:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

300133d0 <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) {
300133d0:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
300133d4:	e59fc114 	ldr	ip, [pc, #276]	; 300134f0 <_CORE_message_queue_Seize+0x120>
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
300133d8:	e3a04000 	mov	r4, #0                                        
{                                                                     
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
300133dc:	e59c5004 	ldr	r5, [ip, #4]                                  
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
300133e0:	e59d7020 	ldr	r7, [sp, #32]                                 
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
300133e4:	e5854034 	str	r4, [r5, #52]	; 0x34                          
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
300133e8:	e5dd601c 	ldrb	r6, [sp, #28]                                
300133ec:	e1a04000 	mov	r4, r0                                        
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300133f0:	e10f0000 	mrs	r0, CPSR                                      
300133f4:	e3808080 	orr	r8, r0, #128	; 0x80                           
300133f8:	e129f008 	msr	CPSR_fc, r8                                   
  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 );   
}                                                                     
300133fc:	e5948050 	ldr	r8, [r4, #80]	; 0x50                          
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
30013400:	e284a054 	add	sl, r4, #84	; 0x54                            
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
30013404:	e158000a 	cmp	r8, sl                                        
30013408:	0a000022 	beq	30013498 <_CORE_message_queue_Seize+0xc8>     
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
3001340c:	e598e000 	ldr	lr, [r8]                                      
  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;               
30013410:	e5945048 	ldr	r5, [r4, #72]	; 0x48                          
                                                                      
  head->next = new_first;                                             
30013414:	e1a01004 	mov	r1, r4                                        
30013418:	e5a1e050 	str	lr, [r1, #80]!	; 0x50                         
3001341c:	e2455001 	sub	r5, r5, #1                                    
  new_first->previous = head;                                         
30013420:	e58e1004 	str	r1, [lr, #4]                                  
30013424:	e5845048 	str	r5, [r4, #72]	; 0x48                          
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30013428:	e129f000 	msr	CPSR_fc, r0                                   
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count =                                   
3001342c:	e59c1004 	ldr	r1, [ip, #4]                                  
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
30013430:	e598e00c 	ldr	lr, [r8, #12]                                 
    _Thread_Executing->Wait.count =                                   
30013434:	e5980008 	ldr	r0, [r8, #8]                                  
      _CORE_message_queue_Get_message_priority( the_message );        
    _CORE_message_queue_Copy_buffer(                                  
      the_message->Contents.buffer,                                   
30013438:	e2885010 	add	r5, r8, #16                                   
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
    the_message_queue->number_of_pending_messages -= 1;               
    _ISR_Enable( level );                                             
                                                                      
    *size_p = the_message->Contents.size;                             
3001343c:	e583e000 	str	lr, [r3]                                      
    _Thread_Executing->Wait.count =                                   
30013440:	e5810024 	str	r0, [r1, #36]	; 0x24                          
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
30013444:	e1a00002 	mov	r0, r2                                        
30013448:	e1a01005 	mov	r1, r5                                        
3001344c:	e5932000 	ldr	r2, [r3]                                      
30013450:	eb0021ca 	bl	3001bb80 <memcpy>                              
       *  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 );
30013454:	e1a00004 	mov	r0, r4                                        
30013458:	eb000842 	bl	30015568 <_Thread_queue_Dequeue>               
      if ( !the_thread ) {                                            
3001345c:	e2503000 	subs	r3, r0, #0                                   
30013460:	0a00001e 	beq	300134e0 <_CORE_message_queue_Seize+0x110>    
       */                                                             
      _CORE_message_queue_Set_message_priority(                       
        the_message,                                                  
        the_thread->Wait.count                                        
      );                                                              
      the_message->Contents.size = (size_t) the_thread->Wait.option;  
30013464:	e5931030 	ldr	r1, [r3, #48]	; 0x30                          <== NOT EXECUTED
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
30013468:	e5932024 	ldr	r2, [r3, #36]	; 0x24                          <== NOT EXECUTED
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
3001346c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
30013470:	e5882008 	str	r2, [r8, #8]                                  <== NOT EXECUTED
30013474:	e588100c 	str	r1, [r8, #12]                                 <== NOT EXECUTED
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
30013478:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3001347c:	e593102c 	ldr	r1, [r3, #44]	; 0x2c                          <== NOT EXECUTED
30013480:	eb0021be 	bl	3001bb80 <memcpy>                              <== NOT EXECUTED
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
30013484:	e5982008 	ldr	r2, [r8, #8]                                  <== NOT EXECUTED
30013488:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001348c:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
  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 );   
}                                                                     
30013490:	e8bd45f0 	pop	{r4, r5, r6, r7, r8, sl, lr}                  <== NOT EXECUTED
        the_thread->Wait.return_argument_second.immutable_object,     
        the_message->Contents.buffer,                                 
        the_message->Contents.size                                    
      );                                                              
                                                                      
      _CORE_message_queue_Insert_message(                             
30013494:	ea00162b 	b	30018d48 <_CORE_message_queue_Insert_message>   <== NOT EXECUTED
      return;                                                         
    }                                                                 
    #endif                                                            
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
30013498:	e3560000 	cmp	r6, #0                                        
3001349c:	1a000003 	bne	300134b0 <_CORE_message_queue_Seize+0xe0>     
300134a0:	e129f000 	msr	CPSR_fc, r0                                   
    _ISR_Enable( level );                                             
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
300134a4:	e3a03004 	mov	r3, #4                                        
300134a8:	e5853034 	str	r3, [r5, #52]	; 0x34                          
  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 );   
}                                                                     
300134ac:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      
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;
300134b0:	e3a0c001 	mov	ip, #1                                        
300134b4:	e584c030 	str	ip, [r4, #48]	; 0x30                          
    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;             
300134b8:	e5854044 	str	r4, [r5, #68]	; 0x44                          
  executing->Wait.id = id;                                            
300134bc:	e5851020 	str	r1, [r5, #32]                                 
  executing->Wait.return_argument_second.mutable_object = buffer;     
300134c0:	e585202c 	str	r2, [r5, #44]	; 0x2c                          
  executing->Wait.return_argument = size_p;                           
300134c4:	e5853028 	str	r3, [r5, #40]	; 0x28                          
300134c8:	e129f000 	msr	CPSR_fc, r0                                   
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
300134cc:	e59f2020 	ldr	r2, [pc, #32]	; 300134f4 <_CORE_message_queue_Seize+0x124>
300134d0:	e1a00004 	mov	r0, r4                                        
300134d4:	e1a01007 	mov	r1, r7                                        
}                                                                     
300134d8:	e8bd45f0 	pop	{r4, r5, r6, r7, r8, sl, lr}                  
  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 );   
300134dc:	ea00087f 	b	300156e0 <_Thread_queue_Enqueue_with_handler>   
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 );
300134e0:	e2840068 	add	r0, r4, #104	; 0x68                           
300134e4:	e1a01008 	mov	r1, r8                                        
}                                                                     
300134e8:	e8bd45f0 	pop	{r4, r5, r6, r7, r8, sl, lr}                  
300134ec:	eaffff5a 	b	3001325c <_Chain_Append>                        
                                                                      

300134f8 <_CORE_message_queue_Submit>: #endif CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout ) {
300134f8:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
300134fc:	e590c04c 	ldr	ip, [r0, #76]	; 0x4c                          
  #endif                                                              
  CORE_message_queue_Submit_types            submit_type,             
  bool                                       wait,                    
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
30013500:	e24dd004 	sub	sp, sp, #4                                    
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
30013504:	e15c0002 	cmp	ip, r2                                        
  #endif                                                              
  CORE_message_queue_Submit_types            submit_type,             
  bool                                       wait,                    
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
30013508:	e1a04000 	mov	r4, r0                                        
3001350c:	e1a05002 	mov	r5, r2                                        
30013510:	e1a0a001 	mov	sl, r1                                        
30013514:	e59d7028 	ldr	r7, [sp, #40]	; 0x28                          
30013518:	e5dd902c 	ldrb	r9, [sp, #44]	; 0x2c                         
  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;                    
3001351c:	33a00001 	movcc	r0, #1                                      
)                                                                     
{                                                                     
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
30013520:	3a00000d 	bcc	3001355c <_CORE_message_queue_Submit+0x64>    
  }                                                                   
                                                                      
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
30013524:	e5946048 	ldr	r6, [r4, #72]	; 0x48                          
30013528:	e3560000 	cmp	r6, #0                                        
3001352c:	0a00000c 	beq	30013564 <_CORE_message_queue_Submit+0x6c>    
                                                                      
  /*                                                                  
   *  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 <                
30013530:	e5942044 	ldr	r2, [r4, #68]	; 0x44                          
30013534:	e1520006 	cmp	r2, r6                                        
30013538:	8a00002a 	bhi	300135e8 <_CORE_message_queue_Submit+0xf0>    
    /*                                                                
     *  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 ) {                                                    
3001353c:	e3590000 	cmp	r9, #0                                        <== NOT EXECUTED
      return CORE_MESSAGE_QUEUE_STATUS_TOO_MANY;                      
30013540:	03a00002 	moveq	r0, #2                                      <== NOT EXECUTED
    /*                                                                
     *  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 ) {                                                    
30013544:	0a000004 	beq	3001355c <_CORE_message_queue_Submit+0x64>    <== NOT EXECUTED
                                                                      
    /*                                                                
     *  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() ) {                                    
30013548:	e59f20d4 	ldr	r2, [pc, #212]	; 30013624 <_CORE_message_queue_Submit+0x12c><== NOT EXECUTED
3001354c:	e5921000 	ldr	r1, [r2]                                      <== NOT EXECUTED
30013550:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
      return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED;                   
30013554:	13a00003 	movne	r0, #3                                      <== NOT EXECUTED
                                                                      
    /*                                                                
     *  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() ) {                                    
30013558:	0a000010 	beq	300135a0 <_CORE_message_queue_Submit+0xa8>    <== NOT EXECUTED
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
  #endif                                                              
}                                                                     
3001355c:	e28dd004 	add	sp, sp, #4                                    
30013560:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      
  /*                                                                  
   *  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 );
30013564:	e58d3000 	str	r3, [sp]                                      
30013568:	eb0007fe 	bl	30015568 <_Thread_queue_Dequeue>               
    if ( the_thread ) {                                               
3001356c:	e2508000 	subs	r8, r0, #0                                   
30013570:	e59d3000 	ldr	r3, [sp]                                      
30013574:	05946048 	ldreq	r6, [r4, #72]	; 0x48                        
30013578:	0affffec 	beq	30013530 <_CORE_message_queue_Submit+0x38>    
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
3001357c:	e598002c 	ldr	r0, [r8, #44]	; 0x2c                          
30013580:	e1a0100a 	mov	r1, sl                                        
30013584:	e1a02005 	mov	r2, r5                                        
30013588:	eb00217c 	bl	3001bb80 <memcpy>                              
      _CORE_message_queue_Copy_buffer(                                
        buffer,                                                       
        the_thread->Wait.return_argument_second.mutable_object,       
        size                                                          
      );                                                              
      *(size_t *) the_thread->Wait.return_argument = size;            
3001358c:	e5983028 	ldr	r3, [r8, #40]	; 0x28                          
                                                                      
      #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;                    
30013590:	e1a00006 	mov	r0, r6                                        
      _CORE_message_queue_Copy_buffer(                                
        buffer,                                                       
        the_thread->Wait.return_argument_second.mutable_object,       
        size                                                          
      );                                                              
      *(size_t *) the_thread->Wait.return_argument = size;            
30013594:	e5835000 	str	r5, [r3]                                      
      the_thread->Wait.count = (uint32_t) submit_type;                
30013598:	e5887024 	str	r7, [r8, #36]	; 0x24                          
                                                                      
      #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;                    
3001359c:	eaffffee 	b	3001355c <_CORE_message_queue_Submit+0x64>      
     *  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;                 
300135a0:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300135a4:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
300135a8:	e3810080 	orr	r0, r1, #128	; 0x80                           <== NOT EXECUTED
300135ac:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
300135b0:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
300135b4:	e5840030 	str	r0, [r4, #48]	; 0x30                          <== NOT EXECUTED
      ISR_Level        level;                                         
                                                                      
      _ISR_Disable( level );                                          
      _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
      executing->Wait.queue = &the_message_queue->Wait_queue;         
300135b8:	e5824044 	str	r4, [r2, #68]	; 0x44                          <== NOT EXECUTED
      executing->Wait.id = id;                                        
300135bc:	e5823020 	str	r3, [r2, #32]                                 <== NOT EXECUTED
      executing->Wait.return_argument_second.immutable_object = buffer;
300135c0:	e582a02c 	str	sl, [r2, #44]	; 0x2c                          <== NOT EXECUTED
      executing->Wait.option = (uint32_t) size;                       
300135c4:	e5825030 	str	r5, [r2, #48]	; 0x30                          <== NOT EXECUTED
      executing->Wait.count = submit_type;                            
300135c8:	e5827024 	str	r7, [r2, #36]	; 0x24                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
300135cc:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
                                                                      
      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
300135d0:	e59f2050 	ldr	r2, [pc, #80]	; 30013628 <_CORE_message_queue_Submit+0x130><== NOT EXECUTED
300135d4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300135d8:	e59d1030 	ldr	r1, [sp, #48]	; 0x30                          <== NOT EXECUTED
300135dc:	eb00083f 	bl	300156e0 <_Thread_queue_Enqueue_with_handler>  <== NOT EXECUTED
    }                                                                 
                                                                      
    return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                
300135e0:	e3a00007 	mov	r0, #7                                        <== NOT EXECUTED
300135e4:	eaffffdc 	b	3001355c <_CORE_message_queue_Submit+0x64>      <== NOT EXECUTED
_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 );             
300135e8:	e2840068 	add	r0, r4, #104	; 0x68                           
300135ec:	ebffff2d 	bl	300132a8 <_Chain_Get>                          
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
300135f0:	e1a0100a 	mov	r1, sl                                        
_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 );             
300135f4:	e1a06000 	mov	r6, r0                                        
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
300135f8:	e1a02005 	mov	r2, r5                                        
300135fc:	e2800010 	add	r0, r0, #16                                   
30013600:	eb00215e 	bl	3001bb80 <memcpy>                              
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
    _CORE_message_queue_Set_message_priority( the_message, submit_type );
                                                                      
    _CORE_message_queue_Insert_message(                               
30013604:	e1a00004 	mov	r0, r4                                        
    _CORE_message_queue_Copy_buffer(                                  
      buffer,                                                         
      the_message->Contents.buffer,                                   
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
30013608:	e586500c 	str	r5, [r6, #12]                                 
  CORE_message_queue_Buffer_control *the_message,                     
  int                                priority                         
)                                                                     
{                                                                     
  #if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)            
    the_message->priority = priority;                                 
3001360c:	e5867008 	str	r7, [r6, #8]                                  
    _CORE_message_queue_Set_message_priority( the_message, submit_type );
                                                                      
    _CORE_message_queue_Insert_message(                               
30013610:	e1a01006 	mov	r1, r6                                        
30013614:	e1a02007 	mov	r2, r7                                        
30013618:	eb0015ca 	bl	30018d48 <_CORE_message_queue_Insert_message>  
       the_message_queue,                                             
       the_message,                                                   
       submit_type                                                    
    );                                                                
    return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                      
3001361c:	e3a00000 	mov	r0, #0                                        
30013620:	eaffffcd 	b	3001355c <_CORE_message_queue_Submit+0x64>      
                                                                      

3000a6c8 <_CORE_mutex_Seize>: Objects_Id _id, bool _wait, Watchdog_Interval _timeout, ISR_Level _level ) {
3000a6c8:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
3000a6cc:	e59f40b4 	ldr	r4, [pc, #180]	; 3000a788 <_CORE_mutex_Seize+0xc0>
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
3000a6d0:	e1a05000 	mov	r5, r0                                        
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
3000a6d4:	e594c000 	ldr	ip, [r4]                                      
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
3000a6d8:	e1a06001 	mov	r6, r1                                        
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
3000a6dc:	e35c0000 	cmp	ip, #0                                        
  Objects_Id           _id,                                           
  bool                 _wait,                                         
  Watchdog_Interval    _timeout,                                      
  ISR_Level            _level                                         
)                                                                     
{                                                                     
3000a6e0:	e1a08003 	mov	r8, r3                                        
3000a6e4:	e20270ff 	and	r7, r2, #255	; 0xff                           
  _CORE_mutex_Seize_body( _the_mutex, _id, _wait, _timeout, _level ); 
3000a6e8:	0a000001 	beq	3000a6f4 <_CORE_mutex_Seize+0x2c>             
3000a6ec:	e3570000 	cmp	r7, #0                                        
3000a6f0:	1a00000d 	bne	3000a72c <_CORE_mutex_Seize+0x64>             
3000a6f4:	e1a00005 	mov	r0, r5                                        
3000a6f8:	e28d1018 	add	r1, sp, #24                                   
3000a6fc:	eb001543 	bl	3000fc10 <_CORE_mutex_Seize_interrupt_trylock> 
3000a700:	e3500000 	cmp	r0, #0                                        
3000a704:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    
3000a708:	e3570000 	cmp	r7, #0                                        
3000a70c:	1a00000e 	bne	3000a74c <_CORE_mutex_Seize+0x84>             
3000a710:	e59d3018 	ldr	r3, [sp, #24]                                 <== NOT EXECUTED
3000a714:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
3000a718:	e59f306c 	ldr	r3, [pc, #108]	; 3000a78c <_CORE_mutex_Seize+0xc4><== NOT EXECUTED
3000a71c:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000a720:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000a724:	e5832034 	str	r2, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000a728:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
3000a72c:	e59f305c 	ldr	r3, [pc, #92]	; 3000a790 <_CORE_mutex_Seize+0xc8>
3000a730:	e5933000 	ldr	r3, [r3]                                      
3000a734:	e3530001 	cmp	r3, #1                                        
3000a738:	9affffed 	bls	3000a6f4 <_CORE_mutex_Seize+0x2c>             
3000a73c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a740:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000a744:	e3a02012 	mov	r2, #18                                       <== NOT EXECUTED
3000a748:	eb0001c8 	bl	3000ae70 <_Internal_error_Occurred>            <== NOT EXECUTED
3000a74c:	e59f3038 	ldr	r3, [pc, #56]	; 3000a78c <_CORE_mutex_Seize+0xc4>
3000a750:	e5942000 	ldr	r2, [r4]                                      
3000a754:	e5933004 	ldr	r3, [r3, #4]                                  
3000a758:	e2822001 	add	r2, r2, #1                                    
                                                                      
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;
3000a75c:	e3a01001 	mov	r1, #1                                        
3000a760:	e5851030 	str	r1, [r5, #48]	; 0x30                          
3000a764:	e5842000 	str	r2, [r4]                                      
3000a768:	e5835044 	str	r5, [r3, #68]	; 0x44                          
3000a76c:	e5836020 	str	r6, [r3, #32]                                 
3000a770:	e59d3018 	ldr	r3, [sp, #24]                                 
3000a774:	e129f003 	msr	CPSR_fc, r3                                   
3000a778:	e1a00005 	mov	r0, r5                                        
3000a77c:	e1a01008 	mov	r1, r8                                        
3000a780:	ebffffb5 	bl	3000a65c <_CORE_mutex_Seize_interrupt_blocking>
3000a784:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

3000fc10 <_CORE_mutex_Seize_interrupt_trylock>: { Thread_Control *executing; /* disabled when you get here */ executing = _Thread_Executing;
3000fc10:	e59f215c 	ldr	r2, [pc, #348]	; 3000fd74 <_CORE_mutex_Seize_interrupt_trylock+0x164>
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
3000fc14:	e590c050 	ldr	ip, [r0, #80]	; 0x50                          
#if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)                 
int _CORE_mutex_Seize_interrupt_trylock(                              
  CORE_mutex_Control  *the_mutex,                                     
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
3000fc18:	e1a03000 	mov	r3, r0                                        
{                                                                     
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
3000fc1c:	e5922004 	ldr	r2, [r2, #4]                                  
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
3000fc20:	e3a00000 	mov	r0, #0                                        
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
3000fc24:	e15c0000 	cmp	ip, r0                                        
3000fc28:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  Thread_Control   *executing;                                        
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
3000fc2c:	e5820034 	str	r0, [r2, #52]	; 0x34                          
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
3000fc30:	0a00000e 	beq	3000fc70 <_CORE_mutex_Seize_interrupt_trylock+0x60>
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
3000fc34:	e593c048 	ldr	ip, [r3, #72]	; 0x48                          
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
3000fc38:	e5925008 	ldr	r5, [r2, #8]                                  
    the_mutex->nest_count = 1;                                        
3000fc3c:	e3a04001 	mov	r4, #1                                        
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
3000fc40:	e35c0002 	cmp	ip, #2                                        
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
3000fc44:	e5830050 	str	r0, [r3, #80]	; 0x50                          
    the_mutex->holder     = executing;                                
3000fc48:	e583205c 	str	r2, [r3, #92]	; 0x5c                          
    the_mutex->holder_id  = executing->Object.id;                     
3000fc4c:	e5835060 	str	r5, [r3, #96]	; 0x60                          
    the_mutex->nest_count = 1;                                        
3000fc50:	e5834054 	str	r4, [r3, #84]	; 0x54                          
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
3000fc54:	0a000013 	beq	3000fca8 <_CORE_mutex_Seize_interrupt_trylock+0x98>
3000fc58:	e35c0003 	cmp	ip, #3                                        
3000fc5c:	0a000018 	beq	3000fcc4 <_CORE_mutex_Seize_interrupt_trylock+0xb4>
3000fc60:	e5913000 	ldr	r3, [r1]                                      
3000fc64:	e129f003 	msr	CPSR_fc, r3                                   
      executing->resource_count++;                                    
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
      _ISR_Enable( *level_p );                                        
      return 0;                                                       
3000fc68:	e3a00000 	mov	r0, #0                                        
3000fc6c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
  /*                                                                  
   *  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 ) ) {                  
3000fc70:	e593005c 	ldr	r0, [r3, #92]	; 0x5c                          
3000fc74:	e1520000 	cmp	r2, r0                                        
                                                                      
  /*                                                                  
   *  The mutex is not available and the caller must deal with the possibility
   *  of blocking.                                                    
   */                                                                 
  return 1;                                                           
3000fc78:	13a00001 	movne	r0, #1                                      
  /*                                                                  
   *  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 ) ) {                  
3000fc7c:	18bd80f0 	popne	{r4, r5, r6, r7, pc}                        
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
3000fc80:	e5930040 	ldr	r0, [r3, #64]	; 0x40                          
3000fc84:	e3500000 	cmp	r0, #0                                        
3000fc88:	1a00001e 	bne	3000fd08 <_CORE_mutex_Seize_interrupt_trylock+0xf8>
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
3000fc8c:	e5932054 	ldr	r2, [r3, #84]	; 0x54                          
3000fc90:	e2822001 	add	r2, r2, #1                                    
3000fc94:	e5832054 	str	r2, [r3, #84]	; 0x54                          
3000fc98:	e5913000 	ldr	r3, [r1]                                      
3000fc9c:	e129f003 	msr	CPSR_fc, r3                                   
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
3000fca0:	e3a00000 	mov	r0, #0                                        
3000fca4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
3000fca8:	e592301c 	ldr	r3, [r2, #28]                                 
3000fcac:	e2833001 	add	r3, r3, #1                                    
3000fcb0:	e582301c 	str	r3, [r2, #28]                                 
3000fcb4:	e5913000 	ldr	r3, [r1]                                      
3000fcb8:	e129f003 	msr	CPSR_fc, r3                                   
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
      _ISR_Enable( *level_p );                                        
      return 0;                                                       
3000fcbc:	e3a00000 	mov	r0, #0                                        
3000fcc0:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
3000fcc4:	e592c01c 	ldr	ip, [r2, #28]                                 
       */                                                             
    {                                                                 
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
3000fcc8:	e593704c 	ldr	r7, [r3, #76]	; 0x4c                          
      current = executing->current_priority;                          
3000fccc:	e5926014 	ldr	r6, [r2, #20]                                 
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
3000fcd0:	e08c5004 	add	r5, ip, r4                                    
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
      current = executing->current_priority;                          
      if ( current == ceiling ) {                                     
3000fcd4:	e1570006 	cmp	r7, r6                                        
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
3000fcd8:	e582501c 	str	r5, [r2, #28]                                 
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
      current = executing->current_priority;                          
      if ( current == ceiling ) {                                     
3000fcdc:	0a000020 	beq	3000fd64 <_CORE_mutex_Seize_interrupt_trylock+0x154>
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
3000fce0:	3a000012 	bcc	3000fd30 <_CORE_mutex_Seize_interrupt_trylock+0x120>
        );                                                            
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
3000fce4:	e3a05006 	mov	r5, #6                                        
3000fce8:	e5825034 	str	r5, [r2, #52]	; 0x34                          
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
3000fcec:	e5834050 	str	r4, [r3, #80]	; 0x50                          
        the_mutex->nest_count = 0;     /* undo locking above */       
3000fcf0:	e5830054 	str	r0, [r3, #84]	; 0x54                          
        executing->resource_count--;   /* undo locking above */       
3000fcf4:	e582c01c 	str	ip, [r2, #28]                                 
3000fcf8:	e5913000 	ldr	r3, [r1]                                      
3000fcfc:	e129f003 	msr	CPSR_fc, r3                                   
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
3000fd00:	e3a00000 	mov	r0, #0                                        
3000fd04:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
   *  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 ) {          
3000fd08:	e3500001 	cmp	r0, #1                                        
3000fd0c:	0a000001 	beq	3000fd18 <_CORE_mutex_Seize_interrupt_trylock+0x108>
                                                                      
  /*                                                                  
   *  The mutex is not available and the caller must deal with the possibility
   *  of blocking.                                                    
   */                                                                 
  return 1;                                                           
3000fd10:	e3a00001 	mov	r0, #1                                        
3000fd14:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
        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;
3000fd18:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000fd1c:	e5823034 	str	r3, [r2, #52]	; 0x34                          <== NOT EXECUTED
3000fd20:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
3000fd24:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
          _ISR_Enable( *level_p );                                    
          return 0;                                                   
3000fd28:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000fd2c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000fd30:	e59f2040 	ldr	r2, [pc, #64]	; 3000fd78 <_CORE_mutex_Seize_interrupt_trylock+0x168><== NOT EXECUTED
3000fd34:	e5920000 	ldr	r0, [r2]                                      <== NOT EXECUTED
3000fd38:	e2800001 	add	r0, r0, #1                                    <== NOT EXECUTED
3000fd3c:	e5820000 	str	r0, [r2]                                      <== NOT EXECUTED
3000fd40:	e5912000 	ldr	r2, [r1]                                      <== NOT EXECUTED
3000fd44:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( *level_p );                                      
        _Thread_Change_priority(                                      
3000fd48:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000fd4c:	e593005c 	ldr	r0, [r3, #92]	; 0x5c                          <== NOT EXECUTED
3000fd50:	e593104c 	ldr	r1, [r3, #76]	; 0x4c                          <== NOT EXECUTED
3000fd54:	ebffefcc 	bl	3000bc8c <_Thread_Change_priority>             <== NOT EXECUTED
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         false                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
3000fd58:	ebfff0e9 	bl	3000c104 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return 0;                                                     
3000fd5c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000fd60:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
3000fd64:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
3000fd68:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
      current = executing->current_priority;                          
      if ( current == ceiling ) {                                     
        _ISR_Enable( *level_p );                                      
        return 0;                                                     
3000fd6c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000fd70:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000a794 <_CORE_mutex_Surrender>: * 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 ) {
3000a794:	e5d03044 	ldrb	r3, [r0, #68]	; 0x44                         
#else                                                                 
  Objects_Id                         id __attribute__((unused)),      
  CORE_mutex_API_mp_support_callout  api_mutex_mp_support __attribute__((unused))
#endif                                                                
)                                                                     
{                                                                     
3000a798:	e92d4030 	push	{r4, r5, lr}                                 
   *  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 ) {                   
3000a79c:	e3530000 	cmp	r3, #0                                        
#else                                                                 
  Objects_Id                         id __attribute__((unused)),      
  CORE_mutex_API_mp_support_callout  api_mutex_mp_support __attribute__((unused))
#endif                                                                
)                                                                     
{                                                                     
3000a7a0:	e1a04000 	mov	r4, r0                                        
  Thread_Control *the_thread;                                         
  Thread_Control *holder;                                             
                                                                      
  holder = the_mutex->holder;                                         
3000a7a4:	e590205c 	ldr	r2, [r0, #92]	; 0x5c                          
   *  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 ) {                   
3000a7a8:	0a000004 	beq	3000a7c0 <_CORE_mutex_Surrender+0x2c>         
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
3000a7ac:	e59f3110 	ldr	r3, [pc, #272]	; 3000a8c4 <_CORE_mutex_Surrender+0x130>
    if ( !_Thread_Is_executing( holder ) )                            
3000a7b0:	e5933004 	ldr	r3, [r3, #4]                                  
3000a7b4:	e1520003 	cmp	r2, r3                                        
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
3000a7b8:	13a00003 	movne	r0, #3                                      
   *  discipline.  But Priority Ceiling or Priority Inheritance mutexes
   *  must be released by the thread which acquired them.             
   */                                                                 
                                                                      
  if ( the_mutex->Attributes.only_owner_release ) {                   
    if ( !_Thread_Is_executing( holder ) )                            
3000a7bc:	18bd8030 	popne	{r4, r5, pc}                                
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
  }                                                                   
                                                                      
  /* XXX already unlocked -- not right status */                      
                                                                      
  if ( !the_mutex->nest_count )                                       
3000a7c0:	e5940054 	ldr	r0, [r4, #84]	; 0x54                          
3000a7c4:	e3500000 	cmp	r0, #0                                        
3000a7c8:	08bd8030 	popeq	{r4, r5, pc}                                
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
3000a7cc:	e2400001 	sub	r0, r0, #1                                    
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
3000a7d0:	e3500000 	cmp	r0, #0                                        
  /* XXX already unlocked -- not right status */                      
                                                                      
  if ( !the_mutex->nest_count )                                       
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
3000a7d4:	e5840054 	str	r0, [r4, #84]	; 0x54                          
          /* Currently no API exercises this behavior. */             
          break;                                                      
      }                                                               
    #else                                                             
      /* must be CORE_MUTEX_NESTING_ACQUIRES or we wouldn't be here */
      return CORE_MUTEX_STATUS_SUCCESSFUL;                            
3000a7d8:	13a00000 	movne	r0, #0                                      
  if ( !the_mutex->nest_count )                                       
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
3000a7dc:	18bd8030 	popne	{r4, r5, pc}                                
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
3000a7e0:	e5943048 	ldr	r3, [r4, #72]	; 0x48                          
                                                                      
  /*                                                                  
   *  Formally release the mutex before possibly transferring it to a 
   *  blocked thread.                                                 
   */                                                                 
  if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||   
3000a7e4:	e3530002 	cmp	r3, #2                                        
3000a7e8:	0a00001f 	beq	3000a86c <_CORE_mutex_Surrender+0xd8>         
3000a7ec:	e3530003 	cmp	r3, #3                                        
3000a7f0:	0a00001d 	beq	3000a86c <_CORE_mutex_Surrender+0xd8>         
    if ( holder->resource_count == 0 &&                               
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, true ); 
    }                                                                 
  }                                                                   
  the_mutex->holder    = NULL;                                        
3000a7f4:	e3a05000 	mov	r5, #0                                        
3000a7f8:	e584505c 	str	r5, [r4, #92]	; 0x5c                          
  the_mutex->holder_id = 0;                                           
3000a7fc:	e5845060 	str	r5, [r4, #96]	; 0x60                          
                                                                      
  /*                                                                  
   *  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 ) ) ) {
3000a800:	e1a00004 	mov	r0, r4                                        
3000a804:	eb00070c 	bl	3000c43c <_Thread_queue_Dequeue>               
3000a808:	e2503000 	subs	r3, r0, #0                                   
          }                                                           
          break;                                                      
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
3000a80c:	03a02001 	moveq	r2, #1                                      
3000a810:	05842050 	streq	r2, [r4, #80]	; 0x50                        
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
3000a814:	01a00003 	moveq	r0, r3                                      
                                                                      
  /*                                                                  
   *  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 ) ) ) {
3000a818:	08bd8030 	popeq	{r4, r5, pc}                                
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
3000a81c:	e5931008 	ldr	r1, [r3, #8]                                  
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
3000a820:	e5942048 	ldr	r2, [r4, #72]	; 0x48                          
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
3000a824:	e5841060 	str	r1, [r4, #96]	; 0x60                          
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
3000a828:	e3520002 	cmp	r2, #2                                        
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
      the_mutex->nest_count = 1;                                      
3000a82c:	e3a01001 	mov	r1, #1                                        
                                                                      
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
3000a830:	e584305c 	str	r3, [r4, #92]	; 0x5c                          
      the_mutex->holder_id  = the_thread->Object.id;                  
      the_mutex->nest_count = 1;                                      
3000a834:	e5841054 	str	r1, [r4, #84]	; 0x54                          
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
3000a838:	0a000018 	beq	3000a8a0 <_CORE_mutex_Surrender+0x10c>        
3000a83c:	e3520003 	cmp	r2, #3                                        <== NOT EXECUTED
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
3000a840:	11a00005 	movne	r0, r5                                      <== NOT EXECUTED
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
3000a844:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
          _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++;                               
3000a848:	e593201c 	ldr	r2, [r3, #28]                                 <== NOT EXECUTED
          if (the_mutex->Attributes.priority_ceiling <                
3000a84c:	e594104c 	ldr	r1, [r4, #76]	; 0x4c                          <== NOT EXECUTED
3000a850:	e593c014 	ldr	ip, [r3, #20]                                 <== NOT EXECUTED
          _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++;                               
3000a854:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
          if (the_mutex->Attributes.priority_ceiling <                
3000a858:	e151000c 	cmp	r1, ip                                        <== NOT EXECUTED
          _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++;                               
3000a85c:	e583201c 	str	r2, [r3, #28]                                 <== NOT EXECUTED
          if (the_mutex->Attributes.priority_ceiling <                
3000a860:	3a000013 	bcc	3000a8b4 <_CORE_mutex_Surrender+0x120>        <== NOT EXECUTED
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
3000a864:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
}                                                                     
3000a868:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
      _CORE_mutex_Pop_priority( the_mutex, holder );                  
                                                                      
    if ( pop_status != CORE_MUTEX_STATUS_SUCCESSFUL )                 
      return pop_status;                                              
                                                                      
    holder->resource_count--;                                         
3000a86c:	e592301c 	ldr	r3, [r2, #28]                                 
3000a870:	e2433001 	sub	r3, r3, #1                                    
    /*                                                                
     *  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 &&                               
3000a874:	e3530000 	cmp	r3, #0                                        
      _CORE_mutex_Pop_priority( the_mutex, holder );                  
                                                                      
    if ( pop_status != CORE_MUTEX_STATUS_SUCCESSFUL )                 
      return pop_status;                                              
                                                                      
    holder->resource_count--;                                         
3000a878:	e582301c 	str	r3, [r2, #28]                                 
    /*                                                                
     *  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 &&                               
3000a87c:	1affffdc 	bne	3000a7f4 <_CORE_mutex_Surrender+0x60>         
         holder->real_priority != holder->current_priority ) {        
3000a880:	e5921018 	ldr	r1, [r2, #24]                                 
    /*                                                                
     *  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 &&                               
3000a884:	e5923014 	ldr	r3, [r2, #20]                                 
3000a888:	e1510003 	cmp	r1, r3                                        
3000a88c:	0affffd8 	beq	3000a7f4 <_CORE_mutex_Surrender+0x60>         
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, true ); 
3000a890:	e1a00002 	mov	r0, r2                                        
3000a894:	e3a02001 	mov	r2, #1                                        
3000a898:	eb0004fb 	bl	3000bc8c <_Thread_Change_priority>             
3000a89c:	eaffffd4 	b	3000a7f4 <_CORE_mutex_Surrender+0x60>           
        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++;                               
3000a8a0:	e593201c 	ldr	r2, [r3, #28]                                 
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
3000a8a4:	e1a00005 	mov	r0, r5                                        
        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++;                               
3000a8a8:	e2822001 	add	r2, r2, #1                                    
3000a8ac:	e583201c 	str	r2, [r3, #28]                                 
          break;                                                      
3000a8b0:	e8bd8030 	pop	{r4, r5, pc}                                  
        case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:                 
          _CORE_mutex_Push_priority( the_mutex, the_thread );         
          the_thread->resource_count++;                               
          if (the_mutex->Attributes.priority_ceiling <                
              the_thread->current_priority){                          
              _Thread_Change_priority(                                
3000a8b4:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
3000a8b8:	eb0004f3 	bl	3000bc8c <_Thread_Change_priority>             <== NOT EXECUTED
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
3000a8bc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a8c0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

30013bd4 <_CORE_semaphore_Seize>: ) { Thread_Control *executing; ISR_Level level; executing = _Thread_Executing;
30013bd4:	e59fc078 	ldr	ip, [pc, #120]	; 30013c54 <_CORE_semaphore_Seize+0x80><== NOT EXECUTED
  CORE_semaphore_Control *the_semaphore,                              
  Objects_Id              id,                                         
  bool                    wait,                                       
  Watchdog_Interval       timeout                                     
)                                                                     
{                                                                     
30013bd8:	e92d0030 	push	{r4, r5}                                     <== NOT EXECUTED
  Thread_Control *executing;                                          
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
30013bdc:	e59cc004 	ldr	ip, [ip, #4]                                  <== NOT EXECUTED
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
30013be0:	e3a04000 	mov	r4, #0                                        <== NOT EXECUTED
30013be4:	e58c4034 	str	r4, [ip, #52]	; 0x34                          <== NOT EXECUTED
  CORE_semaphore_Control *the_semaphore,                              
  Objects_Id              id,                                         
  bool                    wait,                                       
  Watchdog_Interval       timeout                                     
)                                                                     
{                                                                     
30013be8:	e20220ff 	and	r2, r2, #255	; 0xff                           <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30013bec:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
30013bf0:	e3854080 	orr	r4, r5, #128	; 0x80                           <== NOT EXECUTED
30013bf4:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
  ISR_Level       level;                                              
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  _ISR_Disable( level );                                              
  if ( the_semaphore->count != 0 ) {                                  
30013bf8:	e5904048 	ldr	r4, [r0, #72]	; 0x48                          <== NOT EXECUTED
30013bfc:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
30013c00:	1a00000f 	bne	30013c44 <_CORE_semaphore_Seize+0x70>         <== NOT EXECUTED
  /*                                                                  
   *  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 ) {                                                      
30013c04:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30013c08:	1a000004 	bne	30013c20 <_CORE_semaphore_Seize+0x4c>         <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30013c0c:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
30013c10:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
30013c14:	e58c3034 	str	r3, [ip, #52]	; 0x34                          <== NOT EXECUTED
  _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 );       
}                                                                     
30013c18:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
30013c1c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
30013c20:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
30013c24:	e5802030 	str	r2, [r0, #48]	; 0x30                          <== NOT EXECUTED
  /*                                                                  
   *  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;                 
30013c28:	e58c0044 	str	r0, [ip, #68]	; 0x44                          <== NOT EXECUTED
  executing->Wait.id    = id;                                         
30013c2c:	e58c1020 	str	r1, [ip, #32]                                 <== NOT EXECUTED
30013c30:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
  _ISR_Enable( level );                                               
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
30013c34:	e59f201c 	ldr	r2, [pc, #28]	; 30013c58 <_CORE_semaphore_Seize+0x84><== NOT EXECUTED
30013c38:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
}                                                                     
30013c3c:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
   */                                                                 
  _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 );       
30013c40:	eafff061 	b	3000fdcc <_Thread_queue_Enqueue_with_handler>   <== NOT EXECUTED
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  _ISR_Disable( level );                                              
  if ( the_semaphore->count != 0 ) {                                  
    the_semaphore->count -= 1;                                        
30013c44:	e2444001 	sub	r4, r4, #1                                    <== NOT EXECUTED
30013c48:	e5804048 	str	r4, [r0, #72]	; 0x48                          <== NOT EXECUTED
30013c4c:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
30013c50:	eafffff0 	b	30013c18 <_CORE_semaphore_Seize+0x44>           <== NOT EXECUTED
                                                                      

3000b4e8 <_CORE_spinlock_Initialize>: CORE_spinlock_Control *the_spinlock, CORE_spinlock_Attributes *the_spinlock_attributes ) { the_spinlock->Attributes = *the_spinlock_attributes;
3000b4e8:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
                                                                      
  the_spinlock->lock   = 0;                                           
3000b4ec:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000b4f0:	e5802004 	str	r2, [r0, #4]                                  <== NOT EXECUTED
  CORE_spinlock_Control       *the_spinlock,                          
  CORE_spinlock_Attributes    *the_spinlock_attributes                
)                                                                     
{                                                                     
                                                                      
  the_spinlock->Attributes                = *the_spinlock_attributes; 
3000b4f4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
                                                                      
  the_spinlock->lock   = 0;                                           
  the_spinlock->users  = 0;                                           
3000b4f8:	e5802008 	str	r2, [r0, #8]                                  <== NOT EXECUTED
  the_spinlock->holder = 0;                                           
3000b4fc:	e580200c 	str	r2, [r0, #12]                                 <== NOT EXECUTED
}                                                                     
3000b500:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b504 <_CORE_spinlock_Release>: static inline uint32_t arm_interrupt_disable( void ) { uint32_t arm_switch_reg; uint32_t level; __asm__ volatile (
3000b504:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000b508:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3000b50c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  _ISR_Disable( level );                                              
                                                                      
    /*                                                                
     *  It must locked before it can be unlocked.                     
     */                                                               
    if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) {             
3000b510:	e5903004 	ldr	r3, [r0, #4]                                  <== NOT EXECUTED
3000b514:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b518:	1a000002 	bne	3000b528 <_CORE_spinlock_Release+0x24>        <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b51c:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      return CORE_SPINLOCK_NOT_LOCKED;                                
3000b520:	e3a00006 	mov	r0, #6                                        <== NOT EXECUTED
3000b524:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     *  It must locked by the current thread before it can be unlocked.
     */                                                               
    if ( the_spinlock->holder != _Thread_Executing->Object.id ) {     
3000b528:	e59f3040 	ldr	r3, [pc, #64]	; 3000b570 <_CORE_spinlock_Release+0x6c><== NOT EXECUTED
3000b52c:	e590100c 	ldr	r1, [r0, #12]                                 <== NOT EXECUTED
3000b530:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b534:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
3000b538:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
3000b53c:	0a000002 	beq	3000b54c <_CORE_spinlock_Release+0x48>        <== NOT EXECUTED
3000b540:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      return CORE_SPINLOCK_NOT_HOLDER;                                
3000b544:	e3a00002 	mov	r0, #2                                        <== NOT EXECUTED
3000b548:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     *  Let it be unlocked.                                           
     */                                                               
    the_spinlock->users -= 1;                                         
3000b54c:	e5901008 	ldr	r1, [r0, #8]                                  <== NOT EXECUTED
    the_spinlock->lock   = CORE_SPINLOCK_UNLOCKED;                    
3000b550:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
    }                                                                 
                                                                      
    /*                                                                
     *  Let it be unlocked.                                           
     */                                                               
    the_spinlock->users -= 1;                                         
3000b554:	e2411001 	sub	r1, r1, #1                                    <== NOT EXECUTED
3000b558:	e5801008 	str	r1, [r0, #8]                                  <== NOT EXECUTED
    the_spinlock->lock   = CORE_SPINLOCK_UNLOCKED;                    
3000b55c:	e5803004 	str	r3, [r0, #4]                                  <== NOT EXECUTED
    the_spinlock->holder = 0;                                         
3000b560:	e580300c 	str	r3, [r0, #12]                                 <== NOT EXECUTED
3000b564:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
                                                                      
  _ISR_Enable( level );                                               
  return CORE_SPINLOCK_SUCCESSFUL;                                    
3000b568:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000b56c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b574 <_CORE_spinlock_Wait>: CORE_spinlock_Status _CORE_spinlock_Wait( CORE_spinlock_Control *the_spinlock, bool wait, Watchdog_Interval timeout ) {
3000b574:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000b578:	e20110ff 	and	r1, r1, #255	; 0xff                           <== NOT EXECUTED
3000b57c:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000b580:	e10f3000 	mrs	r3, CPSR                                      <== NOT EXECUTED
3000b584:	e3832080 	orr	r2, r3, #128	; 0x80                           <== NOT EXECUTED
3000b588:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
  #if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)            
    Watchdog_Interval       limit = _Watchdog_Ticks_since_boot + timeout;
  #endif                                                              
                                                                      
  _ISR_Disable( level );                                              
    if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) &&              
3000b58c:	e5902004 	ldr	r2, [r0, #4]                                  <== NOT EXECUTED
3000b590:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
3000b594:	0a000023 	beq	3000b628 <_CORE_spinlock_Wait+0xb4>           <== NOT EXECUTED
         (the_spinlock->holder == _Thread_Executing->Object.id) ) {   
      _ISR_Enable( level );                                           
      return CORE_SPINLOCK_HOLDER_RELOCKING;                          
    }                                                                 
    the_spinlock->users += 1;                                         
3000b598:	e5952008 	ldr	r2, [r5, #8]                                  <== NOT EXECUTED
3000b59c:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000b5a0:	e5852008 	str	r2, [r5, #8]                                  <== NOT EXECUTED
    for ( ;; ) {                                                      
      if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) {           
3000b5a4:	e5952004 	ldr	r2, [r5, #4]                                  <== NOT EXECUTED
3000b5a8:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000b5ac:	0a000026 	beq	3000b64c <_CORE_spinlock_Wait+0xd8>           <== NOT EXECUTED
      }                                                               
                                                                      
      /*                                                              
       *  Spinlock is unavailable.  If not willing to wait, return.   
       */                                                             
      if ( !wait ) {                                                  
3000b5b0:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000b5b4:	159f4098 	ldrne	r4, [pc, #152]	; 3000b654 <_CORE_spinlock_Wait+0xe0><== NOT EXECUTED
3000b5b8:	0a000014 	beq	3000b610 <_CORE_spinlock_Wait+0x9c>           <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b5bc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
       */                                                             
                                                                      
       _ISR_Enable( level );                                          
       /* An ISR could occur here */                                  
                                                                      
       _Thread_Enable_dispatch();                                     
3000b5c0:	eb0005f2 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000b5c4:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
3000b5c8:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000b5cc:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000b5d0:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000b5d4:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3000b5d8:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      return CORE_SPINLOCK_HOLDER_RELOCKING;                          
    }                                                                 
    the_spinlock->users += 1;                                         
    for ( ;; ) {                                                      
      if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) {           
3000b5dc:	e5951004 	ldr	r1, [r5, #4]                                  <== NOT EXECUTED
3000b5e0:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000b5e4:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000b5e8:	1afffff3 	bne	3000b5bc <_CORE_spinlock_Wait+0x48>           <== NOT EXECUTED
        the_spinlock->lock = CORE_SPINLOCK_LOCKED;                    
        the_spinlock->holder = _Thread_Executing->Object.id;          
3000b5ec:	e59f3064 	ldr	r3, [pc, #100]	; 3000b658 <_CORE_spinlock_Wait+0xe4><== NOT EXECUTED
      return CORE_SPINLOCK_HOLDER_RELOCKING;                          
    }                                                                 
    the_spinlock->users += 1;                                         
    for ( ;; ) {                                                      
      if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) {           
        the_spinlock->lock = CORE_SPINLOCK_LOCKED;                    
3000b5f0:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
        the_spinlock->holder = _Thread_Executing->Object.id;          
3000b5f4:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
      return CORE_SPINLOCK_HOLDER_RELOCKING;                          
    }                                                                 
    the_spinlock->users += 1;                                         
    for ( ;; ) {                                                      
      if ( the_spinlock->lock == CORE_SPINLOCK_UNLOCKED ) {           
        the_spinlock->lock = CORE_SPINLOCK_LOCKED;                    
3000b5f8:	e5851004 	str	r1, [r5, #4]                                  <== NOT EXECUTED
        the_spinlock->holder = _Thread_Executing->Object.id;          
3000b5fc:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
3000b600:	e585300c 	str	r3, [r5, #12]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b604:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
        _ISR_Enable( level );                                         
        return CORE_SPINLOCK_SUCCESSFUL;                              
3000b608:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000b60c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Spinlock is unavailable.  If not willing to wait, return.   
       */                                                             
      if ( !wait ) {                                                  
        the_spinlock->users -= 1;                                     
3000b610:	e5952008 	ldr	r2, [r5, #8]                                  <== NOT EXECUTED
3000b614:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000b618:	e5852008 	str	r2, [r5, #8]                                  <== NOT EXECUTED
3000b61c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
        _ISR_Enable( level );                                         
        return CORE_SPINLOCK_UNAVAILABLE;                             
3000b620:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
3000b624:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    Watchdog_Interval       limit = _Watchdog_Ticks_since_boot + timeout;
  #endif                                                              
                                                                      
  _ISR_Disable( level );                                              
    if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) &&              
         (the_spinlock->holder == _Thread_Executing->Object.id) ) {   
3000b628:	e59f2028 	ldr	r2, [pc, #40]	; 3000b658 <_CORE_spinlock_Wait+0xe4><== NOT EXECUTED
3000b62c:	e590000c 	ldr	r0, [r0, #12]                                 <== NOT EXECUTED
3000b630:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
  #if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)            
    Watchdog_Interval       limit = _Watchdog_Ticks_since_boot + timeout;
  #endif                                                              
                                                                      
  _ISR_Disable( level );                                              
    if ( (the_spinlock->lock == CORE_SPINLOCK_LOCKED) &&              
3000b634:	e5922008 	ldr	r2, [r2, #8]                                  <== NOT EXECUTED
3000b638:	e1500002 	cmp	r0, r2                                        <== NOT EXECUTED
3000b63c:	1affffd5 	bne	3000b598 <_CORE_spinlock_Wait+0x24>           <== NOT EXECUTED
3000b640:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
         (the_spinlock->holder == _Thread_Executing->Object.id) ) {   
      _ISR_Enable( level );                                           
      return CORE_SPINLOCK_HOLDER_RELOCKING;                          
3000b644:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000b648:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
  ISR_Level level;                                                    
  #if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)            
    Watchdog_Interval       limit = _Watchdog_Ticks_since_boot + timeout;
  #endif                                                              
                                                                      
  _ISR_Disable( level );                                              
3000b64c:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
3000b650:	eaffffe5 	b	3000b5ec <_CORE_spinlock_Wait+0x78>             <== NOT EXECUTED
                                                                      

3000af50 <_Chain_Append_with_empty_check>: bool _Chain_Append_with_empty_check( Chain_Control *chain, Chain_Node *node ) {
3000af50:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 <== NOT EXECUTED
3000af54:	e10fc000 	mrs	ip, CPSR                                      <== NOT EXECUTED
3000af58:	e38c3080 	orr	r3, ip, #128	; 0x80                           <== NOT EXECUTED
3000af5c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
3000af60:	e5903008 	ldr	r3, [r0, #8]                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
3000af64:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
    == _Chain_Immutable_tail( the_chain );                            
3000af68:	e2802004 	add	r2, r0, #4                                    <== NOT EXECUTED
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
3000af6c:	e5801008 	str	r1, [r0, #8]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
3000af70:	e881000c 	stm	r1, {r2, r3}                                  <== NOT EXECUTED
  tail->previous = the_node;                                          
  old_last->next = the_node;                                          
3000af74:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
3000af78:	e1540002 	cmp	r4, r2                                        <== NOT EXECUTED
3000af7c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000af80:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000af84:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
  _ISR_Disable( level );                                              
  was_empty = _Chain_Append_with_empty_check_unprotected( chain, node );
  _ISR_Enable( level );                                               
                                                                      
  return was_empty;                                                   
}                                                                     
3000af88:	e8bd0010 	pop	{r4}                                          <== NOT EXECUTED
3000af8c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000afdc <_Chain_Get_with_empty_check>: bool _Chain_Get_with_empty_check( Chain_Control *chain, Chain_Node **node ) {
3000afdc:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000afe0:	e10f4000 	mrs	r4, CPSR                                      <== NOT EXECUTED
3000afe4:	e3843080 	orr	r3, r4, #128	; 0x80                           <== NOT EXECUTED
3000afe8:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
)                                                                     
{                                                                     
  bool is_empty_now = true;                                           
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_first = head->next;                                 
3000afec:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
  Chain_Node **the_node                                               
)                                                                     
{                                                                     
  bool is_empty_now = true;                                           
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
3000aff0:	e280c004 	add	ip, r0, #4                                    <== NOT EXECUTED
  Chain_Node *old_first = head->next;                                 
                                                                      
  if ( old_first != tail ) {                                          
3000aff4:	e15c0003 	cmp	ip, r3                                        <== NOT EXECUTED
                                                                      
    *the_node = old_first;                                            
                                                                      
    is_empty_now = new_first == tail;                                 
  } else                                                              
    *the_node = NULL;                                                 
3000aff8:	03a03000 	moveq	r3, #0                                      <== NOT EXECUTED
3000affc:	05813000 	streq	r3, [r1]                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Get_with_empty_check_unprotected(    
  Chain_Control *the_chain,                                           
  Chain_Node **the_node                                               
)                                                                     
{                                                                     
  bool is_empty_now = true;                                           
3000b000:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_first = head->next;                                 
                                                                      
  if ( old_first != tail ) {                                          
3000b004:	0a000006 	beq	3000b024 <_Chain_Get_with_empty_check+0x48>   <== NOT EXECUTED
    Chain_Node *new_first = old_first->next;                          
3000b008:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
                                                                      
    head->next = new_first;                                           
3000b00c:	e5802000 	str	r2, [r0]                                      <== NOT EXECUTED
    new_first->previous = head;                                       
3000b010:	e5820004 	str	r0, [r2, #4]                                  <== NOT EXECUTED
                                                                      
    *the_node = old_first;                                            
                                                                      
    is_empty_now = new_first == tail;                                 
3000b014:	e15c0002 	cmp	ip, r2                                        <== NOT EXECUTED
3000b018:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000b01c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    Chain_Node *new_first = old_first->next;                          
                                                                      
    head->next = new_first;                                           
    new_first->previous = head;                                       
                                                                      
    *the_node = old_first;                                            
3000b020:	e5813000 	str	r3, [r1]                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b024:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
  _ISR_Disable( level );                                              
  is_empty_now = _Chain_Get_with_empty_check_unprotected( chain, node );
  _ISR_Enable( level );                                               
                                                                      
  return is_empty_now;                                                
}                                                                     
3000b028:	e8bd0010 	pop	{r4}                                          <== NOT EXECUTED
3000b02c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b08c <_Chain_Prepend_with_empty_check>: static inline uint32_t arm_interrupt_disable( void ) { uint32_t arm_switch_reg; uint32_t level; __asm__ volatile (
3000b08c:	e10fc000 	mrs	ip, CPSR                                      <== NOT EXECUTED
3000b090:	e38c3080 	orr	r3, ip, #128	; 0x80                           <== NOT EXECUTED
3000b094:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  _ISR_Disable( level );                                              
  was_empty = _Chain_Prepend_with_empty_check_unprotected( chain, node );
  _ISR_Enable( level );                                               
                                                                      
  return was_empty;                                                   
}                                                                     
3000b098:	e5902000 	ldr	r2, [r0]                                      <== NOT EXECUTED
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
3000b09c:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
3000b0a0:	e5810004 	str	r0, [r1, #4]                                  <== NOT EXECUTED
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
3000b0a4:	e4831004 	str	r1, [r3], #4                                  <== NOT EXECUTED
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
3000b0a8:	e5821004 	str	r1, [r2, #4]                                  <== NOT EXECUTED
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
3000b0ac:	e5812000 	str	r2, [r1]                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b0b0:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
3000b0b4:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000b0b8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000b0bc:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000b0c0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300095b4 <_Event_Seize>: rtems_event_set pending_events; ISR_Level level; RTEMS_API_Control *api; Thread_blocking_operation_States sync_state; executing = _Thread_Executing;
300095b4:	e59fc0fc 	ldr	ip, [pc, #252]	; 300096b8 <_Event_Seize+0x104>
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
300095b8:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  rtems_event_set                   pending_events;                   
  ISR_Level                         level;                            
  RTEMS_API_Control                *api;                              
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
300095bc:	e59c4004 	ldr	r4, [ip, #4]                                  
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
300095c0:	e3a0c000 	mov	ip, #0                                        
300095c4:	e584c034 	str	ip, [r4, #52]	; 0x34                          
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
300095c8:	e594c0f8 	ldr	ip, [r4, #248]	; 0xf8                         
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300095cc:	e10f7000 	mrs	r7, CPSR                                      
300095d0:	e3875080 	orr	r5, r7, #128	; 0x80                           
300095d4:	e129f005 	msr	CPSR_fc, r5                                   
                                                                      
  _ISR_Disable( level );                                              
  pending_events = api->pending_events;                               
300095d8:	e59c5000 	ldr	r5, [ip]                                      
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
300095dc:	e0106005 	ands	r6, r0, r5                                   
300095e0:	0a000003 	beq	300095f4 <_Event_Seize+0x40>                  
300095e4:	e1500006 	cmp	r0, r6                                        
300095e8:	0a00001f 	beq	3000966c <_Event_Seize+0xb8>                  
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
300095ec:	e3110002 	tst	r1, #2                                        <== NOT EXECUTED
300095f0:	1a00001d 	bne	3000966c <_Event_Seize+0xb8>                  <== NOT EXECUTED
    _ISR_Enable( level );                                             
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
300095f4:	e3110001 	tst	r1, #1                                        
300095f8:	1a000016 	bne	30009658 <_Event_Seize+0xa4>                  
   */                                                                 
  executing->Wait.option            = (uint32_t) option_set;          
  executing->Wait.count             = (uint32_t) event_in;            
  executing->Wait.return_argument   = event_out;                      
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
300095fc:	e59f50b8 	ldr	r5, [pc, #184]	; 300096bc <_Event_Seize+0x108>
   *  NOTE: Since interrupts are disabled, this isn't that much of an 
   *        issue but better safe than sorry.                         
   */                                                                 
  executing->Wait.option            = (uint32_t) option_set;          
  executing->Wait.count             = (uint32_t) event_in;            
  executing->Wait.return_argument   = event_out;                      
30009600:	e5843028 	str	r3, [r4, #40]	; 0x28                          
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
30009604:	e3a03001 	mov	r3, #1                                        
   *  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;          
30009608:	e5841030 	str	r1, [r4, #48]	; 0x30                          
  executing->Wait.count             = (uint32_t) event_in;            
3000960c:	e5840024 	str	r0, [r4, #36]	; 0x24                          
  executing->Wait.return_argument   = event_out;                      
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
30009610:	e5853000 	str	r3, [r5]                                      
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30009614:	e129f007 	msr	CPSR_fc, r7                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  if ( ticks ) {                                                      
30009618:	e3520000 	cmp	r2, #0                                        
3000961c:	1a000019 	bne	30009688 <_Event_Seize+0xd4>                  
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  }                                                                   
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
30009620:	e1a00004 	mov	r0, r4                                        
30009624:	e3a01c01 	mov	r1, #256	; 0x100                              
30009628:	eb000cdd 	bl	3000c9a4 <_Thread_Set_state>                   
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000962c:	e10f2000 	mrs	r2, CPSR                                      
30009630:	e3823080 	orr	r3, r2, #128	; 0x80                           
30009634:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  sync_state = _Event_Sync_state;                                     
30009638:	e5950000 	ldr	r0, [r5]                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
3000963c:	e3a03000 	mov	r3, #0                                        
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
30009640:	e3500001 	cmp	r0, #1                                        
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  sync_state = _Event_Sync_state;                                     
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
30009644:	e5853000 	str	r3, [r5]                                      
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
30009648:	0a00000c 	beq	30009680 <_Event_Seize+0xcc>                  
   *  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 );  
3000964c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
}                                                                     
30009650:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          <== NOT EXECUTED
   *  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 );  
30009654:	ea000976 	b	3000bc34 <_Thread_blocking_operation_Cancel>    <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30009658:	e129f007 	msr	CPSR_fc, r7                                   
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
    _ISR_Enable( level );                                             
    executing->Wait.return_code = RTEMS_UNSATISFIED;                  
3000965c:	e3a0200d 	mov	r2, #13                                       
30009660:	e5842034 	str	r2, [r4, #52]	; 0x34                          
    *event_out = seized_events;                                       
30009664:	e5836000 	str	r6, [r3]                                      
    return;                                                           
30009668:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
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) );                            
3000966c:	e1c55006 	bic	r5, r5, r6                                    
  pending_events = api->pending_events;                               
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
    api->pending_events =                                             
30009670:	e58c5000 	str	r5, [ip]                                      
30009674:	e129f007 	msr	CPSR_fc, r7                                   
      _Event_sets_Clear( pending_events, seized_events );             
    _ISR_Enable( level );                                             
    *event_out = seized_events;                                       
30009678:	e5836000 	str	r6, [r3]                                      
    return;                                                           
3000967c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
30009680:	e129f002 	msr	CPSR_fc, r2                                   
30009684:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  if ( ticks ) {                                                      
    _Watchdog_Initialize(                                             
30009688:	e5941008 	ldr	r1, [r4, #8]                                  
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000968c:	e59f002c 	ldr	r0, [pc, #44]	; 300096c0 <_Event_Seize+0x10c> 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
30009690:	e3a03000 	mov	r3, #0                                        
  the_watchdog->routine   = routine;                                  
30009694:	e5840064 	str	r0, [r4, #100]	; 0x64                         
  the_watchdog->id        = id;                                       
30009698:	e5841068 	str	r1, [r4, #104]	; 0x68                         
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000969c:	e5843050 	str	r3, [r4, #80]	; 0x50                          
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
300096a0:	e584306c 	str	r3, [r4, #108]	; 0x6c                         
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
300096a4:	e5842054 	str	r2, [r4, #84]	; 0x54                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
300096a8:	e59f0014 	ldr	r0, [pc, #20]	; 300096c4 <_Event_Seize+0x110> 
300096ac:	e2841048 	add	r1, r4, #72	; 0x48                            
300096b0:	eb000e2d 	bl	3000cf6c <_Watchdog_Insert>                    
300096b4:	eaffffd9 	b	30009620 <_Event_Seize+0x6c>                    
                                                                      

30009720 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) {
30009720:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  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 ];               
30009724:	e59010f8 	ldr	r1, [r0, #248]	; 0xf8                         
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
30009728:	e5906030 	ldr	r6, [r0, #48]	; 0x30                          
 */                                                                   
                                                                      
void _Event_Surrender(                                                
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
3000972c:	e1a04000 	mov	r4, r0                                        
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30009730:	e10f0000 	mrs	r0, CPSR                                      
30009734:	e3803080 	orr	r3, r0, #128	; 0x80                           
30009738:	e129f003 	msr	CPSR_fc, r3                                   
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
                                                                      
  _ISR_Disable( level );                                              
  pending_events  = api->pending_events;                              
3000973c:	e5912000 	ldr	r2, [r1]                                      
  event_condition = (rtems_event_set) the_thread->Wait.count;         
30009740:	e5943024 	ldr	r3, [r4, #36]	; 0x24                          
  seized_events = _Event_sets_Get( pending_events, event_condition ); 
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
30009744:	e013c002 	ands	ip, r3, r2                                   
30009748:	0a000020 	beq	300097d0 <_Event_Surrender+0xb0>              
                                                                      
  /*                                                                  
   *  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() &&                                       
3000974c:	e59f50fc 	ldr	r5, [pc, #252]	; 30009850 <_Event_Surrender+0x130>
30009750:	e5957000 	ldr	r7, [r5]                                      
30009754:	e3570000 	cmp	r7, #0                                        
30009758:	0a000002 	beq	30009768 <_Event_Surrender+0x48>              
3000975c:	e5955004 	ldr	r5, [r5, #4]                                  <== NOT EXECUTED
30009760:	e1540005 	cmp	r4, r5                                        <== NOT EXECUTED
30009764:	0a000024 	beq	300097fc <_Event_Surrender+0xdc>              <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_event (              
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_FOR_EVENT);                    
30009768:	e5945010 	ldr	r5, [r4, #16]                                 
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
3000976c:	e3150c01 	tst	r5, #256	; 0x100                              
30009770:	0a000014 	beq	300097c8 <_Event_Surrender+0xa8>              
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
30009774:	e153000c 	cmp	r3, ip                                        
30009778:	0a000001 	beq	30009784 <_Event_Surrender+0x64>              
3000977c:	e3160002 	tst	r6, #2                                        <== NOT EXECUTED
30009780:	0a000010 	beq	300097c8 <_Event_Surrender+0xa8>              <== NOT EXECUTED
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
30009784:	e5943028 	ldr	r3, [r4, #40]	; 0x28                          
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) );                            
30009788:	e1c2200c 	bic	r2, r2, ip                                    
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
3000978c:	e5812000 	str	r2, [r1]                                      
      the_thread->Wait.count = 0;                                     
30009790:	e3a02000 	mov	r2, #0                                        
30009794:	e5842024 	str	r2, [r4, #36]	; 0x24                          
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
30009798:	e583c000 	str	ip, [r3]                                      
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000979c:	e10f3000 	mrs	r3, CPSR                                      
300097a0:	e129f000 	msr	CPSR_fc, r0                                   
300097a4:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
      _ISR_Flash( level );                                            
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
300097a8:	e5943050 	ldr	r3, [r4, #80]	; 0x50                          
300097ac:	e3530002 	cmp	r3, #2                                        
300097b0:	0a000008 	beq	300097d8 <_Event_Surrender+0xb8>              
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
300097b4:	e129f000 	msr	CPSR_fc, r0                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
300097b8:	e59f1094 	ldr	r1, [pc, #148]	; 30009854 <_Event_Surrender+0x134>
300097bc:	e1a00004 	mov	r0, r4                                        
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
300097c0:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          
300097c4:	ea000970 	b	3000bd8c <_Thread_Clear_state>                  
300097c8:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
300097cc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
300097d0:	e129f000 	msr	CPSR_fc, r0                                   
300097d4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
300097d8:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
300097dc:	e5843050 	str	r3, [r4, #80]	; 0x50                          <== NOT EXECUTED
300097e0:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
        _ISR_Enable( level );                                         
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
        (void) _Watchdog_Remove( &the_thread->Timer );                
300097e4:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
300097e8:	eb000e4e 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
300097ec:	e59f1060 	ldr	r1, [pc, #96]	; 30009854 <_Event_Surrender+0x134><== NOT EXECUTED
300097f0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
300097f4:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          <== NOT EXECUTED
300097f8:	ea000963 	b	3000bd8c <_Thread_Clear_state>                  <== NOT EXECUTED
   *  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) ||   
300097fc:	e59f5054 	ldr	r5, [pc, #84]	; 30009858 <_Event_Surrender+0x138><== NOT EXECUTED
30009800:	e5957000 	ldr	r7, [r5]                                      <== NOT EXECUTED
  /*                                                                  
   *  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 ) &&                          
30009804:	e3570002 	cmp	r7, #2                                        <== NOT EXECUTED
30009808:	0a000002 	beq	30009818 <_Event_Surrender+0xf8>              <== NOT EXECUTED
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
3000980c:	e5957000 	ldr	r7, [r5]                                      <== NOT EXECUTED
   *  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) ||   
30009810:	e3570001 	cmp	r7, #1                                        <== NOT EXECUTED
30009814:	1affffd3 	bne	30009768 <_Event_Surrender+0x48>              <== NOT EXECUTED
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
30009818:	e153000c 	cmp	r3, ip                                        <== NOT EXECUTED
3000981c:	0a000001 	beq	30009828 <_Event_Surrender+0x108>             <== NOT EXECUTED
30009820:	e3160002 	tst	r6, #2                                        <== NOT EXECUTED
30009824:	0a000007 	beq	30009848 <_Event_Surrender+0x128>             <== NOT EXECUTED
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
30009828:	e5943028 	ldr	r3, [r4, #40]	; 0x28                          <== NOT EXECUTED
3000982c:	e1c2200c 	bic	r2, r2, ip                                    <== NOT EXECUTED
  if ( _ISR_Is_in_progress() &&                                       
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT) ||   
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED)) ) {
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
30009830:	e5812000 	str	r2, [r1]                                      <== NOT EXECUTED
      the_thread->Wait.count = 0;                                     
30009834:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
30009838:	e5842024 	str	r2, [r4, #36]	; 0x24                          <== NOT EXECUTED
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
3000983c:	e583c000 	str	ip, [r3]                                      <== NOT EXECUTED
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
30009840:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30009844:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
30009848:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
3000984c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000985c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
3000985c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
30009860:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30009864:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
30009868:	eb000a2e 	bl	3000c128 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000986c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
30009870:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009874:	1a000010 	bne	300098bc <_Event_Timeout+0x60>                <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30009878:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000987c:	e3821080 	orr	r1, r2, #128	; 0x80                           <== NOT EXECUTED
30009880:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
            _ISR_Enable( level );                                     
            return;                                                   
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
30009884:	e5803024 	str	r3, [r0, #36]	; 0x24                          <== NOT EXECUTED
        if ( _Thread_Is_executing( the_thread ) ) {                   
30009888:	e59f304c 	ldr	r3, [pc, #76]	; 300098dc <_Event_Timeout+0x80><== NOT EXECUTED
3000988c:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
30009890:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
30009894:	0a00000a 	beq	300098c4 <_Event_Timeout+0x68>                <== NOT EXECUTED
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
30009898:	e3a03006 	mov	r3, #6                                        <== NOT EXECUTED
3000989c:	e5803034 	str	r3, [r0, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
300098a0:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
300098a4:	e59f1034 	ldr	r1, [pc, #52]	; 300098e0 <_Event_Timeout+0x84><== NOT EXECUTED
300098a8:	eb000937 	bl	3000bd8c <_Thread_Clear_state>                 <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
300098ac:	e59f3030 	ldr	r3, [pc, #48]	; 300098e4 <_Event_Timeout+0x88><== NOT EXECUTED
300098b0:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
300098b4:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
300098b8:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
300098bc:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
300098c0:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
          }                                                           
        #endif                                                        
                                                                      
        the_thread->Wait.count = 0;                                   
        if ( _Thread_Is_executing( the_thread ) ) {                   
          if ( _Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )
300098c4:	e59f301c 	ldr	r3, [pc, #28]	; 300098e8 <_Event_Timeout+0x8c><== NOT EXECUTED
300098c8:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
300098cc:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
300098d0:	03a01002 	moveq	r1, #2                                      <== NOT EXECUTED
300098d4:	05831000 	streq	r1, [r3]                                    <== NOT EXECUTED
300098d8:	eaffffee 	b	30009898 <_Event_Timeout+0x3c>                  <== NOT EXECUTED
                                                                      

3000fde4 <_Heap_Allocate_aligned_with_boundary>: Heap_Control *heap, uintptr_t alloc_size, uintptr_t alignment, uintptr_t boundary ) {
3000fde4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
3000fde8:	e1a08002 	mov	r8, r2                                        
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
    - HEAP_ALLOC_BONUS;                                               
  uintptr_t const page_size = heap->page_size;                        
3000fdec:	e5902010 	ldr	r2, [r0, #16]                                 
  Heap_Control *heap,                                                 
  uintptr_t alloc_size,                                               
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
3000fdf0:	e24dd01c 	sub	sp, sp, #28                                   
3000fdf4:	e1a05001 	mov	r5, r1                                        
  Heap_Block *block = NULL;                                           
  uintptr_t alloc_begin = 0;                                          
  uint32_t search_count = 0;                                          
  bool search_again = false;                                          
                                                                      
  if ( block_size_floor < alloc_size ) {                              
3000fdf8:	e2911004 	adds	r1, r1, #4                                   
  Heap_Control *heap,                                                 
  uintptr_t alloc_size,                                               
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
3000fdfc:	e1a07000 	mov	r7, r0                                        
  Heap_Block *block = NULL;                                           
  uintptr_t alloc_begin = 0;                                          
  uint32_t search_count = 0;                                          
  bool search_again = false;                                          
                                                                      
  if ( block_size_floor < alloc_size ) {                              
3000fe00:	e58d1000 	str	r1, [sp]                                      
  Heap_Control *heap,                                                 
  uintptr_t alloc_size,                                               
  uintptr_t alignment,                                                
  uintptr_t boundary                                                  
)                                                                     
{                                                                     
3000fe04:	e1a0b003 	mov	fp, r3                                        
  Heap_Statistics *const stats = &heap->stats;                        
  uintptr_t const block_size_floor = alloc_size + HEAP_BLOCK_HEADER_SIZE
    - HEAP_ALLOC_BONUS;                                               
  uintptr_t const page_size = heap->page_size;                        
3000fe08:	e58d200c 	str	r2, [sp, #12]                                 
  Heap_Block *block = NULL;                                           
  uintptr_t alloc_begin = 0;                                          
  uint32_t search_count = 0;                                          
  bool search_again = false;                                          
                                                                      
  if ( block_size_floor < alloc_size ) {                              
3000fe0c:	2a000078 	bcs	3000fff4 <_Heap_Allocate_aligned_with_boundary+0x210>
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
3000fe10:	e3530000 	cmp	r3, #0                                        
3000fe14:	1a000074 	bne	3000ffec <_Heap_Allocate_aligned_with_boundary+0x208>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
3000fe18:	e5979008 	ldr	r9, [r7, #8]                                  
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
3000fe1c:	e1570009 	cmp	r7, r9                                        
3000fe20:	0a000073 	beq	3000fff4 <_Heap_Allocate_aligned_with_boundary+0x210>
  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    
3000fe24:	e59d300c 	ldr	r3, [sp, #12]                                 
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
3000fe28:	e2651004 	rsb	r1, r5, #4                                    
  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    
3000fe2c:	e2833007 	add	r3, r3, #7                                    
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
3000fe30:	e3a06001 	mov	r6, #1                                        
  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    
3000fe34:	e58d3010 	str	r3, [sp, #16]                                 
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
3000fe38:	e58d1014 	str	r1, [sp, #20]                                 
      /*                                                              
       * 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 ) {                
3000fe3c:	e599a004 	ldr	sl, [r9, #4]                                  
3000fe40:	e59d2000 	ldr	r2, [sp]                                      
3000fe44:	e152000a 	cmp	r2, sl                                        
3000fe48:	2a00004e 	bcs	3000ff88 <_Heap_Allocate_aligned_with_boundary+0x1a4>
        if ( alignment == 0 ) {                                       
3000fe4c:	e3580000 	cmp	r8, #0                                        
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
3000fe50:	02894008 	addeq	r4, r9, #8                                  
3000fe54:	0a000051 	beq	3000ffa0 <_Heap_Allocate_aligned_with_boundary+0x1bc>
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
3000fe58:	e5973014 	ldr	r3, [r7, #20]                                 
  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;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
3000fe5c:	e59d1014 	ldr	r1, [sp, #20]                                 
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
3000fe60:	e59d2010 	ldr	r2, [sp, #16]                                 
    - 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;                
3000fe64:	e3caa001 	bic	sl, sl, #1                                    
  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;               
3000fe68:	e089a00a 	add	sl, r9, sl                                    
  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;                         
                                                                      
  uintptr_t alloc_end = block_end + HEAP_ALLOC_BONUS;                 
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
3000fe6c:	e081400a 	add	r4, r1, sl                                    
  if ( stats->max_search < search_count ) {                           
    stats->max_search = search_count;                                 
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
3000fe70:	e58d3004 	str	r3, [sp, #4]                                  
  uintptr_t const block_size = _Heap_Block_size( block );             
  uintptr_t const block_end = block_begin + block_size;               
                                                                      
  uintptr_t const alloc_begin_floor = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_begin_ceiling = block_end - min_block_size    
    + HEAP_BLOCK_HEADER_SIZE + page_size - 1;                         
3000fe74:	e0633002 	rsb	r3, r3, r2                                    
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
3000fe78:	e1a00004 	mov	r0, r4                                        
  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    
3000fe7c:	e083a00a 	add	sl, r3, sl                                    
3000fe80:	e1a01008 	mov	r1, r8                                        
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
3000fe84:	e2893008 	add	r3, r9, #8                                    
3000fe88:	e58d3008 	str	r3, [sp, #8]                                  
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
3000fe8c:	eb001682 	bl	3001589c <__umodsi3>                           
3000fe90:	e0604004 	rsb	r4, r0, r4                                    
  uintptr_t alloc_begin = alloc_end - alloc_size;                     
                                                                      
  alloc_begin = _Heap_Align_down( alloc_begin, alignment );           
                                                                      
  /* Ensure that the we have a valid new block at the end */          
  if ( alloc_begin > alloc_begin_ceiling ) {                          
3000fe94:	e15a0004 	cmp	sl, r4                                        
3000fe98:	2a000003 	bcs	3000feac <_Heap_Allocate_aligned_with_boundary+0xc8>
3000fe9c:	e1a0000a 	mov	r0, sl                                        
3000fea0:	e1a01008 	mov	r1, r8                                        
3000fea4:	eb00167c 	bl	3001589c <__umodsi3>                           
3000fea8:	e060400a 	rsb	r4, r0, sl                                    
  }                                                                   
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
3000feac:	e35b0000 	cmp	fp, #0                                        
3000feb0:	0a000026 	beq	3000ff50 <_Heap_Allocate_aligned_with_boundary+0x16c>
  /* 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;                               
3000feb4:	e084a005 	add	sl, r4, r5                                    <== NOT EXECUTED
3000feb8:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000febc:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
3000fec0:	eb001675 	bl	3001589c <__umodsi3>                           <== NOT EXECUTED
3000fec4:	e060000a 	rsb	r0, r0, sl                                    <== NOT EXECUTED
  /* 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 ) {
3000fec8:	e15a0000 	cmp	sl, r0                                        <== NOT EXECUTED
3000fecc:	93a0a000 	movls	sl, #0                                      <== NOT EXECUTED
3000fed0:	83a0a001 	movhi	sl, #1                                      <== NOT EXECUTED
3000fed4:	e1540000 	cmp	r4, r0                                        <== NOT EXECUTED
3000fed8:	23a0a000 	movcs	sl, #0                                      <== NOT EXECUTED
3000fedc:	e35a0000 	cmp	sl, #0                                        <== NOT EXECUTED
3000fee0:	0a00001a 	beq	3000ff50 <_Heap_Allocate_aligned_with_boundary+0x16c><== NOT EXECUTED
                                                                      
  alloc_end = alloc_begin + alloc_size;                               
                                                                      
  /* Ensure boundary constaint */                                     
  if ( boundary != 0 ) {                                              
    uintptr_t const boundary_floor = alloc_begin_floor + alloc_size;  
3000fee4:	e59d1008 	ldr	r1, [sp, #8]                                  <== NOT EXECUTED
3000fee8:	e0813005 	add	r3, r1, r5                                    <== NOT EXECUTED
    uintptr_t boundary_line = _Heap_Align_down( alloc_end, boundary );
                                                                      
    while ( alloc_begin < boundary_line && boundary_line < alloc_end ) {
      if ( boundary_line < boundary_floor ) {                         
3000feec:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
3000fef0:	958d9018 	strls	r9, [sp, #24]                               <== NOT EXECUTED
3000fef4:	91a09003 	movls	r9, r3                                      <== NOT EXECUTED
3000fef8:	9a000002 	bls	3000ff08 <_Heap_Allocate_aligned_with_boundary+0x124><== NOT EXECUTED
3000fefc:	ea000021 	b	3000ff88 <_Heap_Allocate_aligned_with_boundary+0x1a4><== NOT EXECUTED
3000ff00:	e1590000 	cmp	r9, r0                                        <== NOT EXECUTED
3000ff04:	8a00003c 	bhi	3000fffc <_Heap_Allocate_aligned_with_boundary+0x218><== NOT EXECUTED
        return 0;                                                     
      }                                                               
      alloc_begin = boundary_line - alloc_size;                       
3000ff08:	e0654000 	rsb	r4, r5, r0                                    <== NOT EXECUTED
3000ff0c:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000ff10:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ff14:	eb001660 	bl	3001589c <__umodsi3>                           <== NOT EXECUTED
3000ff18:	e0604004 	rsb	r4, r0, r4                                    <== NOT EXECUTED
      alloc_begin = _Heap_Align_down( alloc_begin, alignment );       
      alloc_end = alloc_begin + alloc_size;                           
3000ff1c:	e084a005 	add	sl, r4, r5                                    <== NOT EXECUTED
3000ff20:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000ff24:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
3000ff28:	eb00165b 	bl	3001589c <__umodsi3>                           <== NOT EXECUTED
3000ff2c:	e060000a 	rsb	r0, r0, sl                                    <== NOT EXECUTED
  /* 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 ) {
3000ff30:	e15a0000 	cmp	sl, r0                                        <== NOT EXECUTED
3000ff34:	93a0a000 	movls	sl, #0                                      <== NOT EXECUTED
3000ff38:	83a0a001 	movhi	sl, #1                                      <== NOT EXECUTED
3000ff3c:	e1540000 	cmp	r4, r0                                        <== NOT EXECUTED
3000ff40:	23a0a000 	movcs	sl, #0                                      <== NOT EXECUTED
3000ff44:	e35a0000 	cmp	sl, #0                                        <== NOT EXECUTED
3000ff48:	1affffec 	bne	3000ff00 <_Heap_Allocate_aligned_with_boundary+0x11c><== NOT EXECUTED
3000ff4c:	e59d9018 	ldr	r9, [sp, #24]                                 <== NOT EXECUTED
      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 ) {                           
3000ff50:	e59d2008 	ldr	r2, [sp, #8]                                  
3000ff54:	e1520004 	cmp	r2, r4                                        
3000ff58:	8a00000a 	bhi	3000ff88 <_Heap_Allocate_aligned_with_boundary+0x1a4>
3000ff5c:	e59d100c 	ldr	r1, [sp, #12]                                 
3000ff60:	e1a00004 	mov	r0, r4                                        
3000ff64:	eb00164c 	bl	3001589c <__umodsi3>                           
3000ff68:	e3e0a007 	mvn	sl, #7                                        
3000ff6c:	e069a00a 	rsb	sl, r9, sl                                    
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
3000ff70:	e08aa004 	add	sl, sl, r4                                    
    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;      
                                                                      
    if ( free_size >= min_block_size || free_size == 0 ) {            
3000ff74:	e59d1004 	ldr	r1, [sp, #4]                                  
3000ff78:	e060300a 	rsb	r3, r0, sl                                    
3000ff7c:	e15a0000 	cmp	sl, r0                                        
3000ff80:	11510003 	cmpne	r1, r3                                      
3000ff84:	9a000005 	bls	3000ffa0 <_Heap_Allocate_aligned_with_boundary+0x1bc>
                                                                      
      if ( alloc_begin != 0 ) {                                       
        break;                                                        
      }                                                               
                                                                      
      block = block->next;                                            
3000ff88:	e5999008 	ldr	r9, [r9, #8]                                  
3000ff8c:	e2863001 	add	r3, r6, #1                                    
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
3000ff90:	e1570009 	cmp	r7, r9                                        
3000ff94:	0a00001d 	beq	30010010 <_Heap_Allocate_aligned_with_boundary+0x22c>
3000ff98:	e1a06003 	mov	r6, r3                                        
3000ff9c:	eaffffa6 	b	3000fe3c <_Heap_Allocate_aligned_with_boundary+0x58>
      }                                                               
                                                                      
      /* Statistics */                                                
      ++search_count;                                                 
                                                                      
      if ( alloc_begin != 0 ) {                                       
3000ffa0:	e3540000 	cmp	r4, #0                                        
3000ffa4:	0afffff7 	beq	3000ff88 <_Heap_Allocate_aligned_with_boundary+0x1a4>
    search_again = _Heap_Protection_free_delayed_blocks( heap, alloc_begin );
  } while ( search_again );                                           
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    ++stats->allocs;                                                  
3000ffa8:	e5972048 	ldr	r2, [r7, #72]	; 0x48                          
    stats->searches += search_count;                                  
3000ffac:	e597304c 	ldr	r3, [r7, #76]	; 0x4c                          
    search_again = _Heap_Protection_free_delayed_blocks( heap, alloc_begin );
  } while ( search_again );                                           
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    ++stats->allocs;                                                  
3000ffb0:	e2822001 	add	r2, r2, #1                                    
    stats->searches += search_count;                                  
3000ffb4:	e0833006 	add	r3, r3, r6                                    
    search_again = _Heap_Protection_free_delayed_blocks( heap, alloc_begin );
  } while ( search_again );                                           
                                                                      
  if ( alloc_begin != 0 ) {                                           
    /* Statistics */                                                  
    ++stats->allocs;                                                  
3000ffb8:	e5872048 	str	r2, [r7, #72]	; 0x48                          
    stats->searches += search_count;                                  
3000ffbc:	e587304c 	str	r3, [r7, #76]	; 0x4c                          
                                                                      
    block = _Heap_Block_allocate( heap, block, alloc_begin, alloc_size );
3000ffc0:	e1a00007 	mov	r0, r7                                        
3000ffc4:	e1a01009 	mov	r1, r9                                        
3000ffc8:	e1a02004 	mov	r2, r4                                        
3000ffcc:	e1a03005 	mov	r3, r5                                        
3000ffd0:	ebffeb55 	bl	3000ad2c <_Heap_Block_allocate>                
3000ffd4:	e1a00004 	mov	r0, r4                                        
      boundary                                                        
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->max_search < search_count ) {                           
3000ffd8:	e5973044 	ldr	r3, [r7, #68]	; 0x44                          
3000ffdc:	e1530006 	cmp	r3, r6                                        
    stats->max_search = search_count;                                 
3000ffe0:	35876044 	strcc	r6, [r7, #68]	; 0x44                        
  }                                                                   
                                                                      
  return (void *) alloc_begin;                                        
}                                                                     
3000ffe4:	e28dd01c 	add	sp, sp, #28                                   
3000ffe8:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
    /* Integer overflow occured */                                    
    return NULL;                                                      
  }                                                                   
                                                                      
  if ( boundary != 0 ) {                                              
    if ( boundary < alloc_size ) {                                    
3000ffec:	e1550003 	cmp	r5, r3                                        <== NOT EXECUTED
3000fff0:	9a000008 	bls	30010018 <_Heap_Allocate_aligned_with_boundary+0x234><== NOT EXECUTED
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
3000fff4:	e3a00000 	mov	r0, #0                                        
3000fff8:	eafffff9 	b	3000ffe4 <_Heap_Allocate_aligned_with_boundary+0x200>
3000fffc:	e59d9018 	ldr	r9, [sp, #24]                                 <== NOT EXECUTED
                                                                      
      if ( alloc_begin != 0 ) {                                       
        break;                                                        
      }                                                               
                                                                      
      block = block->next;                                            
30010000:	e2863001 	add	r3, r6, #1                                    <== NOT EXECUTED
30010004:	e5999008 	ldr	r9, [r9, #8]                                  <== NOT EXECUTED
                                                                      
  do {                                                                
    Heap_Block *const free_list_tail = _Heap_Free_list_tail( heap );  
                                                                      
    block = _Heap_Free_list_first( heap );                            
    while ( block != free_list_tail ) {                               
30010008:	e1570009 	cmp	r7, r9                                        <== NOT EXECUTED
3001000c:	1affffe1 	bne	3000ff98 <_Heap_Allocate_aligned_with_boundary+0x1b4><== NOT EXECUTED
30010010:	e3a00000 	mov	r0, #0                                        
30010014:	eaffffef 	b	3000ffd8 <_Heap_Allocate_aligned_with_boundary+0x1f4>
    if ( boundary < alloc_size ) {                                    
      return NULL;                                                    
    }                                                                 
                                                                      
    if ( alignment == 0 ) {                                           
      alignment = page_size;                                          
30010018:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
3001001c:	01a08002 	moveq	r8, r2                                      <== NOT EXECUTED
30010020:	eaffff7c 	b	3000fe18 <_Heap_Allocate_aligned_with_boundary+0x34><== NOT EXECUTED
                                                                      

3000ad2c <_Heap_Block_allocate>: Heap_Control *heap, Heap_Block *block, uintptr_t alloc_begin, uintptr_t alloc_size ) {
3000ad2c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ad30:	e5917004 	ldr	r7, [r1, #4]                                  
  Heap_Control *heap,                                                 
  Heap_Block *block,                                                  
  uintptr_t alloc_begin,                                              
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
3000ad34:	e1a05001 	mov	r5, r1                                        
    - 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;                
3000ad38:	e3c71001 	bic	r1, r7, #1                                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000ad3c:	e0858001 	add	r8, r5, r1                                    
  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;                 
3000ad40:	e598c004 	ldr	ip, [r8, #4]                                  
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Alloc_area_of_block(             
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (uintptr_t) block + HEAP_BLOCK_HEADER_SIZE;                  
3000ad44:	e2426008 	sub	r6, r2, #8                                    
                                                                      
  Heap_Block *free_list_anchor = NULL;                                
                                                                      
  _HAssert( alloc_area_begin <= alloc_begin );                        
                                                                      
  if ( _Heap_Is_free( block ) ) {                                     
3000ad48:	e31c0001 	tst	ip, #1                                        
  Heap_Control *heap,                                                 
  Heap_Block *block,                                                  
  uintptr_t alloc_begin,                                              
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
3000ad4c:	e1a0a003 	mov	sl, r3                                        
3000ad50:	e1a04000 	mov	r4, r0                                        
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  uintptr_t const alloc_area_begin = _Heap_Alloc_area_of_block( block );
  uintptr_t const alloc_area_offset = alloc_begin - alloc_area_begin; 
3000ad54:	e0653006 	rsb	r3, r5, r6                                    
    /* Statistics */                                                  
    --stats->free_blocks;                                             
    ++stats->used_blocks;                                             
    stats->free_size -= _Heap_Block_size( block );                    
  } else {                                                            
    free_list_anchor = _Heap_Free_list_head( heap );                  
3000ad58:	11a09000 	movne	r9, r0                                      
                                                                      
  Heap_Block *free_list_anchor = NULL;                                
                                                                      
  _HAssert( alloc_area_begin <= alloc_begin );                        
                                                                      
  if ( _Heap_Is_free( block ) ) {                                     
3000ad5c:	1a00000c 	bne	3000ad94 <_Heap_Block_allocate+0x68>          
    free_list_anchor = block->prev;                                   
                                                                      
    _Heap_Free_list_remove( block );                                  
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
3000ad60:	e590e038 	ldr	lr, [r0, #56]	; 0x38                          
    ++stats->used_blocks;                                             
3000ad64:	e590c040 	ldr	ip, [r0, #64]	; 0x40                          
    stats->free_size -= _Heap_Block_size( block );                    
3000ad68:	e590b030 	ldr	fp, [r0, #48]	; 0x30                          
  Heap_Block *free_list_anchor = NULL;                                
                                                                      
  _HAssert( alloc_area_begin <= alloc_begin );                        
                                                                      
  if ( _Heap_Is_free( block ) ) {                                     
    free_list_anchor = block->prev;                                   
3000ad6c:	e595900c 	ldr	r9, [r5, #12]                                 
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ad70:	e5950008 	ldr	r0, [r5, #8]                                  
    free_list_anchor = block->prev;                                   
                                                                      
    _Heap_Free_list_remove( block );                                  
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
3000ad74:	e24ee001 	sub	lr, lr, #1                                    
    ++stats->used_blocks;                                             
3000ad78:	e28cc001 	add	ip, ip, #1                                    
    stats->free_size -= _Heap_Block_size( block );                    
3000ad7c:	e061100b 	rsb	r1, r1, fp                                    
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
                                                                      
  prev->next = next;                                                  
3000ad80:	e5890008 	str	r0, [r9, #8]                                  
  next->prev = prev;                                                  
3000ad84:	e580900c 	str	r9, [r0, #12]                                 
    free_list_anchor = block->prev;                                   
                                                                      
    _Heap_Free_list_remove( block );                                  
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
3000ad88:	e584e038 	str	lr, [r4, #56]	; 0x38                          
    ++stats->used_blocks;                                             
3000ad8c:	e584c040 	str	ip, [r4, #64]	; 0x40                          
    stats->free_size -= _Heap_Block_size( block );                    
3000ad90:	e5841030 	str	r1, [r4, #48]	; 0x30                          
  } else {                                                            
    free_list_anchor = _Heap_Free_list_head( heap );                  
  }                                                                   
                                                                      
  if ( alloc_area_offset < heap->page_size ) {                        
3000ad94:	e5941010 	ldr	r1, [r4, #16]                                 
3000ad98:	e1530001 	cmp	r3, r1                                        
3000ad9c:	3a000027 	bcc	3000ae40 <_Heap_Block_allocate+0x114>         
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
3000ada0:	e1a00002 	mov	r0, r2                                        
3000ada4:	eb002abc 	bl	3001589c <__umodsi3>                           
                                                                      
  _HAssert( block_size >= heap->min_block_size );                     
  _HAssert( new_block_size >= heap->min_block_size );                 
                                                                      
  /* Statistics */                                                    
  stats->free_size += block_size;                                     
3000ada8:	e5943030 	ldr	r3, [r4, #48]	; 0x30                          
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
3000adac:	e0606006 	rsb	r6, r0, r6                                    
    _Heap_Block_of_alloc_area( alloc_begin, heap->page_size );        
  uintptr_t const new_block_begin = (uintptr_t) new_block;            
  uintptr_t const new_block_size = block_end - new_block_begin;       
                                                                      
  block_end = new_block_begin;                                        
  block_size = block_end - block_begin;                               
3000adb0:	e0651006 	rsb	r1, r5, r6                                    
                                                                      
  _HAssert( block_size >= heap->min_block_size );                     
  _HAssert( new_block_size >= heap->min_block_size );                 
                                                                      
  /* Statistics */                                                    
  stats->free_size += block_size;                                     
3000adb4:	e0833001 	add	r3, r3, r1                                    
                                                                      
  if ( _Heap_Is_prev_used( block ) ) {                                
3000adb8:	e3170001 	tst	r7, #1                                        
  uintptr_t block_end = block_begin + block_size;                     
                                                                      
  Heap_Block *const new_block =                                       
    _Heap_Block_of_alloc_area( alloc_begin, heap->page_size );        
  uintptr_t const new_block_begin = (uintptr_t) new_block;            
  uintptr_t const new_block_size = block_end - new_block_begin;       
3000adbc:	e0668008 	rsb	r8, r6, r8                                    
                                                                      
  _HAssert( block_size >= heap->min_block_size );                     
  _HAssert( new_block_size >= heap->min_block_size );                 
                                                                      
  /* Statistics */                                                    
  stats->free_size += block_size;                                     
3000adc0:	e5843030 	str	r3, [r4, #48]	; 0x30                          
                                                                      
  if ( _Heap_Is_prev_used( block ) ) {                                
3000adc4:	1a000013 	bne	3000ae18 <_Heap_Block_allocate+0xec>          
                                                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Prev_block(                    
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block - block->prev_size);       
3000adc8:	e5953000 	ldr	r3, [r5]                                      <== NOT EXECUTED
  } else {                                                            
    Heap_Block *const prev_block = _Heap_Prev_block( block );         
    uintptr_t const prev_block_size = _Heap_Block_size( prev_block ); 
                                                                      
    block = prev_block;                                               
    block_size += prev_block_size;                                    
3000adcc:	e1a02009 	mov	r2, r9                                        <== NOT EXECUTED
3000add0:	e0635005 	rsb	r5, r3, r5                                    <== NOT EXECUTED
    - 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;                
3000add4:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
3000add8:	e3c33001 	bic	r3, r3, #1                                    <== NOT EXECUTED
3000addc:	e0811003 	add	r1, r1, r3                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;           
3000ade0:	e3813001 	orr	r3, r1, #1                                    
3000ade4:	e5853004 	str	r3, [r5, #4]                                  
                                                                      
  new_block->prev_size = block_size;                                  
3000ade8:	e5861000 	str	r1, [r6]                                      
  new_block->size_and_flag = new_block_size;                          
                                                                      
  _Heap_Block_split( heap, new_block, free_list_anchor, alloc_size ); 
3000adec:	e1a00004 	mov	r0, r4                                        
3000adf0:	e1a0300a 	mov	r3, sl                                        
  }                                                                   
                                                                      
  block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;           
                                                                      
  new_block->prev_size = block_size;                                  
  new_block->size_and_flag = new_block_size;                          
3000adf4:	e5868004 	str	r8, [r6, #4]                                  
                                                                      
  _Heap_Block_split( heap, new_block, free_list_anchor, alloc_size ); 
3000adf8:	e1a01006 	mov	r1, r6                                        
3000adfc:	ebffff1a 	bl	3000aa6c <_Heap_Block_split>                   
      alloc_size                                                      
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->min_free_size > stats->free_size ) {                    
3000ae00:	e5943030 	ldr	r3, [r4, #48]	; 0x30                          
3000ae04:	e5942034 	ldr	r2, [r4, #52]	; 0x34                          
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ae08:	e1a00006 	mov	r0, r6                                        
      alloc_size                                                      
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->min_free_size > stats->free_size ) {                    
3000ae0c:	e1520003 	cmp	r2, r3                                        
    stats->min_free_size = stats->free_size;                          
3000ae10:	85843034 	strhi	r3, [r4, #52]	; 0x34                        
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ae14:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
    _Heap_Free_list_insert_after( free_list_anchor, block );          
                                                                      
    free_list_anchor = block;                                         
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
3000ae18:	e5940038 	ldr	r0, [r4, #56]	; 0x38                          
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
3000ae1c:	e5993008 	ldr	r3, [r9, #8]                                  
3000ae20:	e2800001 	add	r0, r0, #1                                    
                                                                      
  new_block->next = next;                                             
3000ae24:	e5853008 	str	r3, [r5, #8]                                  
  new_block->prev = block_before;                                     
3000ae28:	e585900c 	str	r9, [r5, #12]                                 
  block_before->next = new_block;                                     
3000ae2c:	e5895008 	str	r5, [r9, #8]                                  
  next->prev = new_block;                                             
3000ae30:	e583500c 	str	r5, [r3, #12]                                 
3000ae34:	e1a02005 	mov	r2, r5                                        
3000ae38:	e5840038 	str	r0, [r4, #56]	; 0x38                          
3000ae3c:	eaffffe7 	b	3000ade0 <_Heap_Block_allocate+0xb4>            
  Heap_Block *block,                                                  
  Heap_Block *free_list_anchor,                                       
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
  _Heap_Block_split( heap, block, free_list_anchor, alloc_size );     
3000ae40:	e1a00004 	mov	r0, r4                                        
3000ae44:	e1a02009 	mov	r2, r9                                        
3000ae48:	e083300a 	add	r3, r3, sl                                    
3000ae4c:	e1a01005 	mov	r1, r5                                        
3000ae50:	ebffff05 	bl	3000aa6c <_Heap_Block_split>                   
      alloc_size                                                      
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->min_free_size > stats->free_size ) {                    
3000ae54:	e5943030 	ldr	r3, [r4, #48]	; 0x30                          
3000ae58:	e5942034 	ldr	r2, [r4, #52]	; 0x34                          
  Heap_Block *block,                                                  
  Heap_Block *free_list_anchor,                                       
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
  _Heap_Block_split( heap, block, free_list_anchor, alloc_size );     
3000ae5c:	e1a06005 	mov	r6, r5                                        
      alloc_size                                                      
    );                                                                
  }                                                                   
                                                                      
  /* Statistics */                                                    
  if ( stats->min_free_size > stats->free_size ) {                    
3000ae60:	e1520003 	cmp	r2, r3                                        
    stats->min_free_size = stats->free_size;                          
3000ae64:	85843034 	strhi	r3, [r4, #52]	; 0x34                        
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ae68:	e1a00006 	mov	r0, r6                                        
3000ae6c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

3000aa6c <_Heap_Block_split>: Heap_Control *heap, Heap_Block *block, Heap_Block *free_list_anchor, uintptr_t alloc_size ) {
3000aa6c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
3000aa70:	e5905014 	ldr	r5, [r0, #20]                                 
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  uintptr_t const page_size = heap->page_size;                        
3000aa74:	e5906010 	ldr	r6, [r0, #16]                                 
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const min_alloc_size = min_block_size - HEAP_BLOCK_HEADER_SIZE;
3000aa78:	e2458008 	sub	r8, r5, #8                                    
  return heap->stats.size;                                            
}                                                                     
                                                                      
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Max( uintptr_t a, uintptr_t b )  
{                                                                     
  return a > b ? a : b;                                               
3000aa7c:	e1530008 	cmp	r3, r8                                        
3000aa80:	21a08003 	movcs	r8, r3                                      
                                                                      
  uintptr_t const block_size = _Heap_Block_size( block );             
                                                                      
  uintptr_t const used_size =                                         
3000aa84:	e2888008 	add	r8, r8, #8                                    
  Heap_Control *heap,                                                 
  Heap_Block *block,                                                  
  Heap_Block *free_list_anchor,                                       
  uintptr_t alloc_size                                                
)                                                                     
{                                                                     
3000aa88:	e1a07001 	mov	r7, r1                                        
3000aa8c:	e1a04000 	mov	r4, r0                                        
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
3000aa90:	e1a01006 	mov	r1, r6                                        
3000aa94:	e1a00008 	mov	r0, r8                                        
3000aa98:	e1a09002 	mov	r9, r2                                        
3000aa9c:	eb002b7e 	bl	3001589c <__umodsi3>                           
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000aaa0:	e597a004 	ldr	sl, [r7, #4]                                  
                                                                      
  if ( remainder != 0 ) {                                             
3000aaa4:	e3500000 	cmp	r0, #0                                        
    - 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;                
3000aaa8:	e3ca2001 	bic	r2, sl, #1                                    
                                                                      
  uintptr_t const used_size =                                         
    _Heap_Max( alloc_size, min_alloc_size ) + HEAP_BLOCK_HEADER_SIZE; 
  uintptr_t const used_block_size = _Heap_Align_up( used_size, page_size );
                                                                      
  uintptr_t const free_size = block_size + HEAP_ALLOC_BONUS - used_size;
3000aaac:	e2823004 	add	r3, r2, #4                                    
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
                                                                      
  if ( remainder != 0 ) {                                             
    return value - remainder + alignment;                             
3000aab0:	10886006 	addne	r6, r8, r6                                  
  } else {                                                            
    return value;                                                     
3000aab4:	01a06008 	moveq	r6, r8                                      
  uintptr_t const free_size_limit = min_block_size + HEAP_ALLOC_BONUS;
3000aab8:	e2855004 	add	r5, r5, #4                                    
                                                                      
  uintptr_t const used_size =                                         
    _Heap_Max( alloc_size, min_alloc_size ) + HEAP_BLOCK_HEADER_SIZE; 
  uintptr_t const used_block_size = _Heap_Align_up( used_size, page_size );
                                                                      
  uintptr_t const free_size = block_size + HEAP_ALLOC_BONUS - used_size;
3000aabc:	e0688003 	rsb	r8, r8, r3                                    
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
                                                                      
  if ( remainder != 0 ) {                                             
    return value - remainder + alignment;                             
3000aac0:	10606006 	rsbne	r6, r0, r6                                  
  Heap_Block *next_block = _Heap_Block_at( block, block_size );       
                                                                      
  _HAssert( used_size <= block_size + HEAP_ALLOC_BONUS );             
  _HAssert( used_size + free_size == block_size + HEAP_ALLOC_BONUS ); 
                                                                      
  if ( free_size >= free_size_limit ) {                               
3000aac4:	e1580005 	cmp	r8, r5                                        
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000aac8:	e0873002 	add	r3, r7, r2                                    
3000aacc:	3a00001c 	bcc	3000ab44 <_Heap_Block_split+0xd8>             
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;       
3000aad0:	e20aa001 	and	sl, sl, #1                                    
                                                                      
  block->size_and_flag = size | flag;                                 
3000aad4:	e186a00a 	orr	sl, r6, sl                                    
3000aad8:	e587a004 	str	sl, [r7, #4]                                  
    - 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;                
3000aadc:	e5931004 	ldr	r1, [r3, #4]                                  
    _HAssert( used_block_size + free_block_size == block_size );      
                                                                      
    _Heap_Block_set_size( block, used_block_size );                   
                                                                      
    /* Statistics */                                                  
    stats->free_size += free_block_size;                              
3000aae0:	e5940030 	ldr	r0, [r4, #48]	; 0x30                          
3000aae4:	e3c11001 	bic	r1, r1, #1                                    
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000aae8:	e083c001 	add	ip, r3, r1                                    
  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;                 
3000aaec:	e59cc004 	ldr	ip, [ip, #4]                                  
  _HAssert( used_size <= block_size + HEAP_ALLOC_BONUS );             
  _HAssert( used_size + free_size == block_size + HEAP_ALLOC_BONUS ); 
                                                                      
  if ( free_size >= free_size_limit ) {                               
    Heap_Block *const free_block = _Heap_Block_at( block, used_block_size );
    uintptr_t free_block_size = block_size - used_block_size;         
3000aaf0:	e0662002 	rsb	r2, r6, r2                                    
    _HAssert( used_block_size + free_block_size == block_size );      
                                                                      
    _Heap_Block_set_size( block, used_block_size );                   
                                                                      
    /* Statistics */                                                  
    stats->free_size += free_block_size;                              
3000aaf4:	e0800002 	add	r0, r0, r2                                    
                                                                      
    if ( _Heap_Is_used( next_block ) ) {                              
3000aaf8:	e31c0001 	tst	ip, #1                                        
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000aafc:	e0867007 	add	r7, r6, r7                                    
    _HAssert( used_block_size + free_block_size == block_size );      
                                                                      
    _Heap_Block_set_size( block, used_block_size );                   
                                                                      
    /* Statistics */                                                  
    stats->free_size += free_block_size;                              
3000ab00:	e5840030 	str	r0, [r4, #48]	; 0x30                          
                                                                      
    if ( _Heap_Is_used( next_block ) ) {                              
3000ab04:	1a000012 	bne	3000ab54 <_Heap_Block_split+0xe8>             
  }                                                                   
                                                                      
  _Heap_Protection_block_initialize( heap, block );                   
                                                                      
  return block;                                                       
}                                                                     
3000ab08:	e5930008 	ldr	r0, [r3, #8]                                  <== NOT EXECUTED
3000ab0c:	e593300c 	ldr	r3, [r3, #12]                                 <== NOT EXECUTED
    } else {                                                          
      uintptr_t const next_block_size = _Heap_Block_size( next_block );
                                                                      
      _Heap_Free_list_replace( next_block, free_block );              
                                                                      
      free_block_size += next_block_size;                             
3000ab10:	e0822001 	add	r2, r2, r1                                    <== NOT EXECUTED
{                                                                     
  Heap_Block *next = old_block->next;                                 
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
  new_block->prev = prev;                                             
3000ab14:	e587300c 	str	r3, [r7, #12]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
3000ab18:	e5870008 	str	r0, [r7, #8]                                  <== NOT EXECUTED
  new_block->prev = prev;                                             
                                                                      
  next->prev = new_block;                                             
3000ab1c:	e580700c 	str	r7, [r0, #12]                                 <== NOT EXECUTED
  prev->next = new_block;                                             
3000ab20:	e5837008 	str	r7, [r3, #8]                                  <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000ab24:	e0823007 	add	r3, r2, r7                                    <== NOT EXECUTED
                                                                      
      next_block = _Heap_Block_at( free_block, free_block_size );     
    }                                                                 
                                                                      
    free_block->size_and_flag = free_block_size | HEAP_PREV_BLOCK_USED;
3000ab28:	e3821001 	orr	r1, r2, #1                                    
3000ab2c:	e5871004 	str	r1, [r7, #4]                                  
                                                                      
    next_block->prev_size = free_block_size;                          
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
3000ab30:	e5931004 	ldr	r1, [r3, #4]                                  
      next_block = _Heap_Block_at( free_block, free_block_size );     
    }                                                                 
                                                                      
    free_block->size_and_flag = free_block_size | HEAP_PREV_BLOCK_USED;
                                                                      
    next_block->prev_size = free_block_size;                          
3000ab34:	e5832000 	str	r2, [r3]                                      
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
3000ab38:	e3c12001 	bic	r2, r1, #1                                    
3000ab3c:	e5832004 	str	r2, [r3, #4]                                  
3000ab40:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      
    _Heap_Protection_block_initialize( heap, free_block );            
  } else {                                                            
    next_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                
3000ab44:	e5932004 	ldr	r2, [r3, #4]                                  
3000ab48:	e3822001 	orr	r2, r2, #1                                    
3000ab4c:	e5832004 	str	r2, [r3, #4]                                  
3000ab50:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      
    if ( _Heap_Is_used( next_block ) ) {                              
      _Heap_Free_list_insert_after( free_list_anchor, free_block );   
                                                                      
      /* Statistics */                                                
      ++stats->free_blocks;                                           
3000ab54:	e5940038 	ldr	r0, [r4, #56]	; 0x38                          
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
3000ab58:	e5991008 	ldr	r1, [r9, #8]                                  
3000ab5c:	e2800001 	add	r0, r0, #1                                    
                                                                      
  new_block->next = next;                                             
3000ab60:	e5871008 	str	r1, [r7, #8]                                  
  new_block->prev = block_before;                                     
3000ab64:	e587900c 	str	r9, [r7, #12]                                 
  block_before->next = new_block;                                     
3000ab68:	e5897008 	str	r7, [r9, #8]                                  
  next->prev = new_block;                                             
3000ab6c:	e581700c 	str	r7, [r1, #12]                                 
3000ab70:	e5840038 	str	r0, [r4, #56]	; 0x38                          
3000ab74:	eaffffeb 	b	3000ab28 <_Heap_Block_split+0xbc>               
                                                                      

30010368 <_Heap_Extend>: Heap_Control *heap, void *extend_area_begin_ptr, uintptr_t extend_area_size, uintptr_t *extended_size_ptr ) {
30010368:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
3001036c:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  uintptr_t const free_size = stats->free_size;                       
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
30010370:	e0916002 	adds	r6, r1, r2                                   <== NOT EXECUTED
  Heap_Control *heap,                                                 
  void *extend_area_begin_ptr,                                        
  uintptr_t extend_area_size,                                         
  uintptr_t *extended_size_ptr                                        
)                                                                     
{                                                                     
30010374:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  Heap_Statistics *const stats = &heap->stats;                        
  Heap_Block *const first_block = heap->first_block;                  
30010378:	e5908020 	ldr	r8, [r0, #32]                                 <== NOT EXECUTED
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
  uintptr_t const extend_area_begin = (uintptr_t) extend_area_begin_ptr;
  uintptr_t const extend_area_end = extend_area_begin + extend_area_size;
  uintptr_t const free_size = stats->free_size;                       
3001037c:	e5951030 	ldr	r1, [r5, #48]	; 0x30                          <== NOT EXECUTED
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
30010380:	e5900010 	ldr	r0, [r0, #16]                                 <== NOT EXECUTED
  Heap_Control *heap,                                                 
  void *extend_area_begin_ptr,                                        
  uintptr_t extend_area_size,                                         
  uintptr_t *extended_size_ptr                                        
)                                                                     
{                                                                     
30010384:	e24dd024 	sub	sp, sp, #36	; 0x24                            <== NOT EXECUTED
  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;                              
30010388:	e3a07000 	mov	r7, #0                                        <== NOT EXECUTED
  Heap_Control *heap,                                                 
  void *extend_area_begin_ptr,                                        
  uintptr_t extend_area_size,                                         
  uintptr_t *extended_size_ptr                                        
)                                                                     
{                                                                     
3001038c:	e58d3010 	str	r3, [sp, #16]                                 <== NOT EXECUTED
  Heap_Block *merge_above_block = NULL;                               
  Heap_Block *link_below_block = NULL;                                
  Heap_Block *link_above_block = NULL;                                
  Heap_Block *extend_first_block = NULL;                              
  Heap_Block *extend_last_block = NULL;                               
  uintptr_t const page_size = heap->page_size;                        
30010390:	e58d0008 	str	r0, [sp, #8]                                  <== NOT EXECUTED
  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;                              
30010394:	e58d7020 	str	r7, [sp, #32]                                 <== NOT EXECUTED
  Heap_Block *extend_last_block = NULL;                               
30010398:	e58d701c 	str	r7, [sp, #28]                                 <== NOT EXECUTED
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
3001039c:	e5953014 	ldr	r3, [r5, #20]                                 <== NOT EXECUTED
  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;                       
300103a0:	e58d1018 	str	r1, [sp, #24]                                 <== NOT EXECUTED
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
    return false;                                                     
300103a4:	21a00007 	movcs	r0, r7                                      <== NOT EXECUTED
  uintptr_t const free_size = stats->free_size;                       
  uintptr_t extend_first_block_size = 0;                              
  uintptr_t extended_size = 0;                                        
  bool extend_area_ok = false;                                        
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
300103a8:	3a000001 	bcc	300103b4 <_Heap_Extend+0x4c>                  <== NOT EXECUTED
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
300103ac:	e28dd024 	add	sp, sp, #36	; 0x24                            <== NOT EXECUTED
300103b0:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      
  if ( extend_area_end < extend_area_begin ) {                        
    return false;                                                     
  }                                                                   
                                                                      
  extend_area_ok = _Heap_Get_first_and_last_block(                    
300103b4:	e28dc020 	add	ip, sp, #32                                   <== NOT EXECUTED
300103b8:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
300103bc:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
300103c0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300103c4:	e28dc01c 	add	ip, sp, #28                                   <== NOT EXECUTED
300103c8:	e59d2008 	ldr	r2, [sp, #8]                                  <== NOT EXECUTED
300103cc:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
300103d0:	ebffeabf 	bl	3000aed4 <_Heap_Get_first_and_last_block>      <== NOT EXECUTED
    page_size,                                                        
    min_block_size,                                                   
    &extend_first_block,                                              
    &extend_last_block                                                
  );                                                                  
  if (!extend_area_ok ) {                                             
300103d4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
300103d8:	0afffff3 	beq	300103ac <_Heap_Extend+0x44>                  <== NOT EXECUTED
300103dc:	e1a09008 	mov	r9, r8                                        <== NOT EXECUTED
300103e0:	e1a0b007 	mov	fp, r7                                        <== NOT EXECUTED
300103e4:	e58d700c 	str	r7, [sp, #12]                                 <== NOT EXECUTED
300103e8:	e58d7014 	str	r7, [sp, #20]                                 <== NOT EXECUTED
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
300103ec:	e1590008 	cmp	r9, r8                                        <== NOT EXECUTED
300103f0:	05953018 	ldreq	r3, [r5, #24]                               <== NOT EXECUTED
    uintptr_t const sub_area_end = start_block->prev_size;            
300103f4:	e599a000 	ldr	sl, [r9]                                      <== NOT EXECUTED
    return false;                                                     
  }                                                                   
                                                                      
  do {                                                                
    uintptr_t const sub_area_begin = (start_block != first_block) ?   
      (uintptr_t) start_block : heap->area_begin;                     
300103f8:	11a03009 	movne	r3, r9                                      <== NOT EXECUTED
    uintptr_t const sub_area_end = start_block->prev_size;            
    Heap_Block *const end_block =                                     
      _Heap_Block_of_alloc_area( sub_area_end, page_size );           
                                                                      
    if (                                                              
300103fc:	e1530006 	cmp	r3, r6                                        <== NOT EXECUTED
30010400:	3154000a 	cmpcc	r4, sl                                      <== NOT EXECUTED
30010404:	3a00006c 	bcc	300105bc <_Heap_Extend+0x254>                 <== NOT EXECUTED
      sub_area_end > extend_area_begin && extend_area_end > sub_area_begin
    ) {                                                               
      return false;                                                   
    }                                                                 
                                                                      
    if ( extend_area_end == sub_area_begin ) {                        
30010408:	e1530006 	cmp	r3, r6                                        <== NOT EXECUTED
3001040c:	058d9014 	streq	r9, [sp, #20]                               <== NOT EXECUTED
30010410:	0a000001 	beq	3001041c <_Heap_Extend+0xb4>                  <== NOT EXECUTED
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
30010414:	e156000a 	cmp	r6, sl                                        <== NOT EXECUTED
30010418:	31a0b009 	movcc	fp, r9                                      <== NOT EXECUTED
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
3001041c:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
30010420:	e59d1008 	ldr	r1, [sp, #8]                                  <== NOT EXECUTED
30010424:	eb00166f 	bl	30015de8 <__umodsi3>                           <== NOT EXECUTED
30010428:	e24a3008 	sub	r3, sl, #8                                    <== NOT EXECUTED
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
3001042c:	e15a0004 	cmp	sl, r4                                        <== NOT EXECUTED
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
30010430:	e0603003 	rsb	r3, r0, r3                                    <== NOT EXECUTED
      start_block->prev_size = extend_area_end;                       
30010434:	05896000 	streq	r6, [r9]                                    <== NOT EXECUTED
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 )   
30010438:	058d300c 	streq	r3, [sp, #12]                               <== NOT EXECUTED
      merge_below_block = start_block;                                
    } else if ( extend_area_end < sub_area_end ) {                    
      link_below_block = start_block;                                 
    }                                                                 
                                                                      
    if ( sub_area_end == extend_area_begin ) {                        
3001043c:	0a000001 	beq	30010448 <_Heap_Extend+0xe0>                  <== NOT EXECUTED
30010440:	e154000a 	cmp	r4, sl                                        <== NOT EXECUTED
30010444:	81a07003 	movhi	r7, r3                                      <== NOT EXECUTED
    - 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;                
30010448:	e5939004 	ldr	r9, [r3, #4]                                  <== NOT EXECUTED
3001044c:	e3c99001 	bic	r9, r9, #1                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
30010450:	e0839009 	add	r9, r3, r9                                    <== NOT EXECUTED
    } 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 );                             
30010454:	e1580009 	cmp	r8, r9                                        <== NOT EXECUTED
30010458:	1affffe3 	bne	300103ec <_Heap_Extend+0x84>                  <== NOT EXECUTED
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
3001045c:	e5953018 	ldr	r3, [r5, #24]                                 <== NOT EXECUTED
30010460:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
    heap->area_begin = extend_area_begin;                             
30010464:	35854018 	strcc	r4, [r5, #24]                               <== NOT EXECUTED
    }                                                                 
                                                                      
    start_block = _Heap_Block_at( end_block, _Heap_Block_size( end_block ) );
  } while ( start_block != first_block );                             
                                                                      
  if ( extend_area_begin < heap->area_begin ) {                       
30010468:	3a000002 	bcc	30010478 <_Heap_Extend+0x110>                 <== NOT EXECUTED
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
3001046c:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
30010470:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
    heap->area_end = extend_area_end;                                 
30010474:	8585601c 	strhi	r6, [r5, #28]                               <== NOT EXECUTED
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
30010478:	e59d3020 	ldr	r3, [sp, #32]                                 <== NOT EXECUTED
3001047c:	e59d201c 	ldr	r2, [sp, #28]                                 <== NOT EXECUTED
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  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 ) {
30010480:	e595c020 	ldr	ip, [r5, #32]                                 <== NOT EXECUTED
    heap->area_begin = extend_area_begin;                             
  } else if ( heap->area_end < extend_area_end ) {                    
    heap->area_end = extend_area_end;                                 
  }                                                                   
                                                                      
  extend_first_block_size =                                           
30010484:	e0631002 	rsb	r1, r3, r2                                    <== NOT EXECUTED
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
30010488:	e3810001 	orr	r0, r1, #1                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
3001048c:	e5836000 	str	r6, [r3]                                      <== NOT EXECUTED
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  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 ) {
30010490:	e15c0003 	cmp	ip, r3                                        <== NOT EXECUTED
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
30010494:	e5821000 	str	r1, [r2]                                      <== NOT EXECUTED
  extend_last_block->size_and_flag = 0;                               
30010498:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
                                                                      
  extend_first_block_size =                                           
    (uintptr_t) extend_last_block - (uintptr_t) extend_first_block;   
                                                                      
  extend_first_block->prev_size = extend_area_end;                    
  extend_first_block->size_and_flag =                                 
3001049c:	e5830004 	str	r0, [r3, #4]                                  <== NOT EXECUTED
    extend_first_block_size | HEAP_PREV_BLOCK_USED;                   
  _Heap_Protection_block_initialize( heap, extend_first_block );      
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  extend_last_block->size_and_flag = 0;                               
300104a0:	e5821004 	str	r1, [r2, #4]                                  <== NOT EXECUTED
  _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;                           
300104a4:	85853020 	strhi	r3, [r5, #32]                               <== NOT EXECUTED
                                                                      
  extend_last_block->prev_size = extend_first_block_size;             
  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 ) {
300104a8:	8a000002 	bhi	300104b8 <_Heap_Extend+0x150>                 <== NOT EXECUTED
    heap->first_block = extend_first_block;                           
  } else if ( (uintptr_t) extend_last_block > (uintptr_t) heap->last_block ) {
300104ac:	e5953024 	ldr	r3, [r5, #36]	; 0x24                          <== NOT EXECUTED
300104b0:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
    heap->last_block = extend_last_block;                             
300104b4:	35852024 	strcc	r2, [r5, #36]	; 0x24                        <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( merge_below_block != NULL ) {                                  
300104b8:	e59d3014 	ldr	r3, [sp, #20]                                 <== NOT EXECUTED
300104bc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
300104c0:	0a000050 	beq	30010608 <_Heap_Extend+0x2a0>                 <== NOT EXECUTED
  Heap_Control *heap,                                                 
  uintptr_t extend_area_begin,                                        
  Heap_Block *first_block                                             
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
300104c4:	e5958010 	ldr	r8, [r5, #16]                                 <== NOT EXECUTED
  uintptr_t const new_first_block_alloc_begin =                       
    _Heap_Align_up( extend_area_begin + HEAP_BLOCK_HEADER_SIZE, page_size );
300104c8:	e2844008 	add	r4, r4, #8                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_up(                        
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  uintptr_t remainder = value % alignment;                            
300104cc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300104d0:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
300104d4:	eb001643 	bl	30015de8 <__umodsi3>                           <== NOT EXECUTED
                                                                      
  if ( remainder != 0 ) {                                             
300104d8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return value - remainder + alignment;                             
300104dc:	10844008 	addne	r4, r4, r8                                  <== NOT EXECUTED
300104e0:	10604004 	rsbne	r4, r0, r4                                  <== NOT EXECUTED
  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;                
300104e4:	e59dc014 	ldr	ip, [sp, #20]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  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 =                             
300104e8:	e2441008 	sub	r1, r4, #8                                    <== NOT EXECUTED
  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;                
300104ec:	e59c2000 	ldr	r2, [ip]                                      <== NOT EXECUTED
  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 =                              
300104f0:	e061300c 	rsb	r3, r1, ip                                    <== NOT EXECUTED
    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;
300104f4:	e3833001 	orr	r3, r3, #1                                    <== NOT EXECUTED
  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;                
300104f8:	e5042008 	str	r2, [r4, #-8]                                 <== NOT EXECUTED
  new_first_block->size_and_flag = new_first_block_size | HEAP_PREV_BLOCK_USED;
300104fc:	e5813004 	str	r3, [r1, #4]                                  <== NOT EXECUTED
                                                                      
  _Heap_Free_block( heap, new_first_block );                          
30010500:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30010504:	ebffff8f 	bl	30010348 <_Heap_Free_block>                    <== NOT EXECUTED
      link_below_block,                                               
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
30010508:	e59d000c 	ldr	r0, [sp, #12]                                 <== NOT EXECUTED
3001050c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30010510:	0a00002b 	beq	300105c4 <_Heap_Extend+0x25c>                 <== NOT EXECUTED
)                                                                     
{                                                                     
  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,      
30010514:	e2466008 	sub	r6, r6, #8                                    <== NOT EXECUTED
  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(             
30010518:	e0606006 	rsb	r6, r0, r6                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
3001051c:	e5951010 	ldr	r1, [r5, #16]                                 <== NOT EXECUTED
30010520:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30010524:	eb00162f 	bl	30015de8 <__umodsi3>                           <== NOT EXECUTED
  );                                                                  
  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)                 
30010528:	e59d100c 	ldr	r1, [sp, #12]                                 <== NOT EXECUTED
3001052c:	e0606006 	rsb	r6, r0, r6                                    <== NOT EXECUTED
30010530:	e5913004 	ldr	r3, [r1, #4]                                  <== NOT EXECUTED
    page_size                                                         
  );                                                                  
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
30010534:	e0862001 	add	r2, r6, r1                                    <== NOT EXECUTED
    (last_block->size_and_flag - last_block_new_size)                 
30010538:	e0663003 	rsb	r3, r6, r3                                    <== NOT EXECUTED
      | HEAP_PREV_BLOCK_USED;                                         
3001053c:	e3833001 	orr	r3, r3, #1                                    <== NOT EXECUTED
    page_size                                                         
  );                                                                  
  Heap_Block *const new_last_block =                                  
    _Heap_Block_at( last_block, last_block_new_size );                
                                                                      
  new_last_block->size_and_flag =                                     
30010540:	e5823004 	str	r3, [r2, #4]                                  <== NOT EXECUTED
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;       
30010544:	e5913004 	ldr	r3, [r1, #4]                                  <== NOT EXECUTED
    (last_block->size_and_flag - last_block_new_size)                 
      | HEAP_PREV_BLOCK_USED;                                         
                                                                      
  _Heap_Block_set_size( last_block, last_block_new_size );            
                                                                      
  _Heap_Free_block( heap, last_block );                               
30010548:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3001054c:	e2033001 	and	r3, r3, #1                                    <== NOT EXECUTED
                                                                      
  block->size_and_flag = size | flag;                                 
30010550:	e1866003 	orr	r6, r6, r3                                    <== NOT EXECUTED
30010554:	e5816004 	str	r6, [r1, #4]                                  <== NOT EXECUTED
30010558:	ebffff7a 	bl	30010348 <_Heap_Free_block>                    <== NOT EXECUTED
      extend_first_block,                                             
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
3001055c:	e59d200c 	ldr	r2, [sp, #12]                                 <== NOT EXECUTED
30010560:	e59d3014 	ldr	r3, [sp, #20]                                 <== NOT EXECUTED
30010564:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30010568:	03530000 	cmpeq	r3, #0                                      <== NOT EXECUTED
3001056c:	0a000021 	beq	300105f8 <_Heap_Extend+0x290>                 <== NOT EXECUTED
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
}                                                                     
30010570:	e5953024 	ldr	r3, [r5, #36]	; 0x24                          <== NOT EXECUTED
 * 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(                                               
30010574:	e595c020 	ldr	ip, [r5, #32]                                 <== NOT EXECUTED
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;       
30010578:	e5930004 	ldr	r0, [r3, #4]                                  <== NOT EXECUTED
    _Heap_Free_block( heap, extend_first_block );                     
  }                                                                   
                                                                      
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
3001057c:	e5952030 	ldr	r2, [r5, #48]	; 0x30                          <== NOT EXECUTED
 * 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(                                               
30010580:	e063c00c 	rsb	ip, r3, ip                                    <== NOT EXECUTED
30010584:	e59d4018 	ldr	r4, [sp, #24]                                 <== NOT EXECUTED
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;       
30010588:	e2000001 	and	r0, r0, #1                                    <== NOT EXECUTED
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
3001058c:	e595102c 	ldr	r1, [r5, #44]	; 0x2c                          <== NOT EXECUTED
                                                                      
  block->size_and_flag = size | flag;                                 
30010590:	e18c0000 	orr	r0, ip, r0                                    <== NOT EXECUTED
                                                                      
  if ( extended_size_ptr != NULL )                                    
30010594:	e59dc010 	ldr	ip, [sp, #16]                                 <== NOT EXECUTED
    _Heap_Free_block( heap, extend_first_block );                     
  }                                                                   
                                                                      
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
30010598:	e0642002 	rsb	r2, r4, r2                                    <== NOT EXECUTED
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
3001059c:	e35c0000 	cmp	ip, #0                                        <== NOT EXECUTED
  _Heap_Set_last_block_size( heap );                                  
                                                                      
  extended_size = stats->free_size - free_size;                       
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
300105a0:	e0811002 	add	r1, r1, r2                                    <== NOT EXECUTED
300105a4:	e5830004 	str	r0, [r3, #4]                                  <== NOT EXECUTED
300105a8:	e585102c 	str	r1, [r5, #44]	; 0x2c                          <== NOT EXECUTED
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
                                                                      
  return true;                                                        
300105ac:	13a00001 	movne	r0, #1                                      <== NOT EXECUTED
                                                                      
  /* Statistics */                                                    
  stats->size += extended_size;                                       
                                                                      
  if ( extended_size_ptr != NULL )                                    
    *extended_size_ptr = extended_size;                               
300105b0:	158c2000 	strne	r2, [ip]                                    <== NOT EXECUTED
                                                                      
  return true;                                                        
300105b4:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
300105b8:	eaffff7b 	b	300103ac <_Heap_Extend+0x44>                    <== NOT EXECUTED
      _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;                                                   
300105bc:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
300105c0:	eaffff79 	b	300103ac <_Heap_Extend+0x44>                    <== NOT EXECUTED
    );                                                                
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
300105c4:	e3570000 	cmp	r7, #0                                        <== NOT EXECUTED
300105c8:	0affffe3 	beq	3001055c <_Heap_Extend+0x1f4>                 <== NOT EXECUTED
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;       
300105cc:	e5971004 	ldr	r1, [r7, #4]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  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 );       
300105d0:	e59d2020 	ldr	r2, [sp, #32]                                 <== NOT EXECUTED
300105d4:	e2011001 	and	r1, r1, #1                                    <== NOT EXECUTED
300105d8:	e0672002 	rsb	r2, r7, r2                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( merge_above_block != NULL ) {                                  
    _Heap_Merge_above( heap, merge_above_block, extend_area_end );    
  } else if ( link_above_block != NULL ) {                            
    _Heap_Link_above(                                                 
300105dc:	e59d301c 	ldr	r3, [sp, #28]                                 <== NOT EXECUTED
                                                                      
  block->size_and_flag = size | flag;                                 
300105e0:	e1822001 	orr	r2, r2, r1                                    <== NOT EXECUTED
300105e4:	e5872004 	str	r2, [r7, #4]                                  <== NOT EXECUTED
  uintptr_t const link_begin = (uintptr_t) link;                      
  uintptr_t const first_block_begin = (uintptr_t) first_block;        
                                                                      
  _Heap_Block_set_size( link, first_block_begin - link_begin );       
                                                                      
  last_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                  
300105e8:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
300105ec:	e3822001 	orr	r2, r2, #1                                    <== NOT EXECUTED
300105f0:	e5832004 	str	r2, [r3, #4]                                  <== NOT EXECUTED
300105f4:	eaffffd8 	b	3001055c <_Heap_Extend+0x1f4>                   <== NOT EXECUTED
      extend_last_block                                               
    );                                                                
  }                                                                   
                                                                      
  if ( merge_below_block == NULL && merge_above_block == NULL ) {     
    _Heap_Free_block( heap, extend_first_block );                     
300105f8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
300105fc:	e59d1020 	ldr	r1, [sp, #32]                                 <== NOT EXECUTED
30010600:	ebffff50 	bl	30010348 <_Heap_Free_block>                    <== NOT EXECUTED
30010604:	eaffffd9 	b	30010570 <_Heap_Extend+0x208>                   <== NOT EXECUTED
    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 ) {                            
30010608:	e35b0000 	cmp	fp, #0                                        <== NOT EXECUTED
{                                                                     
  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;           
3001060c:	1062b00b 	rsbne	fp, r2, fp                                  <== NOT EXECUTED
30010610:	138bb001 	orrne	fp, fp, #1                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  uintptr_t const last_block_begin = (uintptr_t) last_block;          
  uintptr_t const link_begin = (uintptr_t) link;                      
                                                                      
  last_block->size_and_flag =                                         
30010614:	1582b004 	strne	fp, [r2, #4]                                <== NOT EXECUTED
30010618:	eaffffba 	b	30010508 <_Heap_Extend+0x1a0>                   <== NOT EXECUTED
                                                                      

30010024 <_Heap_Free>: /* * 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 ) {
30010024:	e2513000 	subs	r3, r1, #0                                   
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
{                                                                     
30010028:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
3001002c:	e1a04000 	mov	r4, r0                                        
   * 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;                                                      
30010030:	03a00001 	moveq	r0, #1                                      
  /*                                                                  
   * 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 ) {                                    
30010034:	08bd85f0 	popeq	{r4, r5, r6, r7, r8, sl, pc}                
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
30010038:	e1a00003 	mov	r0, r3                                        
3001003c:	e5941010 	ldr	r1, [r4, #16]                                 
30010040:	e2435008 	sub	r5, r3, #8                                    
30010044:	eb001614 	bl	3001589c <__umodsi3>                           
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           
30010048:	e5942020 	ldr	r2, [r4, #32]                                 
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
3001004c:	e0605005 	rsb	r5, r0, r5                                    
  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;             
30010050:	e1550002 	cmp	r5, r2                                        
30010054:	3a00002f 	bcc	30010118 <_Heap_Free+0xf4>                    
30010058:	e5941024 	ldr	r1, [r4, #36]	; 0x24                          
3001005c:	e1550001 	cmp	r5, r1                                        
30010060:	8a00002c 	bhi	30010118 <_Heap_Free+0xf4>                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
30010064:	e595c004 	ldr	ip, [r5, #4]                                  
    - 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;                
30010068:	e3cc6001 	bic	r6, ip, #1                                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3001006c:	e0853006 	add	r3, r5, r6                                    
  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;             
30010070:	e1520003 	cmp	r2, r3                                        
30010074:	8a000027 	bhi	30010118 <_Heap_Free+0xf4>                    
30010078:	e1510003 	cmp	r1, r3                                        
3001007c:	3a000027 	bcc	30010120 <_Heap_Free+0xfc>                    
30010080:	e5937004 	ldr	r7, [r3, #4]                                  
    return false;                                                     
  }                                                                   
                                                                      
  _Heap_Protection_block_check( heap, next_block );                   
                                                                      
  if ( !_Heap_Is_prev_used( next_block ) ) {                          
30010084:	e2170001 	ands	r0, r7, #1                                   
30010088:	08bd85f0 	popeq	{r4, r5, r6, r7, r8, sl, pc}                
    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 ));
3001008c:	e1510003 	cmp	r1, r3                                        
    - 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;                
30010090:	e3c77001 	bic	r7, r7, #1                                    
30010094:	03a08000 	moveq	r8, #0                                      
30010098:	0a000004 	beq	300100b0 <_Heap_Free+0x8c>                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
3001009c:	e0830007 	add	r0, r3, r7                                    
  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;                 
300100a0:	e5900004 	ldr	r0, [r0, #4]                                  
                                                                      
    return do_free;                                                   
  }                                                                   
#endif                                                                
                                                                      
bool _Heap_Free( Heap_Control *heap, void *alloc_begin_ptr )          
300100a4:	e3100001 	tst	r0, #1                                        
300100a8:	13a08000 	movne	r8, #0                                      
300100ac:	03a08001 	moveq	r8, #1                                      
                                                                      
  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 ) ) {                               
300100b0:	e21c0001 	ands	r0, ip, #1                                   
300100b4:	1a00001b 	bne	30010128 <_Heap_Free+0x104>                   
    uintptr_t const prev_size = block->prev_size;                     
300100b8:	e595c000 	ldr	ip, [r5]                                      
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
300100bc:	e06ca005 	rsb	sl, ip, r5                                    
  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;             
300100c0:	e152000a 	cmp	r2, sl                                        
300100c4:	88bd85f0 	pophi	{r4, r5, r6, r7, r8, sl, pc}                
300100c8:	e151000a 	cmp	r1, sl                                        
300100cc:	38bd85f0 	popcc	{r4, r5, r6, r7, r8, sl, pc}                
  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;                 
300100d0:	e59a0004 	ldr	r0, [sl, #4]                                  
      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) ) {                        
300100d4:	e2100001 	ands	r0, r0, #1                                   
300100d8:	08bd85f0 	popeq	{r4, r5, r6, r7, r8, sl, pc}                
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
300100dc:	e3580000 	cmp	r8, #0                                        
300100e0:	0a000039 	beq	300101cc <_Heap_Free+0x1a8>                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
300100e4:	e5940038 	ldr	r0, [r4, #56]	; 0x38                          
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
300100e8:	e0867007 	add	r7, r6, r7                                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
300100ec:	e5932008 	ldr	r2, [r3, #8]                                  
      _HAssert( false );                                              
      return( false );                                                
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
300100f0:	e087c00c 	add	ip, r7, ip                                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
300100f4:	e593300c 	ldr	r3, [r3, #12]                                 
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
300100f8:	e2400001 	sub	r0, r0, #1                                    
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
300100fc:	e38c1001 	orr	r1, ip, #1                                    
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
                                                                      
  prev->next = next;                                                  
30010100:	e5832008 	str	r2, [r3, #8]                                  
  next->prev = prev;                                                  
30010104:	e582300c 	str	r3, [r2, #12]                                 
    }                                                                 
                                                                      
    if ( next_is_free ) {       /* coalesce both */                   
      uintptr_t const size = block_size + prev_size + next_block_size;
      _Heap_Free_list_remove( next_block );                           
      stats->free_blocks -= 1;                                        
30010108:	e5840038 	str	r0, [r4, #56]	; 0x38                          
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
3001010c:	e58a1004 	str	r1, [sl, #4]                                  
      next_block = _Heap_Block_at( prev_block, size );                
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
30010110:	e78ac00c 	str	ip, [sl, ip]                                  
30010114:	ea00000f 	b	30010158 <_Heap_Free+0x134>                     
                                                                      
  block_size = _Heap_Block_size( block );                             
  next_block = _Heap_Block_at( block, block_size );                   
                                                                      
  if ( !_Heap_Is_block_in_heap( heap, next_block ) ) {                
    return false;                                                     
30010118:	e3a00000 	mov	r0, #0                                        
3001011c:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
30010120:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
30010124:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
      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 */                 
30010128:	e3580000 	cmp	r8, #0                                        
3001012c:	0a000014 	beq	30010184 <_Heap_Free+0x160>                   
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
30010130:	e5932008 	ldr	r2, [r3, #8]                                  
      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 */                 
    uintptr_t const size = block_size + next_block_size;              
30010134:	e0877006 	add	r7, r7, r6                                    
  --stats->used_blocks;                                               
  ++stats->frees;                                                     
  stats->free_size += block_size;                                     
                                                                      
  return( true );                                                     
}                                                                     
30010138:	e593300c 	ldr	r3, [r3, #12]                                 
      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;               
3001013c:	e3871001 	orr	r1, r7, #1                                    
)                                                                     
{                                                                     
  Heap_Block *next = old_block->next;                                 
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
30010140:	e5852008 	str	r2, [r5, #8]                                  
  new_block->prev = prev;                                             
30010144:	e585300c 	str	r3, [r5, #12]                                 
                                                                      
  next->prev = new_block;                                             
  prev->next = new_block;                                             
30010148:	e5835008 	str	r5, [r3, #8]                                  
  Heap_Block *prev = old_block->prev;                                 
                                                                      
  new_block->next = next;                                             
  new_block->prev = prev;                                             
                                                                      
  next->prev = new_block;                                             
3001014c:	e582500c 	str	r5, [r2, #12]                                 
30010150:	e5851004 	str	r1, [r5, #4]                                  
    next_block  = _Heap_Block_at( block, size );                      
    next_block->prev_size = size;                                     
30010154:	e7857007 	str	r7, [r5, r7]                                  
      stats->max_free_blocks = stats->free_blocks;                    
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
30010158:	e5942040 	ldr	r2, [r4, #64]	; 0x40                          
  ++stats->frees;                                                     
3001015c:	e5943050 	ldr	r3, [r4, #80]	; 0x50                          
  stats->free_size += block_size;                                     
30010160:	e5941030 	ldr	r1, [r4, #48]	; 0x30                          
      stats->max_free_blocks = stats->free_blocks;                    
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
30010164:	e2422001 	sub	r2, r2, #1                                    
  ++stats->frees;                                                     
30010168:	e2833001 	add	r3, r3, #1                                    
  stats->free_size += block_size;                                     
3001016c:	e0816006 	add	r6, r1, r6                                    
      stats->max_free_blocks = stats->free_blocks;                    
    }                                                                 
  }                                                                   
                                                                      
  /* Statistics */                                                    
  --stats->used_blocks;                                               
30010170:	e5842040 	str	r2, [r4, #64]	; 0x40                          
  ++stats->frees;                                                     
30010174:	e5843050 	str	r3, [r4, #80]	; 0x50                          
  stats->free_size += block_size;                                     
30010178:	e5846030 	str	r6, [r4, #48]	; 0x30                          
                                                                      
  return( true );                                                     
3001017c:	e3a00001 	mov	r0, #1                                        
30010180:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
    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;         
30010184:	e3862001 	orr	r2, r6, #1                                    
30010188:	e5852004 	str	r2, [r5, #4]                                  
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
    next_block->prev_size = block_size;                               
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
3001018c:	e5942038 	ldr	r2, [r4, #56]	; 0x38                          
    if ( stats->max_free_blocks < stats->free_blocks ) {              
30010190:	e594c03c 	ldr	ip, [r4, #60]	; 0x3c                          
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
30010194:	e5930004 	ldr	r0, [r3, #4]                                  
RTEMS_INLINE_ROUTINE void _Heap_Free_list_insert_after(               
  Heap_Block *block_before,                                           
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *next = block_before->next;                              
30010198:	e5941008 	ldr	r1, [r4, #8]                                  
    next_block->prev_size = block_size;                               
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
3001019c:	e2822001 	add	r2, r2, #1                                    
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
300101a0:	e3c00001 	bic	r0, r0, #1                                    
    next_block->prev_size = block_size;                               
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
    if ( stats->max_free_blocks < stats->free_blocks ) {              
300101a4:	e152000c 	cmp	r2, ip                                        
                                                                      
  new_block->next = next;                                             
300101a8:	e5851008 	str	r1, [r5, #8]                                  
  new_block->prev = block_before;                                     
300101ac:	e585400c 	str	r4, [r5, #12]                                 
  } else {                        /* no coalesce */                   
    /* Add 'block' to the head of the free blocks list as it tends to 
       produce less fragmentation than adding to the tail. */         
    _Heap_Free_list_insert_after( _Heap_Free_list_head( heap), block );
    block->size_and_flag = block_size | HEAP_PREV_BLOCK_USED;         
    next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;               
300101b0:	e5830004 	str	r0, [r3, #4]                                  
  block_before->next = new_block;                                     
  next->prev = new_block;                                             
300101b4:	e581500c 	str	r5, [r1, #12]                                 
    next_block->prev_size = block_size;                               
300101b8:	e7856006 	str	r6, [r5, r6]                                  
{                                                                     
  Heap_Block *next = block_before->next;                              
                                                                      
  new_block->next = next;                                             
  new_block->prev = block_before;                                     
  block_before->next = new_block;                                     
300101bc:	e5845008 	str	r5, [r4, #8]                                  
                                                                      
    /* Statistics */                                                  
    ++stats->free_blocks;                                             
300101c0:	e5842038 	str	r2, [r4, #56]	; 0x38                          
    if ( stats->max_free_blocks < stats->free_blocks ) {              
      stats->max_free_blocks = stats->free_blocks;                    
300101c4:	8584203c 	strhi	r2, [r4, #60]	; 0x3c                        
300101c8:	eaffffe2 	b	30010158 <_Heap_Free+0x134>                     
      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;                  
300101cc:	e086c00c 	add	ip, r6, ip                                    
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
300101d0:	e38c2001 	orr	r2, ip, #1                                    
300101d4:	e58a2004 	str	r2, [sl, #4]                                  
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
300101d8:	e5932004 	ldr	r2, [r3, #4]                                  
      next_block->prev_size = size;                                   
300101dc:	e785c006 	str	ip, [r5, r6]                                  
      _HAssert(!_Heap_Is_prev_used( next_block));                     
      next_block->prev_size = size;                                   
    } else {                      /* coalesce prev */                 
      uintptr_t const size = block_size + prev_size;                  
      prev_block->size_and_flag = size | HEAP_PREV_BLOCK_USED;        
      next_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED;             
300101e0:	e3c22001 	bic	r2, r2, #1                                    
300101e4:	e5832004 	str	r2, [r3, #4]                                  
300101e8:	eaffffda 	b	30010158 <_Heap_Free+0x134>                     
                                                                      

30010348 <_Heap_Free_block>: static void _Heap_Free_block( Heap_Control *heap, Heap_Block *block ) { Heap_Statistics *const stats = &heap->stats; /* Statistics */ ++stats->used_blocks;
30010348:	e590c040 	ldr	ip, [r0, #64]	; 0x40                          <== NOT EXECUTED
  --stats->frees;                                                     
3001034c:	e5902050 	ldr	r2, [r0, #80]	; 0x50                          <== NOT EXECUTED
static void _Heap_Free_block( Heap_Control *heap, Heap_Block *block ) 
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  /* Statistics */                                                    
  ++stats->used_blocks;                                               
30010350:	e28cc001 	add	ip, ip, #1                                    <== NOT EXECUTED
  --stats->frees;                                                     
30010354:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
                                                                      
  _Heap_Free( heap, (void *) _Heap_Alloc_area_of_block( block ));     
30010358:	e2811008 	add	r1, r1, #8                                    <== NOT EXECUTED
static void _Heap_Free_block( Heap_Control *heap, Heap_Block *block ) 
{                                                                     
  Heap_Statistics *const stats = &heap->stats;                        
                                                                      
  /* Statistics */                                                    
  ++stats->used_blocks;                                               
3001035c:	e580c040 	str	ip, [r0, #64]	; 0x40                          <== NOT EXECUTED
  --stats->frees;                                                     
30010360:	e5802050 	str	r2, [r0, #80]	; 0x50                          <== NOT EXECUTED
                                                                      
  _Heap_Free( heap, (void *) _Heap_Alloc_area_of_block( block ));     
30010364:	ea0000ac 	b	3001061c <_Heap_Free>                           <== NOT EXECUTED
                                                                      

30017c98 <_Heap_Resize_block>: void *alloc_begin_ptr, uintptr_t new_alloc_size, uintptr_t *old_size, uintptr_t *new_size ) {
30017c98:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
30017c9c:	e1a04000 	mov	r4, r0                                        
30017ca0:	e1a05001 	mov	r5, r1                                        
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
30017ca4:	e1a00001 	mov	r0, r1                                        
30017ca8:	e5941010 	ldr	r1, [r4, #16]                                 
30017cac:	e1a07003 	mov	r7, r3                                        
30017cb0:	e1a0a002 	mov	sl, r2                                        
30017cb4:	ebfff6f8 	bl	3001589c <__umodsi3>                           
30017cb8:	e2458008 	sub	r8, r5, #8                                    
  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;             
30017cbc:	e5943020 	ldr	r3, [r4, #32]                                 
30017cc0:	e59d601c 	ldr	r6, [sp, #28]                                 
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
30017cc4:	e0601008 	rsb	r1, r0, r8                                    
                                                                      
  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;                                                      
30017cc8:	e3a02000 	mov	r2, #0                                        
  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;             
30017ccc:	e1530001 	cmp	r3, r1                                        
30017cd0:	e5872000 	str	r2, [r7]                                      
      new_alloc_size,                                                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
30017cd4:	83a00002 	movhi	r0, #2                                      
  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;                                                      
  *new_size = 0;                                                      
30017cd8:	e5862000 	str	r2, [r6]                                      
30017cdc:	88bd85f0 	pophi	{r4, r5, r6, r7, r8, sl, pc}                
30017ce0:	e5943024 	ldr	r3, [r4, #36]	; 0x24                          
30017ce4:	e1530001 	cmp	r3, r1                                        
30017ce8:	3a000036 	bcc	30017dc8 <_Heap_Resize_block+0x130>           
    - 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;                
30017cec:	e5910004 	ldr	r0, [r1, #4]                                  
                                                                      
  uintptr_t const block_begin = (uintptr_t) block;                    
  uintptr_t block_size = _Heap_Block_size( block );                   
  uintptr_t block_end = block_begin + block_size;                     
                                                                      
  uintptr_t alloc_size = block_end - alloc_begin + HEAP_ALLOC_BONUS;  
30017cf0:	e2653004 	rsb	r3, r5, #4                                    
30017cf4:	e3c00001 	bic	r0, r0, #1                                    
{                                                                     
  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;                     
30017cf8:	e0812000 	add	r2, r1, r0                                    
30017cfc:	e592c004 	ldr	ip, [r2, #4]                                  
                                                                      
  uintptr_t alloc_size = block_end - alloc_begin + HEAP_ALLOC_BONUS;  
30017d00:	e0833002 	add	r3, r3, r2                                    
30017d04:	e3ccc001 	bic	ip, ip, #1                                    
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
30017d08:	e082800c 	add	r8, r2, ip                                    
  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;                 
30017d0c:	e5988004 	ldr	r8, [r8, #4]                                  
  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;                                             
30017d10:	e5873000 	str	r3, [r7]                                      
                                                                      
RTEMS_INLINE_ROUTINE bool _Heap_Is_free(                              
  const Heap_Block *block                                             
)                                                                     
{                                                                     
  return !_Heap_Is_used( block );                                     
30017d14:	e3180001 	tst	r8, #1                                        
30017d18:	13a07000 	movne	r7, #0                                      
30017d1c:	03a07001 	moveq	r7, #1                                      
                                                                      
  if ( next_block_is_free ) {                                         
30017d20:	e3570000 	cmp	r7, #0                                        
    block_size += next_block_size;                                    
    alloc_size += next_block_size;                                    
30017d24:	1083300c 	addne	r3, r3, ip                                  
  _HAssert( _Heap_Is_prev_used( next_block ) );                       
                                                                      
  *old_size = alloc_size;                                             
                                                                      
  if ( next_block_is_free ) {                                         
    block_size += next_block_size;                                    
30017d28:	1080000c 	addne	r0, r0, ip                                  
    alloc_size += next_block_size;                                    
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
30017d2c:	e15a0003 	cmp	sl, r3                                        
    return HEAP_RESIZE_UNSATISFIED;                                   
30017d30:	83a00001 	movhi	r0, #1                                      
  if ( next_block_is_free ) {                                         
    block_size += next_block_size;                                    
    alloc_size += next_block_size;                                    
  }                                                                   
                                                                      
  if ( new_alloc_size > alloc_size ) {                                
30017d34:	88bd85f0 	pophi	{r4, r5, r6, r7, r8, sl, pc}                
    return HEAP_RESIZE_UNSATISFIED;                                   
  }                                                                   
                                                                      
  if ( next_block_is_free ) {                                         
30017d38:	e3570000 	cmp	r7, #0                                        
30017d3c:	0a000011 	beq	30017d88 <_Heap_Resize_block+0xf0>            
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;       
30017d40:	e591e004 	ldr	lr, [r1, #4]                                  <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
30017d44:	e0803001 	add	r3, r0, r1                                    <== NOT EXECUTED
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;       
30017d48:	e20ee001 	and	lr, lr, #1                                    <== NOT EXECUTED
                                                                      
  block->size_and_flag = size | flag;                                 
30017d4c:	e180000e 	orr	r0, r0, lr                                    <== NOT EXECUTED
30017d50:	e5810004 	str	r0, [r1, #4]                                  <== NOT EXECUTED
                                                                      
    next_block = _Heap_Block_at( block, block_size );                 
    next_block->size_and_flag |= HEAP_PREV_BLOCK_USED;                
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
30017d54:	e594e038 	ldr	lr, [r4, #56]	; 0x38                          <== NOT EXECUTED
    stats->free_size -= next_block_size;                              
30017d58:	e5948030 	ldr	r8, [r4, #48]	; 0x30                          <== NOT EXECUTED
    _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;                
30017d5c:	e5937004 	ldr	r7, [r3, #4]                                  <== NOT EXECUTED
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
}                                                                     
30017d60:	e5920008 	ldr	r0, [r2, #8]                                  <== NOT EXECUTED
30017d64:	e592200c 	ldr	r2, [r2, #12]                                 <== NOT EXECUTED
    _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;                
30017d68:	e3877001 	orr	r7, r7, #1                                    <== NOT EXECUTED
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
30017d6c:	e24ee001 	sub	lr, lr, #1                                    <== NOT EXECUTED
    stats->free_size -= next_block_size;                              
30017d70:	e06cc008 	rsb	ip, ip, r8                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Heap_Free_list_remove( Heap_Block *block ) 
{                                                                     
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
                                                                      
  prev->next = next;                                                  
30017d74:	e5820008 	str	r0, [r2, #8]                                  <== NOT EXECUTED
  next->prev = prev;                                                  
30017d78:	e580200c 	str	r2, [r0, #12]                                 <== NOT EXECUTED
    _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;                
30017d7c:	e5837004 	str	r7, [r3, #4]                                  <== NOT EXECUTED
                                                                      
    /* Statistics */                                                  
    --stats->free_blocks;                                             
30017d80:	e584e038 	str	lr, [r4, #56]	; 0x38                          <== NOT EXECUTED
    stats->free_size -= next_block_size;                              
30017d84:	e584c030 	str	ip, [r4, #48]	; 0x30                          <== NOT EXECUTED
  }                                                                   
                                                                      
  block = _Heap_Block_allocate( heap, block, alloc_begin, new_alloc_size );
30017d88:	e1a02005 	mov	r2, r5                                        
30017d8c:	e1a0300a 	mov	r3, sl                                        
30017d90:	e1a00004 	mov	r0, r4                                        
30017d94:	ebffcbe4 	bl	3000ad2c <_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;                
30017d98:	e5902004 	ldr	r2, [r0, #4]                                  
30017d9c:	e1a03000 	mov	r3, r0                                        
30017da0:	e3c22001 	bic	r2, r2, #1                                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
30017da4:	e2822004 	add	r2, r2, #4                                    
                                                                      
  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;
30017da8:	e0655002 	rsb	r5, r5, r2                                    
30017dac:	e0833005 	add	r3, r3, r5                                    
30017db0:	e5863000 	str	r3, [r6]                                      
                                                                      
  /* Statistics */                                                    
  ++stats->resizes;                                                   
30017db4:	e5943054 	ldr	r3, [r4, #84]	; 0x54                          
                                                                      
  return HEAP_RESIZE_SUCCESSFUL;                                      
30017db8:	e3a00000 	mov	r0, #0                                        
  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;
                                                                      
  /* Statistics */                                                    
  ++stats->resizes;                                                   
30017dbc:	e2833001 	add	r3, r3, #1                                    
30017dc0:	e5843054 	str	r3, [r4, #84]	; 0x54                          
30017dc4:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
      new_alloc_size,                                                 
      old_size,                                                       
      new_size                                                        
    );                                                                
  }                                                                   
  return HEAP_RESIZE_FATAL_ERROR;                                     
30017dc8:	e3a00002 	mov	r0, #2                                        <== NOT EXECUTED
}                                                                     
30017dcc:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
                                                                      

30017dd0 <_Heap_Size_of_alloc_area>: bool _Heap_Size_of_alloc_area( Heap_Control *heap, void *alloc_begin_ptr, uintptr_t *alloc_size ) {
30017dd0:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
30017dd4:	e1a04000 	mov	r4, r0                                        
30017dd8:	e1a05001 	mov	r5, r1                                        
RTEMS_INLINE_ROUTINE uintptr_t _Heap_Align_down(                      
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return value - (value % alignment);                                 
30017ddc:	e1a00001 	mov	r0, r1                                        
30017de0:	e5941010 	ldr	r1, [r4, #16]                                 
30017de4:	e1a07002 	mov	r7, r2                                        
30017de8:	ebfff6ab 	bl	3001589c <__umodsi3>                           
30017dec:	e2456008 	sub	r6, r5, #8                                    
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           
30017df0:	e5943020 	ldr	r3, [r4, #32]                                 
  uintptr_t alloc_begin,                                              
  uintptr_t page_size                                                 
)                                                                     
{                                                                     
  return (Heap_Block *) (_Heap_Align_down( alloc_begin, page_size )   
    - HEAP_BLOCK_HEADER_SIZE);                                        
30017df4:	e0600006 	rsb	r0, r0, r6                                    
  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;             
30017df8:	e1500003 	cmp	r0, r3                                        
30017dfc:	3a000010 	bcc	30017e44 <_Heap_Size_of_alloc_area+0x74>      
30017e00:	e5942024 	ldr	r2, [r4, #36]	; 0x24                          
30017e04:	e1500002 	cmp	r0, r2                                        
30017e08:	8a00000d 	bhi	30017e44 <_Heap_Size_of_alloc_area+0x74>      
    - 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;                
30017e0c:	e5906004 	ldr	r6, [r0, #4]                                  
30017e10:	e3c66001 	bic	r6, r6, #1                                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
30017e14:	e0806006 	add	r6, r0, r6                                    
  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;             
30017e18:	e1530006 	cmp	r3, r6                                        
30017e1c:	8a000008 	bhi	30017e44 <_Heap_Size_of_alloc_area+0x74>      
30017e20:	e1520006 	cmp	r2, r6                                        
30017e24:	3a000008 	bcc	30017e4c <_Heap_Size_of_alloc_area+0x7c>      
  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;                 
30017e28:	e5960004 	ldr	r0, [r6, #4]                                  
  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 )                            
30017e2c:	e2100001 	ands	r0, r0, #1                                   
  ) {                                                                 
    return false;                                                     
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
30017e30:	12655004 	rsbne	r5, r5, #4                                  
30017e34:	10856006 	addne	r6, r5, r6                                  
30017e38:	15876000 	strne	r6, [r7]                                    
                                                                      
  return true;                                                        
30017e3c:	13a00001 	movne	r0, #1                                      
30017e40:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
  if (                                                                
    !_Heap_Is_block_in_heap( heap, next_block )                       
      || !_Heap_Is_prev_used( next_block )                            
  ) {                                                                 
    return false;                                                     
30017e44:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30017e48:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
30017e4c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  *alloc_size = (uintptr_t) next_block + HEAP_ALLOC_BONUS - alloc_begin;
                                                                      
  return true;                                                        
}                                                                     
30017e50:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000bac4 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *heap, int source, bool dump ) {
3000bac4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
  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;                      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
3000bac8:	e59f35d8 	ldr	r3, [pc, #1496]	; 3000c0a8 <_Heap_Walk+0x5e4> <== NOT EXECUTED
  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;                      
3000bacc:	e31200ff 	tst	r2, #255	; 0xff                               <== NOT EXECUTED
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
3000bad0:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
  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;                      
3000bad4:	e59f25d0 	ldr	r2, [pc, #1488]	; 3000c0ac <_Heap_Walk+0x5e8> <== NOT EXECUTED
3000bad8:	e59f95d0 	ldr	r9, [pc, #1488]	; 3000c0b0 <_Heap_Walk+0x5ec> <== NOT EXECUTED
bool _Heap_Walk(                                                      
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
3000badc:	e1a0a001 	mov	sl, r1                                        <== NOT EXECUTED
  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;                      
3000bae0:	11a09002 	movne	r9, r2                                      <== NOT EXECUTED
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
3000bae4:	e5901010 	ldr	r1, [r0, #16]                                 <== NOT EXECUTED
  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;                      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
3000bae8:	e3530003 	cmp	r3, #3                                        <== NOT EXECUTED
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
  uintptr_t const min_block_size = heap->min_block_size;              
3000baec:	e5902014 	ldr	r2, [r0, #20]                                 <== NOT EXECUTED
  Heap_Block *const first_block = heap->first_block;                  
  Heap_Block *const last_block = heap->last_block;                    
3000baf0:	e5903024 	ldr	r3, [r0, #36]	; 0x24                          <== NOT EXECUTED
bool _Heap_Walk(                                                      
  Heap_Control *heap,                                                 
  int source,                                                         
  bool dump                                                           
)                                                                     
{                                                                     
3000baf4:	e24dd038 	sub	sp, sp, #56	; 0x38                            <== NOT EXECUTED
3000baf8:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  uintptr_t const page_size = heap->page_size;                        
3000bafc:	e58d1024 	str	r1, [sp, #36]	; 0x24                          <== NOT EXECUTED
  uintptr_t const min_block_size = heap->min_block_size;              
3000bb00:	e58d2028 	str	r2, [sp, #40]	; 0x28                          <== NOT EXECUTED
  Heap_Block *const first_block = heap->first_block;                  
3000bb04:	e5908020 	ldr	r8, [r0, #32]                                 <== NOT EXECUTED
  Heap_Block *const last_block = heap->last_block;                    
3000bb08:	e58d302c 	str	r3, [sp, #44]	; 0x2c                          <== NOT EXECUTED
  Heap_Block *block = first_block;                                    
  Heap_Walk_printer printer = dump ?                                  
    _Heap_Walk_print : _Heap_Walk_print_nothing;                      
                                                                      
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
3000bb0c:	0a000002 	beq	3000bb1c <_Heap_Walk+0x58>                    <== NOT EXECUTED
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
3000bb10:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
}                                                                     
3000bb14:	e28dd038 	add	sp, sp, #56	; 0x38                            <== NOT EXECUTED
3000bb18:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
  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)(                                                         
3000bb1c:	e594101c 	ldr	r1, [r4, #28]                                 <== NOT EXECUTED
3000bb20:	e5900018 	ldr	r0, [r0, #24]                                 <== NOT EXECUTED
3000bb24:	e5942008 	ldr	r2, [r4, #8]                                  <== NOT EXECUTED
3000bb28:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
3000bb2c:	e59dc028 	ldr	ip, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000bb30:	e58d1008 	str	r1, [sp, #8]                                  <== NOT EXECUTED
3000bb34:	e59d102c 	ldr	r1, [sp, #44]	; 0x2c                          <== NOT EXECUTED
3000bb38:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
3000bb3c:	e58d1010 	str	r1, [sp, #16]                                 <== NOT EXECUTED
3000bb40:	e58d2014 	str	r2, [sp, #20]                                 <== NOT EXECUTED
3000bb44:	e58d3018 	str	r3, [sp, #24]                                 <== NOT EXECUTED
3000bb48:	e59f2564 	ldr	r2, [pc, #1380]	; 3000c0b4 <_Heap_Walk+0x5f0> <== NOT EXECUTED
3000bb4c:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000bb50:	e58d800c 	str	r8, [sp, #12]                                 <== NOT EXECUTED
3000bb54:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bb58:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000bb5c:	e59d3024 	ldr	r3, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bb60:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bb64:	e12fff19 	bx	r9                                             <== NOT EXECUTED
    heap->area_begin, heap->area_end,                                 
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
3000bb68:	e59d2024 	ldr	r2, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bb6c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000bb70:	0a000026 	beq	3000bc10 <_Heap_Walk+0x14c>                   <== NOT EXECUTED
    (*printer)( source, true, "page size is zero\n" );                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
3000bb74:	e59d3024 	ldr	r3, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bb78:	e2135007 	ands	r5, r3, #7                                   <== NOT EXECUTED
3000bb7c:	1a00002a 	bne	3000bc2c <_Heap_Walk+0x168>                   <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
3000bb80:	e59d0028 	ldr	r0, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000bb84:	e59d1024 	ldr	r1, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bb88:	ebffe54c 	bl	300050c0 <__umodsi3>                           <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
3000bb8c:	e250b000 	subs	fp, r0, #0                                   <== NOT EXECUTED
3000bb90:	1a00002c 	bne	3000bc48 <_Heap_Walk+0x184>                   <== NOT EXECUTED
3000bb94:	e2880008 	add	r0, r8, #8                                    <== NOT EXECUTED
3000bb98:	e59d1024 	ldr	r1, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bb9c:	ebffe547 	bl	300050c0 <__umodsi3>                           <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
3000bba0:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000bba4:	1a00002f 	bne	3000bc68 <_Heap_Walk+0x1a4>                   <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bba8:	e598b004 	ldr	fp, [r8, #4]                                  <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
3000bbac:	e21b5001 	ands	r5, fp, #1                                   <== NOT EXECUTED
3000bbb0:	0a000103 	beq	3000bfc4 <_Heap_Walk+0x500>                   <== NOT EXECUTED
    - 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;                
3000bbb4:	e59dc02c 	ldr	ip, [sp, #44]	; 0x2c                          <== NOT EXECUTED
3000bbb8:	e59c3004 	ldr	r3, [ip, #4]                                  <== NOT EXECUTED
3000bbbc:	e3c33001 	bic	r3, r3, #1                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000bbc0:	e08c3003 	add	r3, ip, r3                                    <== NOT EXECUTED
  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;                 
3000bbc4:	e5935004 	ldr	r5, [r3, #4]                                  <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
3000bbc8:	e2155001 	ands	r5, r5, #1                                   <== NOT EXECUTED
3000bbcc:	0a000008 	beq	3000bbf4 <_Heap_Walk+0x130>                   <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if (                                                                
3000bbd0:	e1580003 	cmp	r8, r3                                        <== NOT EXECUTED
3000bbd4:	0a00002b 	beq	3000bc88 <_Heap_Walk+0x1c4>                   <== NOT EXECUTED
    _Heap_Block_at( last_block, _Heap_Block_size( last_block ) ) != first_block
  ) {                                                                 
    (*printer)(                                                       
3000bbd8:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bbdc:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bbe0:	e59f24d0 	ldr	r2, [pc, #1232]	; 3000c0b8 <_Heap_Walk+0x5f4> <== NOT EXECUTED
3000bbe4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bbe8:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bbec:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000bbf0:	eaffffc7 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( _Heap_Is_free( last_block ) ) {                                
    (*printer)(                                                       
3000bbf4:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bbf8:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bbfc:	e59f24b8 	ldr	r2, [pc, #1208]	; 3000c0bc <_Heap_Walk+0x5f8> <== NOT EXECUTED
3000bc00:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bc04:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bc08:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000bc0c:	eaffffc0 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
    first_block, last_block,                                          
    first_free_block, last_free_block                                 
  );                                                                  
                                                                      
  if ( page_size == 0 ) {                                             
    (*printer)( source, true, "page size is zero\n" );                
3000bc10:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bc14:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bc18:	e59f24a0 	ldr	r2, [pc, #1184]	; 3000c0c0 <_Heap_Walk+0x5fc> <== NOT EXECUTED
3000bc1c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bc20:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bc24:	e59d0024 	ldr	r0, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bc28:	eaffffb9 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Addresses_Is_aligned( (void *) page_size ) ) {               
    (*printer)(                                                       
3000bc2c:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bc30:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bc34:	e59f2488 	ldr	r2, [pc, #1160]	; 3000c0c4 <_Heap_Walk+0x600> <== NOT EXECUTED
3000bc38:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bc3c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bc40:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bc44:	eaffffb2 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_aligned( min_block_size, page_size ) ) {             
    (*printer)(                                                       
3000bc48:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bc4c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bc50:	e59f2470 	ldr	r2, [pc, #1136]	; 3000c0c8 <_Heap_Walk+0x604> <== NOT EXECUTED
3000bc54:	e59d3028 	ldr	r3, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000bc58:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bc5c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bc60:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000bc64:	eaffffaa 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
  }                                                                   
                                                                      
  if (                                                                
    !_Heap_Is_aligned( _Heap_Alloc_area_of_block( first_block ), page_size )
  ) {                                                                 
    (*printer)(                                                       
3000bc68:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bc6c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bc70:	e59f2454 	ldr	r2, [pc, #1108]	; 3000c0cc <_Heap_Walk+0x608> <== NOT EXECUTED
3000bc74:	e1a03008 	mov	r3, r8                                        <== NOT EXECUTED
3000bc78:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bc7c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bc80:	e1a0000b 	mov	r0, fp                                        <== NOT EXECUTED
3000bc84:	eaffffa2 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bc88:	e5946008 	ldr	r6, [r4, #8]                                  <== NOT EXECUTED
  int source,                                                         
  Heap_Walk_printer printer,                                          
  Heap_Control *heap                                                  
)                                                                     
{                                                                     
  uintptr_t const page_size = heap->page_size;                        
3000bc8c:	e5947010 	ldr	r7, [r4, #16]                                 <== NOT EXECUTED
  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 ) {                            
3000bc90:	e1540006 	cmp	r4, r6                                        <== NOT EXECUTED
3000bc94:	05943020 	ldreq	r3, [r4, #32]                               <== NOT EXECUTED
3000bc98:	0a00002c 	beq	3000bd50 <_Heap_Walk+0x28c>                   <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bc9c:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
  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;             
3000bca0:	e1530006 	cmp	r3, r6                                        <== NOT EXECUTED
3000bca4:	8a0000cd 	bhi	3000bfe0 <_Heap_Walk+0x51c>                   <== NOT EXECUTED
3000bca8:	e594c024 	ldr	ip, [r4, #36]	; 0x24                          <== NOT EXECUTED
3000bcac:	e15c0006 	cmp	ip, r6                                        <== NOT EXECUTED
3000bcb0:	3a0000ca 	bcc	3000bfe0 <_Heap_Walk+0x51c>                   <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
3000bcb4:	e2860008 	add	r0, r6, #8                                    <== NOT EXECUTED
3000bcb8:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000bcbc:	e58d3020 	str	r3, [sp, #32]                                 <== NOT EXECUTED
3000bcc0:	e58dc01c 	str	ip, [sp, #28]                                 <== NOT EXECUTED
3000bcc4:	ebffe4fd 	bl	300050c0 <__umodsi3>                           <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
3000bcc8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bccc:	e59d3020 	ldr	r3, [sp, #32]                                 <== NOT EXECUTED
3000bcd0:	e59dc01c 	ldr	ip, [sp, #28]                                 <== NOT EXECUTED
3000bcd4:	1a0000df 	bne	3000c058 <_Heap_Walk+0x594>                   <== NOT EXECUTED
    - 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;                
3000bcd8:	e5962004 	ldr	r2, [r6, #4]                                  <== NOT EXECUTED
3000bcdc:	e3c22001 	bic	r2, r2, #1                                    <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bce0:	e0862002 	add	r2, r6, r2                                    <== NOT EXECUTED
  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;                 
3000bce4:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
3000bce8:	e3120001 	tst	r2, #1                                        <== NOT EXECUTED
3000bcec:	1a0000eb 	bne	3000c0a0 <_Heap_Walk+0x5dc>                   <== NOT EXECUTED
3000bcf0:	e58d8030 	str	r8, [sp, #48]	; 0x30                          <== NOT EXECUTED
3000bcf4:	e58db034 	str	fp, [sp, #52]	; 0x34                          <== NOT EXECUTED
3000bcf8:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000bcfc:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
3000bd00:	e1a0b00c 	mov	fp, ip                                        <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
3000bd04:	e596100c 	ldr	r1, [r6, #12]                                 <== NOT EXECUTED
3000bd08:	e1510002 	cmp	r1, r2                                        <== NOT EXECUTED
3000bd0c:	1a0000da 	bne	3000c07c <_Heap_Walk+0x5b8>                   <== NOT EXECUTED
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    prev_block = free_block;                                          
    free_block = free_block->next;                                    
3000bd10:	e5965008 	ldr	r5, [r6, #8]                                  <== NOT EXECUTED
  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 ) {                            
3000bd14:	e1540005 	cmp	r4, r5                                        <== NOT EXECUTED
3000bd18:	0a000009 	beq	3000bd44 <_Heap_Walk+0x280>                   <== NOT EXECUTED
  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;             
3000bd1c:	e1580005 	cmp	r8, r5                                        <== NOT EXECUTED
3000bd20:	9a00007d 	bls	3000bf1c <_Heap_Walk+0x458>                   <== NOT EXECUTED
    if ( !_Heap_Is_block_in_heap( heap, free_block ) ) {              
      (*printer)(                                                     
3000bd24:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bd28:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bd2c:	e59f239c 	ldr	r2, [pc, #924]	; 3000c0d0 <_Heap_Walk+0x60c>  <== NOT EXECUTED
3000bd30:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
3000bd34:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bd38:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bd3c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bd40:	eaffff73 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
3000bd44:	e1a03008 	mov	r3, r8                                        <== NOT EXECUTED
3000bd48:	e59db034 	ldr	fp, [sp, #52]	; 0x34                          <== NOT EXECUTED
3000bd4c:	e59d8030 	ldr	r8, [sp, #48]	; 0x30                          <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
3000bd50:	e1a06008 	mov	r6, r8                                        <== NOT EXECUTED
    - 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;                
3000bd54:	e3cb7001 	bic	r7, fp, #1                                    <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  const Heap_Block *block,                                            
  uintptr_t offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) ((uintptr_t) block + offset);                 
3000bd58:	e0875006 	add	r5, r7, r6                                    <== NOT EXECUTED
  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;             
3000bd5c:	e1530005 	cmp	r3, r5                                        <== NOT EXECUTED
3000bd60:	9a000008 	bls	3000bd88 <_Heap_Walk+0x2c4>                   <== NOT EXECUTED
    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)(                                                     
3000bd64:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bd68:	e58d5000 	str	r5, [sp]                                      <== NOT EXECUTED
3000bd6c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bd70:	e59f235c 	ldr	r2, [pc, #860]	; 3000c0d4 <_Heap_Walk+0x610>  <== NOT EXECUTED
3000bd74:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000bd78:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bd7c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
        "block 0x%08x: next block 0x%08x not in heap\n",              
        block,                                                        
        next_block                                                    
      );                                                              
                                                                      
      return false;                                                   
3000bd80:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bd84:	eaffff62 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
3000bd88:	e5943024 	ldr	r3, [r4, #36]	; 0x24                          <== NOT EXECUTED
3000bd8c:	e1530005 	cmp	r3, r5                                        <== NOT EXECUTED
3000bd90:	3afffff3 	bcc	3000bd64 <_Heap_Walk+0x2a0>                   <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
3000bd94:	e59d1024 	ldr	r1, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000bd98:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000bd9c:	ebffe4c7 	bl	300050c0 <__umodsi3>                           <== NOT EXECUTED
    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;               
3000bda0:	e59d102c 	ldr	r1, [sp, #44]	; 0x2c                          <== NOT EXECUTED
3000bda4:	e0563001 	subs	r3, r6, r1                                   <== NOT EXECUTED
3000bda8:	13a03001 	movne	r3, #1                                      <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
3000bdac:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bdb0:	0a000001 	beq	3000bdbc <_Heap_Walk+0x2f8>                   <== NOT EXECUTED
3000bdb4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bdb8:	1a00008a 	bne	3000bfe8 <_Heap_Walk+0x524>                   <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
3000bdbc:	e59d2028 	ldr	r2, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000bdc0:	e1520007 	cmp	r2, r7                                        <== NOT EXECUTED
3000bdc4:	9a000001 	bls	3000bdd0 <_Heap_Walk+0x30c>                   <== NOT EXECUTED
3000bdc8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bdcc:	1a00008e 	bne	3000c00c <_Heap_Walk+0x548>                   <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
3000bdd0:	e1560005 	cmp	r6, r5                                        <== NOT EXECUTED
3000bdd4:	3a000001 	bcc	3000bde0 <_Heap_Walk+0x31c>                   <== NOT EXECUTED
3000bdd8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bddc:	1a000094 	bne	3000c034 <_Heap_Walk+0x570>                   <== NOT EXECUTED
  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;                 
3000bde0:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
3000bde4:	e20bb001 	and	fp, fp, #1                                    <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
3000bde8:	e3130001 	tst	r3, #1                                        <== NOT EXECUTED
3000bdec:	0a000018 	beq	3000be54 <_Heap_Walk+0x390>                   <== NOT EXECUTED
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
      }                                                               
    } else if (prev_used) {                                           
3000bdf0:	e35b0000 	cmp	fp, #0                                        <== NOT EXECUTED
3000bdf4:	0a00000c 	beq	3000be2c <_Heap_Walk+0x368>                   <== NOT EXECUTED
      (*printer)(                                                     
3000bdf8:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000bdfc:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000be00:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000be04:	e59f22cc 	ldr	r2, [pc, #716]	; 3000c0d8 <_Heap_Walk+0x614>  <== NOT EXECUTED
3000be08:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000be0c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000be10:	e12fff19 	bx	r9                                             <== NOT EXECUTED
        block->prev_size                                              
      );                                                              
    }                                                                 
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
3000be14:	e1580005 	cmp	r8, r5                                        <== NOT EXECUTED
3000be18:	0affff3c 	beq	3000bb10 <_Heap_Walk+0x4c>                    <== NOT EXECUTED
3000be1c:	e595b004 	ldr	fp, [r5, #4]                                  <== NOT EXECUTED
3000be20:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
3000be24:	e1a06005 	mov	r6, r5                                        <== NOT EXECUTED
3000be28:	eaffffc9 	b	3000bd54 <_Heap_Walk+0x290>                     <== NOT EXECUTED
        "block 0x%08x: size %u\n",                                    
        block,                                                        
        block_size                                                    
      );                                                              
    } else {                                                          
      (*printer)(                                                     
3000be2c:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000be30:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
3000be34:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000be38:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
3000be3c:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
3000be40:	e59f2294 	ldr	r2, [pc, #660]	; 3000c0dc <_Heap_Walk+0x618>  <== NOT EXECUTED
3000be44:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000be48:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000be4c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
3000be50:	eaffffef 	b	3000be14 <_Heap_Walk+0x350>                     <== NOT EXECUTED
    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 ?                                 
3000be54:	e596200c 	ldr	r2, [r6, #12]                                 <== NOT EXECUTED
  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)(                                                         
3000be58:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000be5c:	e594100c 	ldr	r1, [r4, #12]                                 <== NOT EXECUTED
  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)(                                                         
3000be60:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
3000be64:	059f0274 	ldreq	r0, [pc, #628]	; 3000c0e0 <_Heap_Walk+0x61c><== NOT EXECUTED
3000be68:	0a000003 	beq	3000be7c <_Heap_Walk+0x3b8>                   <== NOT EXECUTED
    block,                                                            
    block_size,                                                       
    block->prev,                                                      
    block->prev == first_free_block ?                                 
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
3000be6c:	e59f3270 	ldr	r3, [pc, #624]	; 3000c0e4 <_Heap_Walk+0x620>  <== NOT EXECUTED
3000be70:	e1540002 	cmp	r4, r2                                        <== NOT EXECUTED
3000be74:	e59f026c 	ldr	r0, [pc, #620]	; 3000c0e8 <_Heap_Walk+0x624>  <== NOT EXECUTED
3000be78:	01a00003 	moveq	r0, r3                                      <== NOT EXECUTED
    block->next,                                                      
    block->next == last_free_block ?                                  
3000be7c:	e5963008 	ldr	r3, [r6, #8]                                  <== NOT EXECUTED
  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)(                                                         
3000be80:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
3000be84:	059f1260 	ldreq	r1, [pc, #608]	; 3000c0ec <_Heap_Walk+0x628><== NOT EXECUTED
3000be88:	0a000003 	beq	3000be9c <_Heap_Walk+0x3d8>                   <== NOT EXECUTED
      " (= first free)"                                               
        : (block->prev == free_list_head ? " (= head)" : ""),         
    block->next,                                                      
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
3000be8c:	e59fc25c 	ldr	ip, [pc, #604]	; 3000c0f0 <_Heap_Walk+0x62c>  <== NOT EXECUTED
3000be90:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000be94:	e59f124c 	ldr	r1, [pc, #588]	; 3000c0e8 <_Heap_Walk+0x624>  <== NOT EXECUTED
3000be98:	01a0100c 	moveq	r1, ip                                      <== NOT EXECUTED
  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)(                                                         
3000be9c:	e58d2004 	str	r2, [sp, #4]                                  <== NOT EXECUTED
3000bea0:	e58d0008 	str	r0, [sp, #8]                                  <== NOT EXECUTED
3000bea4:	e58d300c 	str	r3, [sp, #12]                                 <== NOT EXECUTED
3000bea8:	e58d1010 	str	r1, [sp, #16]                                 <== NOT EXECUTED
3000beac:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000beb0:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000beb4:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000beb8:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000bebc:	e59f2230 	ldr	r2, [pc, #560]	; 3000c0f4 <_Heap_Walk+0x630>  <== NOT EXECUTED
3000bec0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bec4:	e12fff19 	bx	r9                                             <== NOT EXECUTED
    block->next == last_free_block ?                                  
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
3000bec8:	e5953000 	ldr	r3, [r5]                                      <== NOT EXECUTED
3000becc:	e1570003 	cmp	r7, r3                                        <== NOT EXECUTED
3000bed0:	1a000028 	bne	3000bf78 <_Heap_Walk+0x4b4>                   <== NOT EXECUTED
    );                                                                
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
3000bed4:	e35b0000 	cmp	fp, #0                                        <== NOT EXECUTED
3000bed8:	0a000031 	beq	3000bfa4 <_Heap_Walk+0x4e0>                   <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bedc:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  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 ) {                            
3000bee0:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000bee4:	0a000004 	beq	3000befc <_Heap_Walk+0x438>                   <== NOT EXECUTED
    if ( free_block == block ) {                                      
3000bee8:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
3000beec:	0affffc8 	beq	3000be14 <_Heap_Walk+0x350>                   <== NOT EXECUTED
      return true;                                                    
    }                                                                 
    free_block = free_block->next;                                    
3000bef0:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  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 ) {                            
3000bef4:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000bef8:	1afffffa 	bne	3000bee8 <_Heap_Walk+0x424>                   <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Walk_is_in_free_list( heap, block ) ) {                 
    (*printer)(                                                       
3000befc:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bf00:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bf04:	e59f21ec 	ldr	r2, [pc, #492]	; 3000c0f8 <_Heap_Walk+0x634>  <== NOT EXECUTED
3000bf08:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000bf0c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bf10:	e12fff19 	bx	r9                                             <== NOT EXECUTED
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
3000bf14:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bf18:	eafffefd 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
  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;             
3000bf1c:	e155000b 	cmp	r5, fp                                        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
3000bf20:	e2850008 	add	r0, r5, #8                                    <== NOT EXECUTED
3000bf24:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
  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;             
3000bf28:	8affff7d 	bhi	3000bd24 <_Heap_Walk+0x260>                   <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Heap_Is_aligned(                           
  uintptr_t value,                                                    
  uintptr_t alignment                                                 
)                                                                     
{                                                                     
  return (value % alignment) == 0;                                    
3000bf2c:	ebffe463 	bl	300050c0 <__umodsi3>                           <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
3000bf30:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bf34:	1a000048 	bne	3000c05c <_Heap_Walk+0x598>                   <== NOT EXECUTED
    - 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;                
3000bf38:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
3000bf3c:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
3000bf40:	e3c33001 	bic	r3, r3, #1                                    <== NOT EXECUTED
                                                                      
    block = next_block;                                               
  } while ( block != first_block );                                   
                                                                      
  return true;                                                        
}                                                                     
3000bf44:	e0833005 	add	r3, r3, r5                                    <== NOT EXECUTED
  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;                 
3000bf48:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
3000bf4c:	e1a06005 	mov	r6, r5                                        <== NOT EXECUTED
3000bf50:	e3130001 	tst	r3, #1                                        <== NOT EXECUTED
3000bf54:	0affff6a 	beq	3000bd04 <_Heap_Walk+0x240>                   <== NOT EXECUTED
      (*printer)(                                                     
3000bf58:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bf5c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bf60:	e59f2194 	ldr	r2, [pc, #404]	; 3000c0fc <_Heap_Walk+0x638>  <== NOT EXECUTED
3000bf64:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
3000bf68:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bf6c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bf70:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bf74:	eafffee6 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
      " (= last free)"                                                
        : (block->next == free_list_tail ? " (= tail)" : "")          
  );                                                                  
                                                                      
  if ( block_size != next_block->prev_size ) {                        
    (*printer)(                                                       
3000bf78:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
3000bf7c:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bf80:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000bf84:	e58d5008 	str	r5, [sp, #8]                                  <== NOT EXECUTED
3000bf88:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bf8c:	e59f216c 	ldr	r2, [pc, #364]	; 3000c100 <_Heap_Walk+0x63c>  <== NOT EXECUTED
3000bf90:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000bf94:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bf98:	e12fff19 	bx	r9                                             <== NOT EXECUTED
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
3000bf9c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bfa0:	eafffedb 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !prev_used ) {                                                 
    (*printer)(                                                       
3000bfa4:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bfa8:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bfac:	e59f2150 	ldr	r2, [pc, #336]	; 3000c104 <_Heap_Walk+0x640>  <== NOT EXECUTED
3000bfb0:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000bfb4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bfb8:	e12fff19 	bx	r9                                             <== NOT EXECUTED
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_prev_used( next_block ) ) {                        
      if ( !_Heap_Walk_check_free_block( source, printer, heap, block ) ) {
        return false;                                                 
3000bfbc:	e1a0000b 	mov	r0, fp                                        <== NOT EXECUTED
3000bfc0:	eafffed3 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
    return false;                                                     
  }                                                                   
                                                                      
  if ( !_Heap_Is_prev_used( first_block ) ) {                         
    (*printer)(                                                       
3000bfc4:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bfc8:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bfcc:	e59f2134 	ldr	r2, [pc, #308]	; 3000c108 <_Heap_Walk+0x644>  <== NOT EXECUTED
3000bfd0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000bfd4:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000bfd8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000bfdc:	eafffecc 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
  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;             
3000bfe0:	e1a05006 	mov	r5, r6                                        <== NOT EXECUTED
3000bfe4:	eaffff4e 	b	3000bd24 <_Heap_Walk+0x260>                     <== NOT EXECUTED
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( !_Heap_Is_aligned( block_size, page_size ) && is_not_last_block ) {
      (*printer)(                                                     
3000bfe8:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000bfec:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000bff0:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000bff4:	e59f2110 	ldr	r2, [pc, #272]	; 3000c10c <_Heap_Walk+0x648>  <== NOT EXECUTED
3000bff8:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000bffc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c000:	e12fff19 	bx	r9                                             <== NOT EXECUTED
        "block 0x%08x: block size %u not page aligned\n",             
        block,                                                        
        block_size                                                    
      );                                                              
                                                                      
      return false;                                                   
3000c004:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c008:	eafffec1 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
    }                                                                 
                                                                      
    if ( block_size < min_block_size && is_not_last_block ) {         
      (*printer)(                                                     
3000c00c:	e58d2004 	str	r2, [sp, #4]                                  <== NOT EXECUTED
3000c010:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000c014:	e58d7000 	str	r7, [sp]                                      <== NOT EXECUTED
3000c018:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c01c:	e59f20ec 	ldr	r2, [pc, #236]	; 3000c110 <_Heap_Walk+0x64c>  <== NOT EXECUTED
3000c020:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000c024:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c028:	e12fff19 	bx	r9                                             <== NOT EXECUTED
        block,                                                        
        block_size,                                                   
        min_block_size                                                
      );                                                              
                                                                      
      return false;                                                   
3000c02c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c030:	eafffeb7 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
    }                                                                 
                                                                      
    if ( next_block_begin <= block_begin && is_not_last_block ) {     
      (*printer)(                                                     
3000c034:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000c038:	e58d5000 	str	r5, [sp]                                      <== NOT EXECUTED
3000c03c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c040:	e59f20cc 	ldr	r2, [pc, #204]	; 3000c114 <_Heap_Walk+0x650>  <== NOT EXECUTED
3000c044:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000c048:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c04c:	e12fff19 	bx	r9                                             <== NOT EXECUTED
        "block 0x%08x: next block 0x%08x is not a successor\n",       
        block,                                                        
        next_block                                                    
      );                                                              
                                                                      
      return false;                                                   
3000c050:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c054:	eafffeae 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if (                                                              
3000c058:	e1a05006 	mov	r5, r6                                        <== NOT EXECUTED
      !_Heap_Is_aligned( _Heap_Alloc_area_of_block( free_block ), page_size )
    ) {                                                               
      (*printer)(                                                     
3000c05c:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000c060:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c064:	e59f20ac 	ldr	r2, [pc, #172]	; 3000c118 <_Heap_Walk+0x654>  <== NOT EXECUTED
3000c068:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
3000c06c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c070:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000c074:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c078:	eafffea5 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( free_block->prev != prev_block ) {                           
      (*printer)(                                                     
3000c07c:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
3000c080:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000c084:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c088:	e59f208c 	ldr	r2, [pc, #140]	; 3000c11c <_Heap_Walk+0x658>  <== NOT EXECUTED
3000c08c:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000c090:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c094:	e12fff19 	bx	r9                                             <== NOT EXECUTED
  if ( !_System_state_Is_up( _System_state_Get() ) ) {                
    return true;                                                      
  }                                                                   
                                                                      
  if ( !_Heap_Walk_check_control( source, printer, heap ) ) {         
    return false;                                                     
3000c098:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c09c:	eafffe9c 	b	3000bb14 <_Heap_Walk+0x50>                      <== NOT EXECUTED
      );                                                              
                                                                      
      return false;                                                   
    }                                                                 
                                                                      
    if ( _Heap_Is_used( free_block ) ) {                              
3000c0a0:	e1a05006 	mov	r5, r6                                        <== NOT EXECUTED
3000c0a4:	eaffffab 	b	3000bf58 <_Heap_Walk+0x494>                     <== NOT EXECUTED
                                                                      

3000ba6c <_Heap_Walk_print>: static void _Heap_Walk_print( int source, bool error, const char *fmt, ... ) {
3000ba6c:	e92d000c 	push	{r2, r3}                                     <== NOT EXECUTED
3000ba70:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  va_list ap;                                                         
                                                                      
  if ( error ) {                                                      
3000ba74:	e31100ff 	tst	r1, #255	; 0xff                               <== NOT EXECUTED
{                                                                     
  /* Do nothing */                                                    
}                                                                     
                                                                      
static void _Heap_Walk_print( int source, bool error, const char *fmt, ... )
{                                                                     
3000ba78:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000ba7c:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  va_list ap;                                                         
                                                                      
  if ( error ) {                                                      
3000ba80:	1a00000a 	bne	3000bab0 <_Heap_Walk_print+0x44>              <== NOT EXECUTED
    printk( "FAIL[%d]: ", source );                                   
  } else {                                                            
    printk( "PASS[%d]: ", source );                                   
3000ba84:	e59f0030 	ldr	r0, [pc, #48]	; 3000babc <_Heap_Walk_print+0x50><== NOT EXECUTED
3000ba88:	ebfff02d 	bl	30007b44 <printk>                              <== NOT EXECUTED
  }                                                                   
                                                                      
  va_start( ap, fmt );                                                
3000ba8c:	e28d300c 	add	r3, sp, #12                                   <== NOT EXECUTED
  vprintk( fmt, ap );                                                 
3000ba90:	e59d0008 	ldr	r0, [sp, #8]                                  <== NOT EXECUTED
3000ba94:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
    printk( "FAIL[%d]: ", source );                                   
  } else {                                                            
    printk( "PASS[%d]: ", source );                                   
  }                                                                   
                                                                      
  va_start( ap, fmt );                                                
3000ba98:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
  vprintk( fmt, ap );                                                 
3000ba9c:	ebfff7b9 	bl	30009988 <vprintk>                             <== NOT EXECUTED
  va_end( ap );                                                       
}                                                                     
3000baa0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000baa4:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
3000baa8:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000baac:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
static void _Heap_Walk_print( int source, bool error, const char *fmt, ... )
{                                                                     
  va_list ap;                                                         
                                                                      
  if ( error ) {                                                      
    printk( "FAIL[%d]: ", source );                                   
3000bab0:	e59f0008 	ldr	r0, [pc, #8]	; 3000bac0 <_Heap_Walk_print+0x54><== NOT EXECUTED
3000bab4:	ebfff022 	bl	30007b44 <printk>                              <== NOT EXECUTED
3000bab8:	eafffff3 	b	3000ba8c <_Heap_Walk_print+0x20>                <== NOT EXECUTED
                                                                      

3000ba60 <_Heap_Walk_print_nothing>: int source, bool error, const char *fmt, ... ) {
3000ba60:	e92d000c 	push	{r2, r3}                                     <== NOT EXECUTED
  /* Do nothing */                                                    
}                                                                     
3000ba64:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000ba68:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ae70 <_Internal_error_Occurred>: bool is_internal, Internal_errors_t the_error ) { _Internal_errors_What_happened.the_source = the_source;
3000ae70:	e59f303c 	ldr	r3, [pc, #60]	; 3000aeb4 <_Internal_error_Occurred+0x44>
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
3000ae74:	e201c0ff 	and	ip, r1, #255	; 0xff                           
3000ae78:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
3000ae7c:	e1a0100c 	mov	r1, ip                                        
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
3000ae80:	e5830000 	str	r0, [r3]                                      
  _Internal_errors_What_happened.is_internal = is_internal;           
3000ae84:	e5c3c004 	strb	ip, [r3, #4]                                 
  _Internal_errors_What_happened.the_error   = the_error;             
3000ae88:	e5832008 	str	r2, [r3, #8]                                  
void _Internal_error_Occurred(                                        
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
3000ae8c:	e1a04002 	mov	r4, r2                                        
                                                                      
  _Internal_errors_What_happened.the_source  = the_source;            
  _Internal_errors_What_happened.is_internal = is_internal;           
  _Internal_errors_What_happened.the_error   = the_error;             
                                                                      
  _User_extensions_Fatal( the_source, is_internal, the_error );       
3000ae90:	eb0007d2 	bl	3000cde0 <_User_extensions_Fatal>              
                                                                      
RTEMS_INLINE_ROUTINE void _System_state_Set (                         
  System_state_Codes state                                            
)                                                                     
{                                                                     
  _System_state_Current = state;                                      
3000ae94:	e59f301c 	ldr	r3, [pc, #28]	; 3000aeb8 <_Internal_error_Occurred+0x48><== NOT EXECUTED
3000ae98:	e3a02005 	mov	r2, #5                                        <== NOT EXECUTED
3000ae9c:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000aea0:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000aea4:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3000aea8:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
                                                                      
  _System_state_Set( SYSTEM_STATE_FAILED );                           
                                                                      
  _CPU_Fatal_halt( the_error );                                       
3000aeac:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aeb0:	eafffffe 	b	3000aeb0 <_Internal_error_Occurred+0x40>        <== NOT EXECUTED
                                                                      

3000af78 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) {
3000af78:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
3000af7c:	e5904034 	ldr	r4, [r0, #52]	; 0x34                          
 */                                                                   
                                                                      
void _Objects_Extend_information(                                     
  Objects_Information *information                                    
)                                                                     
{                                                                     
3000af80:	e24dd014 	sub	sp, sp, #20                                   
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
3000af84:	e3540000 	cmp	r4, #0                                        
 */                                                                   
                                                                      
void _Objects_Extend_information(                                     
  Objects_Information *information                                    
)                                                                     
{                                                                     
3000af88:	e1a05000 	mov	r5, r0                                        
  /*                                                                  
   *  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 );      
3000af8c:	e1d070b8 	ldrh	r7, [r0, #8]                                 
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
3000af90:	0a00009a 	beq	3000b200 <_Objects_Extend_information+0x288>  
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
3000af94:	e1d081b4 	ldrh	r8, [r0, #20]                                
3000af98:	e1d0a1b0 	ldrh	sl, [r0, #16]                                
3000af9c:	e1a01008 	mov	r1, r8                                        
3000afa0:	e1a0000a 	mov	r0, sl                                        
3000afa4:	eb0029f6 	bl	30015784 <__aeabi_uidiv>                       
3000afa8:	e1a03800 	lsl	r3, r0, #16                                   
                                                                      
    for ( ; block < block_count; block++ ) {                          
3000afac:	e1b03823 	lsrs	r3, r3, #16                                  
3000afb0:	0a000098 	beq	3000b218 <_Objects_Extend_information+0x2a0>  
      if ( information->object_blocks[ block ] == NULL ) {            
3000afb4:	e5949000 	ldr	r9, [r4]                                      
3000afb8:	e3590000 	cmp	r9, #0                                        
3000afbc:	01a01008 	moveq	r1, r8                                      
  /*                                                                  
   *  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 );      
3000afc0:	01a06007 	moveq	r6, r7                                      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
3000afc4:	01a04009 	moveq	r4, r9                                      
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
3000afc8:	0a00000c 	beq	3000b000 <_Objects_Extend_information+0x88>   
3000afcc:	e1a02004 	mov	r2, r4                                        
3000afd0:	e1a01008 	mov	r1, r8                                        
  /*                                                                  
   *  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 );      
3000afd4:	e1a06007 	mov	r6, r7                                        
  index_base    = minimum_index;                                      
  block         = 0;                                                  
3000afd8:	e3a04000 	mov	r4, #0                                        
3000afdc:	ea000002 	b	3000afec <_Objects_Extend_information+0x74>     
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL ) {            
3000afe0:	e5b29004 	ldr	r9, [r2, #4]!                                 
3000afe4:	e3590000 	cmp	r9, #0                                        
3000afe8:	0a000004 	beq	3000b000 <_Objects_Extend_information+0x88>   
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
3000afec:	e2844001 	add	r4, r4, #1                                    
3000aff0:	e1530004 	cmp	r3, r4                                        
      if ( information->object_blocks[ block ] == NULL ) {            
        do_extend = false;                                            
        break;                                                        
      } else                                                          
        index_base += information->allocation_size;                   
3000aff4:	e0866008 	add	r6, r6, r8                                    
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
3000aff8:	8afffff8 	bhi	3000afe0 <_Objects_Extend_information+0x68>   
                                                                      
  /*                                                                  
   *  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;                                               
3000affc:	e3a09001 	mov	r9, #1                                        
      } else                                                          
        index_base += information->allocation_size;                   
    }                                                                 
  }                                                                   
                                                                      
  maximum = (uint32_t) information->maximum + information->allocation_size;
3000b000:	e08aa001 	add	sl, sl, r1                                    
  /*                                                                  
   *  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 ) {                           
3000b004:	e35a0801 	cmp	sl, #65536	; 0x10000                          
3000b008:	2a000062 	bcs	3000b198 <_Objects_Extend_information+0x220>  
  /*                                                                  
   * 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;      
  if ( information->auto_extend ) {                                   
3000b00c:	e5d52012 	ldrb	r2, [r5, #18]                                
                                                                      
  /*                                                                  
   * 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;      
3000b010:	e5950018 	ldr	r0, [r5, #24]                                 
  if ( information->auto_extend ) {                                   
3000b014:	e3520000 	cmp	r2, #0                                        
                                                                      
  /*                                                                  
   * 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;      
3000b018:	e0000091 	mul	r0, r1, r0                                    
  if ( information->auto_extend ) {                                   
3000b01c:	1a00005f 	bne	3000b1a0 <_Objects_Extend_information+0x228>  
    new_object_block = _Workspace_Allocate( block_size );             
    if ( !new_object_block )                                          
      return;                                                         
  } else {                                                            
    new_object_block = _Workspace_Allocate_or_fatal_error( block_size );
3000b020:	e58d3000 	str	r3, [sp]                                      
3000b024:	eb0008b5 	bl	3000d300 <_Workspace_Allocate_or_fatal_error>  
3000b028:	e59d3000 	ldr	r3, [sp]                                      
3000b02c:	e1a08000 	mov	r8, r0                                        
  }                                                                   
                                                                      
  /*                                                                  
   *  Do we need to grow the tables?                                  
   */                                                                 
  if ( do_extend ) {                                                  
3000b030:	e3590000 	cmp	r9, #0                                        
3000b034:	0a000038 	beq	3000b11c <_Objects_Extend_information+0x1a4>  
     */                                                               
                                                                      
    /*                                                                
     *  Up the block count and maximum                                
     */                                                               
    block_count++;                                                    
3000b038:	e283b001 	add	fp, r3, #1                                    
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
3000b03c:	e08b008b 	add	r0, fp, fp, lsl #1                            
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
3000b040:	e08a0000 	add	r0, sl, r0                                    
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
    block_size = block_count *                                        
           (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
3000b044:	e0800007 	add	r0, r0, r7                                    
          ((maximum + minimum_index) * sizeof(Objects_Control *));    
    object_blocks = (void**) _Workspace_Allocate( block_size );       
3000b048:	e1a00100 	lsl	r0, r0, #2                                    
3000b04c:	e58d3000 	str	r3, [sp]                                      
3000b050:	eb0008a0 	bl	3000d2d8 <_Workspace_Allocate>                 
                                                                      
    if ( !object_blocks ) {                                           
3000b054:	e2509000 	subs	r9, r0, #0                                   
3000b058:	e59d3000 	ldr	r3, [sp]                                      
3000b05c:	0a000072 	beq	3000b22c <_Objects_Extend_information+0x2b4>  
     *  Take the block count down. Saves all the (block_count - 1)    
     *  in the copies.                                                
     */                                                               
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
3000b060:	e1d521b0 	ldrh	r2, [r5, #16]                                
RTEMS_INLINE_ROUTINE void *_Addresses_Add_offset (                    
  const void *base,                                                   
  uintptr_t   offset                                                  
)                                                                     
{                                                                     
  return (void *)((uintptr_t)base + offset);                          
3000b064:	e089c10b 	add	ip, r9, fp, lsl #2                            
3000b068:	e1570002 	cmp	r7, r2                                        
3000b06c:	e089b18b 	add	fp, r9, fp, lsl #3                            
3000b070:	3a000050 	bcc	3000b1b8 <_Objects_Extend_information+0x240>  
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
3000b074:	e3570000 	cmp	r7, #0                                        
3000b078:	13a02000 	movne	r2, #0                                      
3000b07c:	11a0100b 	movne	r1, fp                                      
        local_table[ index ] = NULL;                                  
3000b080:	11a00002 	movne	r0, r2                                      
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
3000b084:	0a000003 	beq	3000b098 <_Objects_Extend_information+0x120>  
3000b088:	e2822001 	add	r2, r2, #1                                    
3000b08c:	e1570002 	cmp	r7, r2                                        
        local_table[ index ] = NULL;                                  
3000b090:	e4810004 	str	r0, [r1], #4                                  
    } else {                                                          
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
3000b094:	8afffffb 	bhi	3000b088 <_Objects_Extend_information+0x110>  
3000b098:	e1a03103 	lsl	r3, r3, #2                                    
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
3000b09c:	e1d511b4 	ldrh	r1, [r5, #20]                                
    }                                                                 
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
3000b0a0:	e3a00000 	mov	r0, #0                                        
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
3000b0a4:	e0861001 	add	r1, r6, r1                                    
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
3000b0a8:	e1560001 	cmp	r6, r1                                        
    }                                                                 
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
3000b0ac:	e7890003 	str	r0, [r9, r3]                                  
    inactive_per_block[block_count] = 0;                              
3000b0b0:	e78c0003 	str	r0, [ip, r3]                                  
                                                                      
    for ( index=index_base ;                                          
3000b0b4:	2a000005 	bcs	3000b0d0 <_Objects_Extend_information+0x158>  
3000b0b8:	e08b2106 	add	r2, fp, r6, lsl #2                            
 *    information     - object information table                      
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Objects_Extend_information(                                     
3000b0bc:	e1a03006 	mov	r3, r6                                        
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
3000b0c0:	e2833001 	add	r3, r3, #1                                    
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
3000b0c4:	e1530001 	cmp	r3, r1                                        
          index < ( information->allocation_size + index_base );      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
3000b0c8:	e4820004 	str	r0, [r2], #4                                  
     *  Initialise the new entries in the table.                      
     */                                                               
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
3000b0cc:	3afffffb 	bcc	3000b0c0 <_Objects_Extend_information+0x148>  
3000b0d0:	e10f3000 	mrs	r3, CPSR                                      
3000b0d4:	e3832080 	orr	r2, r3, #128	; 0x80                           
3000b0d8:	e129f002 	msr	CPSR_fc, r2                                   
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
3000b0dc:	e5952000 	ldr	r2, [r5]                                      
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = (Objects_Maximum) maximum;                 
    information->maximum_id = _Objects_Build_id(                      
3000b0e0:	e1d510b4 	ldrh	r1, [r5, #4]                                 
3000b0e4:	e1a02c02 	lsl	r2, r2, #24                                   
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = (Objects_Maximum) maximum;                 
3000b0e8:	e1a0a80a 	lsl	sl, sl, #16                                   
3000b0ec:	e3822801 	orr	r2, r2, #65536	; 0x10000                      
3000b0f0:	e1a0a82a 	lsr	sl, sl, #16                                   
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
3000b0f4:	e1822d81 	orr	r2, r2, r1, lsl #27                           
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
3000b0f8:	e182200a 	orr	r2, r2, sl                                    
      local_table[ index ] = NULL;                                    
    }                                                                 
                                                                      
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
3000b0fc:	e5950034 	ldr	r0, [r5, #52]	; 0x34                          
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
3000b100:	e585c030 	str	ip, [r5, #48]	; 0x30                          
                                                                      
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
3000b104:	e5859034 	str	r9, [r5, #52]	; 0x34                          
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
3000b108:	e585b01c 	str	fp, [r5, #28]                                 
    information->maximum = (Objects_Maximum) maximum;                 
3000b10c:	e1c5a1b0 	strh	sl, [r5, #16]                                
    information->maximum_id = _Objects_Build_id(                      
3000b110:	e585200c 	str	r2, [r5, #12]                                 
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b114:	e129f003 	msr	CPSR_fc, r3                                   
        information->maximum                                          
      );                                                              
                                                                      
    _ISR_Enable( level );                                             
                                                                      
    _Workspace_Free( old_tables );                                    
3000b118:	eb000874 	bl	3000d2f0 <_Workspace_Free>                     
  }                                                                   
                                                                      
  /*                                                                  
   *  Assign the new object block to the object block table.          
   */                                                                 
  information->object_blocks[ block ] = new_object_block;             
3000b11c:	e5953034 	ldr	r3, [r5, #52]	; 0x34                          
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
  _Chain_Initialize(                                                  
3000b120:	e28d7008 	add	r7, sp, #8                                    
  }                                                                   
                                                                      
  /*                                                                  
   *  Assign the new object block to the object block table.          
   */                                                                 
  information->object_blocks[ block ] = new_object_block;             
3000b124:	e7838104 	str	r8, [r3, r4, lsl #2]                          
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
  _Chain_Initialize(                                                  
3000b128:	e1a01008 	mov	r1, r8                                        
3000b12c:	e1a00007 	mov	r0, r7                                        
3000b130:	e1d521b4 	ldrh	r2, [r5, #20]                                
3000b134:	e5953018 	ldr	r3, [r5, #24]                                 
3000b138:	eb00129b 	bl	3000fbac <_Chain_Initialize>                   
  }                                                                   
                                                                      
  /*                                                                  
   *  Assign the new object block to the object block table.          
   */                                                                 
  information->object_blocks[ block ] = new_object_block;             
3000b13c:	e1a04104 	lsl	r4, r4, #2                                    
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
3000b140:	e2858020 	add	r8, r5, #32                                   
  /*                                                                  
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
  index = index_base;                                                 
                                                                      
  while ((the_object = (Objects_Control *) _Chain_Get( &Inactive )) != NULL ) {
3000b144:	ea000009 	b	3000b170 <_Objects_Extend_information+0x1f8>    
3000b148:	e5953000 	ldr	r3, [r5]                                      
                                                                      
    the_object->id = _Objects_Build_id(                               
3000b14c:	e1d520b4 	ldrh	r2, [r5, #4]                                 
3000b150:	e1a03c03 	lsl	r3, r3, #24                                   
3000b154:	e3833801 	orr	r3, r3, #65536	; 0x10000                      
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
3000b158:	e1833d82 	orr	r3, r3, r2, lsl #27                           
  uint32_t         the_class,                                         
  uint32_t         node,                                              
  uint32_t         index                                              
)                                                                     
{                                                                     
  return (( (Objects_Id) the_api )   << OBJECTS_API_START_BIT)   |    
3000b15c:	e1833006 	orr	r3, r3, r6                                    
3000b160:	e5813008 	str	r3, [r1, #8]                                  
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
3000b164:	e1a00008 	mov	r0, r8                                        
3000b168:	ebfffcec 	bl	3000a520 <_Chain_Append>                       
                                                                      
    index++;                                                          
3000b16c:	e2866001 	add	r6, r6, #1                                    
  /*                                                                  
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
  index = index_base;                                                 
                                                                      
  while ((the_object = (Objects_Control *) _Chain_Get( &Inactive )) != NULL ) {
3000b170:	e1a00007 	mov	r0, r7                                        
3000b174:	ebfffcfc 	bl	3000a56c <_Chain_Get>                          
3000b178:	e2501000 	subs	r1, r0, #0                                   
3000b17c:	1afffff1 	bne	3000b148 <_Objects_Extend_information+0x1d0>  
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
  information->inactive =                                             
    (Objects_Maximum)(information->inactive + information->allocation_size);
3000b180:	e1d522bc 	ldrh	r2, [r5, #44]	; 0x2c                         
    _Chain_Append( &information->Inactive, &the_object->Node );       
                                                                      
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
3000b184:	e1d531b4 	ldrh	r3, [r5, #20]                                
3000b188:	e5951030 	ldr	r1, [r5, #48]	; 0x30                          
  information->inactive =                                             
    (Objects_Maximum)(information->inactive + information->allocation_size);
3000b18c:	e0832002 	add	r2, r3, r2                                    
    _Chain_Append( &information->Inactive, &the_object->Node );       
                                                                      
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
3000b190:	e7813004 	str	r3, [r1, r4]                                  
  information->inactive =                                             
3000b194:	e1c522bc 	strh	r2, [r5, #44]	; 0x2c                         
    (Objects_Maximum)(information->inactive + information->allocation_size);
}                                                                     
3000b198:	e28dd014 	add	sp, sp, #20                                   
3000b19c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
   * 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;      
  if ( information->auto_extend ) {                                   
    new_object_block = _Workspace_Allocate( block_size );             
3000b1a0:	e58d3000 	str	r3, [sp]                                      
3000b1a4:	eb00084b 	bl	3000d2d8 <_Workspace_Allocate>                 
    if ( !new_object_block )                                          
3000b1a8:	e2508000 	subs	r8, r0, #0                                   
3000b1ac:	e59d3000 	ldr	r3, [sp]                                      
3000b1b0:	1affff9e 	bne	3000b030 <_Objects_Extend_information+0xb8>   
3000b1b4:	eafffff7 	b	3000b198 <_Objects_Extend_information+0x220>    
      /*                                                              
       *  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,                                          
3000b1b8:	e1a03103 	lsl	r3, r3, #2                                    
3000b1bc:	e5951034 	ldr	r1, [r5, #52]	; 0x34                          
3000b1c0:	e1a02003 	mov	r2, r3                                        
3000b1c4:	e88d1008 	stm	sp, {r3, ip}                                  
3000b1c8:	eb001dd8 	bl	30012930 <memcpy>                              
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
3000b1cc:	e89d1008 	ldm	sp, {r3, ip}                                  
3000b1d0:	e1a0000c 	mov	r0, ip                                        
3000b1d4:	e1a02003 	mov	r2, r3                                        
3000b1d8:	e5951030 	ldr	r1, [r5, #48]	; 0x30                          
3000b1dc:	eb001dd3 	bl	30012930 <memcpy>                              
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
              information->local_table,                               
              (information->maximum + minimum_index) * sizeof(Objects_Control *) );
3000b1e0:	e1d521b0 	ldrh	r2, [r5, #16]                                
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
3000b1e4:	e1a0000b 	mov	r0, fp                                        
              information->local_table,                               
              (information->maximum + minimum_index) * sizeof(Objects_Control *) );
3000b1e8:	e0872002 	add	r2, r7, r2                                    
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
3000b1ec:	e595101c 	ldr	r1, [r5, #28]                                 
3000b1f0:	e1a02102 	lsl	r2, r2, #2                                    
3000b1f4:	eb001dcd 	bl	30012930 <memcpy>                              
3000b1f8:	e89d1008 	ldm	sp, {r3, ip}                                  
3000b1fc:	eaffffa6 	b	3000b09c <_Objects_Extend_information+0x124>    
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
3000b200:	e1d0a1b0 	ldrh	sl, [r0, #16]                                
3000b204:	e1d011b4 	ldrh	r1, [r0, #20]                                
  /*                                                                  
   *  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 );      
3000b208:	e1a06007 	mov	r6, r7                                        
                                                                      
  /*                                                                  
   *  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;                                               
3000b20c:	e3a09001 	mov	r9, #1                                        
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  /* if ( information->maximum < minimum_index ) */                   
  if ( information->object_blocks == NULL )                           
    block_count = 0;                                                  
3000b210:	e1a03004 	mov	r3, r4                                        
3000b214:	eaffff79 	b	3000b000 <_Objects_Extend_information+0x88>     
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
3000b218:	e1a01008 	mov	r1, r8                                        <== 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 );      
3000b21c:	e1a06007 	mov	r6, r7                                        <== 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;                                               
3000b220:	e3a09001 	mov	r9, #1                                        <== NOT EXECUTED
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
3000b224:	e1a04003 	mov	r4, r3                                        <== NOT EXECUTED
3000b228:	eaffff74 	b	3000b000 <_Objects_Extend_information+0x88>     <== 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 );                            
3000b22c:	e1a00008 	mov	r0, r8                                        
3000b230:	eb00082e 	bl	3000d2f0 <_Workspace_Free>                     
      return;                                                         
3000b234:	eaffffd7 	b	3000b198 <_Objects_Extend_information+0x220>    
                                                                      

3000b394 <_Objects_Get>: * always NULL. * * If the Id is valid but the object has not been created yet, then * the local_table entry will be NULL. */ index = id - information->minimum_id + 1;
3000b394:	e590c008 	ldr	ip, [r0, #8]                                  
Objects_Control *_Objects_Get(                                        
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
3000b398:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
                                                                      
  /*                                                                  
   *  If the index is less than maximum, then it is OK to use it to   
   *  index into the local_table array.                               
   */                                                                 
  if ( index <= information->maximum ) {                              
3000b39c:	e1d031b0 	ldrh	r3, [r0, #16]                                
   *  always NULL.                                                    
   *                                                                  
   *  If the Id is valid but the object has not been created yet, then
   *  the local_table entry will be NULL.                             
   */                                                                 
  index = id - information->minimum_id + 1;                           
3000b3a0:	e26cc001 	rsb	ip, ip, #1                                    
3000b3a4:	e08c1001 	add	r1, ip, r1                                    
                                                                      
  /*                                                                  
   *  If the index is less than maximum, then it is OK to use it to   
   *  index into the local_table array.                               
   */                                                                 
  if ( index <= information->maximum ) {                              
3000b3a8:	e1510003 	cmp	r1, r3                                        
  /*                                                                  
   *  Object Id is not within this API and Class on this node.  So    
   *  it may be global in a multiprocessing system.  But it is clearly
   *  invalid on a single processor system.                           
   */                                                                 
  *location = OBJECTS_ERROR;                                          
3000b3ac:	83a03001 	movhi	r3, #1                                      
Objects_Control *_Objects_Get(                                        
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location                                       
)                                                                     
{                                                                     
3000b3b0:	e24dd008 	sub	sp, sp, #8                                    
  /*                                                                  
   *  Object Id is not within this API and Class on this node.  So    
   *  it may be global in a multiprocessing system.  But it is clearly
   *  invalid on a single processor system.                           
   */                                                                 
  *location = OBJECTS_ERROR;                                          
3000b3b4:	85823000 	strhi	r3, [r2]                                    
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
3000b3b8:	83a00000 	movhi	r0, #0                                      
                                                                      
  /*                                                                  
   *  If the index is less than maximum, then it is OK to use it to   
   *  index into the local_table array.                               
   */                                                                 
  if ( index <= information->maximum ) {                              
3000b3bc:	8a000009 	bhi	3000b3e8 <_Objects_Get+0x54>                  
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000b3c0:	e59f3048 	ldr	r3, [pc, #72]	; 3000b410 <_Objects_Get+0x7c>  
3000b3c4:	e593c000 	ldr	ip, [r3]                                      
3000b3c8:	e28cc001 	add	ip, ip, #1                                    
3000b3cc:	e583c000 	str	ip, [r3]                                      
    _Thread_Disable_dispatch();                                       
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3000b3d0:	e590301c 	ldr	r3, [r0, #28]                                 
3000b3d4:	e7930101 	ldr	r0, [r3, r1, lsl #2]                          
3000b3d8:	e3500000 	cmp	r0, #0                                        
      *location = OBJECTS_LOCAL;                                      
3000b3dc:	13a03000 	movne	r3, #0                                      
3000b3e0:	15823000 	strne	r3, [r2]                                    
   *  If the index is less than maximum, then it is OK to use it to   
   *  index into the local_table array.                               
   */                                                                 
  if ( index <= information->maximum ) {                              
    _Thread_Disable_dispatch();                                       
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3000b3e4:	0a000001 	beq	3000b3f0 <_Objects_Get+0x5c>                  
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
#endif                                                                
}                                                                     
3000b3e8:	e28dd008 	add	sp, sp, #8                                    
3000b3ec:	e8bd8000 	pop	{pc}                                          
                                                                      
    /*                                                                
     *  Valid Id for this API, Class and Node but the object has not  
     *  been allocated yet.                                           
     */                                                               
    _Thread_Enable_dispatch();                                        
3000b3f0:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
3000b3f4:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
3000b3f8:	eb000341 	bl	3000c104 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    *location = OBJECTS_ERROR;                                        
3000b3fc:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000b400:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000b404:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
    return NULL;                                                      
3000b408:	e59d0004 	ldr	r0, [sp, #4]                                  <== NOT EXECUTED
3000b40c:	eafffff5 	b	3000b3e8 <_Objects_Get+0x54>                    <== NOT EXECUTED
                                                                      

3000b2c0 <_Objects_Get_information>: Objects_Information *_Objects_Get_information( Objects_APIs the_api, uint16_t the_class ) {
3000b2c0:	e1a01801 	lsl	r1, r1, #16                                   
3000b2c4:	e92d4030 	push	{r4, r5, lr}                                 
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
3000b2c8:	e1b04821 	lsrs	r4, r1, #16                                  
                                                                      
Objects_Information *_Objects_Get_information(                        
  Objects_APIs   the_api,                                             
  uint16_t       the_class                                            
)                                                                     
{                                                                     
3000b2cc:	e1a05000 	mov	r5, r0                                        
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
    return NULL;                                                      
3000b2d0:	01a00004 	moveq	r0, r4                                      
)                                                                     
{                                                                     
  Objects_Information *info;                                          
  int the_class_api_maximum;                                          
                                                                      
  if ( !the_class )                                                   
3000b2d4:	08bd8030 	popeq	{r4, r5, pc}                                
                                                                      
  /*                                                                  
   *  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 );      
3000b2d8:	eb0013c3 	bl	300101ec <_Objects_API_maximum_class>          
  if ( the_class_api_maximum == 0 )                                   
3000b2dc:	e3500000 	cmp	r0, #0                                        
3000b2e0:	08bd8030 	popeq	{r4, r5, pc}                                
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
3000b2e4:	e1500004 	cmp	r0, r4                                        
3000b2e8:	2a000001 	bcs	3000b2f4 <_Objects_Get_information+0x34>      
    return NULL;                                                      
3000b2ec:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    if ( info->maximum == 0 )                                         
      return NULL;                                                    
  #endif                                                              
                                                                      
  return info;                                                        
}                                                                     
3000b2f0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    return NULL;                                                      
                                                                      
  if ( the_class > (uint32_t) the_class_api_maximum )                 
    return NULL;                                                      
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
3000b2f4:	e59f3024 	ldr	r3, [pc, #36]	; 3000b320 <_Objects_Get_information+0x60>
3000b2f8:	e7930105 	ldr	r0, [r3, r5, lsl #2]                          
3000b2fc:	e3500000 	cmp	r0, #0                                        
3000b300:	08bd8030 	popeq	{r4, r5, pc}                                
    return NULL;                                                      
                                                                      
  info = _Objects_Information_table[ the_api ][ the_class ];          
3000b304:	e7900104 	ldr	r0, [r0, r4, lsl #2]                          
  if ( !info )                                                        
3000b308:	e3500000 	cmp	r0, #0                                        
3000b30c:	08bd8030 	popeq	{r4, r5, pc}                                
   *  In a multprocessing configuration, we may access remote objects.
   *  Thus we may have 0 local instances and still have a valid object
   *  pointer.                                                        
   */                                                                 
  #if !defined(RTEMS_MULTIPROCESSING)                                 
    if ( info->maximum == 0 )                                         
3000b310:	e1d031b0 	ldrh	r3, [r0, #16]                                
      return NULL;                                                    
3000b314:	e3530000 	cmp	r3, #0                                        
3000b318:	03a00000 	moveq	r0, #0                                      
3000b31c:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

3000b324 <_Objects_Get_isr_disable>: { Objects_Control *the_object; uint32_t index; ISR_Level level; index = id - information->minimum_id + 1;
3000b324:	e590c008 	ldr	ip, [r0, #8]                                  
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location,                                      
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
3000b328:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 
  Objects_Control *the_object;                                        
  uint32_t         index;                                             
  ISR_Level        level;                                             
                                                                      
  index = id - information->minimum_id + 1;                           
3000b32c:	e26cc001 	rsb	ip, ip, #1                                    
3000b330:	e08cc001 	add	ip, ip, r1                                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000b334:	e10f4000 	mrs	r4, CPSR                                      
3000b338:	e3841080 	orr	r1, r4, #128	; 0x80                           
3000b33c:	e129f001 	msr	CPSR_fc, r1                                   
                                                                      
  _ISR_Disable( level );                                              
  if ( information->maximum >= index ) {                              
3000b340:	e1d011b0 	ldrh	r1, [r0, #16]                                
3000b344:	e15c0001 	cmp	ip, r1                                        
3000b348:	8a000008 	bhi	3000b370 <_Objects_Get_isr_disable+0x4c>      
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3000b34c:	e590101c 	ldr	r1, [r0, #28]                                 
3000b350:	e791010c 	ldr	r0, [r1, ip, lsl #2]                          
3000b354:	e3500000 	cmp	r0, #0                                        
      *location = OBJECTS_LOCAL;                                      
3000b358:	13a01000 	movne	r1, #0                                      
3000b35c:	15821000 	strne	r1, [r2]                                    
      *level_p = level;                                               
3000b360:	15834000 	strne	r4, [r3]                                    
                                                                      
  index = id - information->minimum_id + 1;                           
                                                                      
  _ISR_Disable( level );                                              
  if ( information->maximum >= index ) {                              
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3000b364:	0a000006 	beq	3000b384 <_Objects_Get_isr_disable+0x60>      
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
#endif                                                                
}                                                                     
3000b368:	e8bd0010 	pop	{r4}                                          
3000b36c:	e12fff1e 	bx	lr                                             
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000b370:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
    *location = OBJECTS_ERROR;                                        
    return NULL;                                                      
  }                                                                   
  _ISR_Enable( level );                                               
  *location = OBJECTS_ERROR;                                          
3000b374:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000b378:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
3000b37c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000b380:	eafffff8 	b	3000b368 <_Objects_Get_isr_disable+0x44>        <== NOT EXECUTED
3000b384:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
      *location = OBJECTS_LOCAL;                                      
      *level_p = level;                                               
      return the_object;                                              
    }                                                                 
    _ISR_Enable( level );                                             
    *location = OBJECTS_ERROR;                                        
3000b388:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000b38c:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
    return NULL;                                                      
3000b390:	eafffff4 	b	3000b368 <_Objects_Get_isr_disable+0x44>        <== NOT EXECUTED
                                                                      

3000cedc <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) {
3000cedc:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
3000cee0:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
char *_Objects_Get_name_as_string(                                    
  Objects_Id        id,                                               
  size_t            length,                                           
  char             *name                                              
)                                                                     
{                                                                     
3000cee4:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
3000cee8:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    return NULL;                                                      
3000ceec:	01a04005 	moveq	r4, r5                                      <== NOT EXECUTED
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
3000cef0:	1a000002 	bne	3000cf00 <_Objects_Get_name_as_string+0x24>   <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
      return name;                                                    
  }                                                                   
  return NULL;                  /* unreachable path */                
}                                                                     
3000cef4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cef8:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000cefc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    return NULL;                                                      
                                                                      
  if ( name == NULL )                                                 
3000cf00:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000cf04:	0afffffa 	beq	3000cef4 <_Objects_Get_name_as_string+0x18>   <== NOT EXECUTED
    return NULL;                                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
3000cf08:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000cf0c:	059f30ec 	ldreq	r3, [pc, #236]	; 3000d000 <_Objects_Get_name_as_string+0x124><== NOT EXECUTED
3000cf10:	11a07000 	movne	r7, r0                                      <== NOT EXECUTED
3000cf14:	05933004 	ldreq	r3, [r3, #4]                                <== NOT EXECUTED
3000cf18:	05937008 	ldreq	r7, [r3, #8]                                <== NOT EXECUTED
                                                                      
  information = _Objects_Get_information_id( tmpId );                 
3000cf1c:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000cf20:	ebffffb3 	bl	3000cdf4 <_Objects_Get_information_id>         <== NOT EXECUTED
  if ( !information )                                                 
3000cf24:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
    return NULL;                                                      
3000cf28:	01a04006 	moveq	r4, r6                                      <== NOT EXECUTED
    return NULL;                                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
                                                                      
  information = _Objects_Get_information_id( tmpId );                 
  if ( !information )                                                 
3000cf2c:	0afffff0 	beq	3000cef4 <_Objects_Get_name_as_string+0x18>   <== NOT EXECUTED
    return NULL;                                                      
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
3000cf30:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000cf34:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
3000cf38:	eb000032 	bl	3000d008 <_Objects_Get>                        <== NOT EXECUTED
  switch ( location ) {                                               
3000cf3c:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
3000cf40:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:                                              
      /* not supported */                                             
#endif                                                                
    case OBJECTS_ERROR:                                               
      return NULL;                                                    
3000cf44:	13a04000 	movne	r4, #0                                      <== NOT EXECUTED
  information = _Objects_Get_information_id( tmpId );                 
  if ( !information )                                                 
    return NULL;                                                      
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  switch ( location ) {                                               
3000cf48:	1affffe9 	bne	3000cef4 <_Objects_Get_name_as_string+0x18>   <== NOT EXECUTED
      return NULL;                                                    
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)             
        if ( information->is_string ) {                               
3000cf4c:	e5d62038 	ldrb	r2, [r6, #56]	; 0x38                         <== NOT EXECUTED
3000cf50:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000cf54:	0a00001c 	beq	3000cfcc <_Objects_Get_name_as_string+0xf0>   <== NOT EXECUTED
          s = the_object->name.name_p;                                
3000cf58:	e590c00c 	ldr	ip, [r0, #12]                                 <== NOT EXECUTED
        lname[ 4 ] = '\0';                                            
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
3000cf5c:	e35c0000 	cmp	ip, #0                                        <== NOT EXECUTED
3000cf60:	0a000024 	beq	3000cff8 <_Objects_Get_name_as_string+0x11c>  <== NOT EXECUTED
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
3000cf64:	e2555001 	subs	r5, r5, #1                                   <== NOT EXECUTED
3000cf68:	0a000022 	beq	3000cff8 <_Objects_Get_name_as_string+0x11c>  <== NOT EXECUTED
3000cf6c:	e5dc3000 	ldrb	r3, [ip]                                     <== NOT EXECUTED
3000cf70:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000cf74:	0a00001f 	beq	3000cff8 <_Objects_Get_name_as_string+0x11c>  <== NOT EXECUTED
3000cf78:	e59fe084 	ldr	lr, [pc, #132]	; 3000d004 <_Objects_Get_name_as_string+0x128><== NOT EXECUTED
3000cf7c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000cf80:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000cf84:	ea000002 	b	3000cf94 <_Objects_Get_name_as_string+0xb8>     <== NOT EXECUTED
3000cf88:	e5fc3001 	ldrb	r3, [ip, #1]!                                <== NOT EXECUTED
3000cf8c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000cf90:	0a000009 	beq	3000cfbc <_Objects_Get_name_as_string+0xe0>   <== NOT EXECUTED
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
3000cf94:	e59e0000 	ldr	r0, [lr]                                      <== NOT EXECUTED
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
3000cf98:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
3000cf9c:	e0800003 	add	r0, r0, r3                                    <== NOT EXECUTED
3000cfa0:	e5d00001 	ldrb	r0, [r0, #1]                                 <== NOT EXECUTED
3000cfa4:	e3100097 	tst	r0, #151	; 0x97                               <== NOT EXECUTED
3000cfa8:	03a0302a 	moveq	r3, #42	; 0x2a                              <== NOT EXECUTED
3000cfac:	e4c13001 	strb	r3, [r1], #1                                 <== NOT EXECUTED
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
3000cfb0:	e1520005 	cmp	r2, r5                                        <== NOT EXECUTED
3000cfb4:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000cfb8:	3afffff2 	bcc	3000cf88 <_Objects_Get_name_as_string+0xac>   <== NOT EXECUTED
          *d = (isprint((unsigned char)*s)) ? *s : '*';               
        }                                                             
      }                                                               
      *d = '\0';                                                      
3000cfbc:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000cfc0:	e5c03000 	strb	r3, [r0]                                     <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3000cfc4:	eb000349 	bl	3000dcf0 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return name;                                                    
3000cfc8:	eaffffc9 	b	3000cef4 <_Objects_Get_name_as_string+0x18>     <== NOT EXECUTED
        if ( information->is_string ) {                               
          s = the_object->name.name_p;                                
        } else                                                        
      #endif                                                          
      {                                                               
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
3000cfcc:	e590300c 	ldr	r3, [r0, #12]                                 <== NOT EXECUTED
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
        lname[ 4 ] = '\0';                                            
3000cfd0:	e5cd2004 	strb	r2, [sp, #4]                                 <== NOT EXECUTED
        } else                                                        
      #endif                                                          
      {                                                               
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
3000cfd4:	e1a00c23 	lsr	r0, r3, #24                                   <== NOT EXECUTED
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
3000cfd8:	e1a01823 	lsr	r1, r3, #16                                   <== NOT EXECUTED
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
3000cfdc:	e1a02423 	lsr	r2, r3, #8                                    <== NOT EXECUTED
        } else                                                        
      #endif                                                          
      {                                                               
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
3000cfe0:	e5cd0000 	strb	r0, [sp]                                     <== NOT EXECUTED
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
3000cfe4:	e5cd1001 	strb	r1, [sp, #1]                                 <== NOT EXECUTED
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
3000cfe8:	e5cd2002 	strb	r2, [sp, #2]                                 <== NOT EXECUTED
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
3000cfec:	e5cd3003 	strb	r3, [sp, #3]                                 <== NOT EXECUTED
        lname[ 4 ] = '\0';                                            
        s = lname;                                                    
3000cff0:	e1a0c00d 	mov	ip, sp                                        <== NOT EXECUTED
3000cff4:	eaffffda 	b	3000cf64 <_Objects_Get_name_as_string+0x88>     <== NOT EXECUTED
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
3000cff8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cffc:	eaffffee 	b	3000cfbc <_Objects_Get_name_as_string+0xe0>     <== NOT EXECUTED
                                                                      

3000b558 <_Objects_Get_next>: Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p ) {
3000b558:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
    Objects_Control *object;                                          
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
3000b55c:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
    Objects_Information *information,                                 
    Objects_Id           id,                                          
    Objects_Locations   *location_p,                                  
    Objects_Id          *next_id_p                                    
)                                                                     
{                                                                     
3000b560:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
3000b564:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
    Objects_Control *object;                                          
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
      return NULL;                                                    
3000b568:	01a00004 	moveq	r0, r4                                      <== NOT EXECUTED
)                                                                     
{                                                                     
    Objects_Control *object;                                          
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
3000b56c:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    <== NOT EXECUTED
      return NULL;                                                    
                                                                      
    if ( !location_p )                                                
3000b570:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
      return NULL;                                                    
3000b574:	01a00002 	moveq	r0, r2                                      <== NOT EXECUTED
    Objects_Id       next_id;                                         
                                                                      
    if ( !information )                                               
      return NULL;                                                    
                                                                      
    if ( !location_p )                                                
3000b578:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    <== NOT EXECUTED
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
3000b57c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b580:	0a000016 	beq	3000b5e0 <_Objects_Get_next+0x88>             <== NOT EXECUTED
      return NULL;                                                    
                                                                      
    if (_Objects_Get_index(id) == OBJECTS_ID_INITIAL_INDEX)           
3000b584:	e1b03801 	lsls	r3, r1, #16                                  <== NOT EXECUTED
        next_id = information->minimum_id;                            
3000b588:	05946008 	ldreq	r6, [r4, #8]                                <== NOT EXECUTED
    else                                                              
        next_id = id;                                                 
3000b58c:	11a06001 	movne	r6, r1                                      <== NOT EXECUTED
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
3000b590:	e1d4c1b0 	ldrh	ip, [r4, #16]                                <== NOT EXECUTED
3000b594:	e1a07806 	lsl	r7, r6, #16                                   <== NOT EXECUTED
3000b598:	e15c0827 	cmp	ip, r7, lsr #16                               <== NOT EXECUTED
            *location_p = OBJECTS_ERROR;                              
            goto final;                                               
        }                                                             
                                                                      
        /* try to grab one */                                         
        object = _Objects_Get(information, next_id, location_p);      
3000b59c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000b5a0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b5a4:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    else                                                              
        next_id = id;                                                 
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
3000b5a8:	3a000006 	bcc	3000b5c8 <_Objects_Get_next+0x70>             <== NOT EXECUTED
            *location_p = OBJECTS_ERROR;                              
            goto final;                                               
        }                                                             
                                                                      
        /* try to grab one */                                         
        object = _Objects_Get(information, next_id, location_p);      
3000b5ac:	eb00000d 	bl	3000b5e8 <_Objects_Get>                        <== NOT EXECUTED
                                                                      
        next_id++;                                                    
                                                                      
    } while (*location_p != OBJECTS_LOCAL);                           
3000b5b0:	e5953000 	ldr	r3, [r5]                                      <== NOT EXECUTED
        }                                                             
                                                                      
        /* try to grab one */                                         
        object = _Objects_Get(information, next_id, location_p);      
                                                                      
        next_id++;                                                    
3000b5b4:	e2866001 	add	r6, r6, #1                                    <== NOT EXECUTED
                                                                      
    } while (*location_p != OBJECTS_LOCAL);                           
3000b5b8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b5bc:	1afffff3 	bne	3000b590 <_Objects_Get_next+0x38>             <== NOT EXECUTED
                                                                      
    *next_id_p = next_id;                                             
3000b5c0:	e5886000 	str	r6, [r8]                                      <== NOT EXECUTED
    return object;                                                    
3000b5c4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
    do {                                                              
        /* walked off end of list? */                                 
        if (_Objects_Get_index(next_id) > information->maximum)       
        {                                                             
            *location_p = OBJECTS_ERROR;                              
3000b5c8:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000b5cc:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
                                                                      
    *next_id_p = next_id;                                             
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
3000b5d0:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
    return 0;                                                         
3000b5d4:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
                                                                      
    *next_id_p = next_id;                                             
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
3000b5d8:	e5883000 	str	r3, [r8]                                      <== NOT EXECUTED
    return 0;                                                         
3000b5dc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
    if ( !location_p )                                                
      return NULL;                                                    
                                                                      
    if ( !next_id_p )                                                 
      return NULL;                                                    
3000b5e0:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
    return object;                                                    
                                                                      
final:                                                                
    *next_id_p = OBJECTS_ID_FINAL;                                    
    return 0;                                                         
}                                                                     
3000b5e4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

3001cf14 <_Objects_Get_no_protection>: /* * You can't just extract the index portion or you can get tricked * by a value between 1 and maximum. */ index = id - information->minimum_id + 1;
3001cf14:	e590c008 	ldr	ip, [r0, #8]                                  
                                                                      
  if ( information->maximum >= index ) {                              
3001cf18:	e1d031b0 	ldrh	r3, [r0, #16]                                
                                                                      
  /*                                                                  
   * 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;                           
3001cf1c:	e26cc001 	rsb	ip, ip, #1                                    
3001cf20:	e08c1001 	add	r1, ip, r1                                    
                                                                      
  if ( information->maximum >= index ) {                              
3001cf24:	e1510003 	cmp	r1, r3                                        
3001cf28:	8a000005 	bhi	3001cf44 <_Objects_Get_no_protection+0x30>    
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3001cf2c:	e590301c 	ldr	r3, [r0, #28]                                 
3001cf30:	e7930101 	ldr	r0, [r3, r1, lsl #2]                          
3001cf34:	e3500000 	cmp	r0, #0                                        
      *location = OBJECTS_LOCAL;                                      
3001cf38:	13a03000 	movne	r3, #0                                      
3001cf3c:	15823000 	strne	r3, [r2]                                    
   * by a value between 1 and maximum.                                
   */                                                                 
  index = id - information->minimum_id + 1;                           
                                                                      
  if ( information->maximum >= index ) {                              
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
3001cf40:	112fff1e 	bxne	lr                                           
                                                                      
  /*                                                                  
   *  This isn't supported or required yet for Global objects so      
   *  if it isn't local, we don't find it.                            
   */                                                                 
  *location = OBJECTS_ERROR;                                          
3001cf44:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3001cf48:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
  return NULL;                                                        
3001cf4c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
}                                                                     
3001cf50:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000caac <_Objects_Id_to_name>: /* * Caller is trusted for name != NULL. */ tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
3000caac:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000cab0:	059f3084 	ldreq	r3, [pc, #132]	; 3000cb3c <_Objects_Id_to_name+0x90><== NOT EXECUTED
 */                                                                   
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
3000cab4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
3000cab8:	05933004 	ldreq	r3, [r3, #4]                                <== NOT EXECUTED
 */                                                                   
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
3000cabc:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Caller is trusted for name != NULL.                             
   */                                                                 
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
3000cac0:	05931008 	ldreq	r1, [r3, #8]                                <== NOT EXECUTED
3000cac4:	11a01000 	movne	r1, r0                                      <== NOT EXECUTED
3000cac8:	e1a03c21 	lsr	r3, r1, #24                                   <== NOT EXECUTED
3000cacc:	e2033007 	and	r3, r3, #7                                    <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
3000cad0:	e2432001 	sub	r2, r3, #1                                    <== NOT EXECUTED
3000cad4:	e3520002 	cmp	r2, #2                                        <== NOT EXECUTED
 */                                                                   
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
3000cad8:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000cadc:	8a00000a 	bhi	3000cb0c <_Objects_Id_to_name+0x60>           <== NOT EXECUTED
                                                                      
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
3000cae0:	e59f2058 	ldr	r2, [pc, #88]	; 3000cb40 <_Objects_Id_to_name+0x94><== NOT EXECUTED
3000cae4:	e7923103 	ldr	r3, [r2, r3, lsl #2]                          <== NOT EXECUTED
3000cae8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000caec:	0a000006 	beq	3000cb0c <_Objects_Id_to_name+0x60>           <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
3000caf0:	e1a02da1 	lsr	r2, r1, #27                                   <== NOT EXECUTED
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
3000caf4:	e7930102 	ldr	r0, [r3, r2, lsl #2]                          <== NOT EXECUTED
  if ( !information )                                                 
3000caf8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000cafc:	0a000002 	beq	3000cb0c <_Objects_Id_to_name+0x60>           <== NOT EXECUTED
    return OBJECTS_INVALID_ID;                                        
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    if ( information->is_string )                                     
3000cb00:	e5d04038 	ldrb	r4, [r0, #56]	; 0x38                         <== NOT EXECUTED
3000cb04:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000cb08:	0a000002 	beq	3000cb18 <_Objects_Id_to_name+0x6c>           <== NOT EXECUTED
  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;                                        
3000cb0c:	e3a00003 	mov	r0, #3                                        <== NOT EXECUTED
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
  _Thread_Enable_dispatch();                                          
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
}                                                                     
3000cb10:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000cb14:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
  #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 ); 
3000cb18:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000cb1c:	ebffffc2 	bl	3000ca2c <_Objects_Get>                        <== NOT EXECUTED
  if ( !the_object )                                                  
3000cb20:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000cb24:	0afffff8 	beq	3000cb0c <_Objects_Id_to_name+0x60>           <== NOT EXECUTED
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
3000cb28:	e590300c 	ldr	r3, [r0, #12]                                 <== NOT EXECUTED
3000cb2c:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
3000cb30:	eb00033f 	bl	3000d834 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
3000cb34:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cb38:	eafffff4 	b	3000cb10 <_Objects_Id_to_name+0x64>             <== NOT EXECUTED
                                                                      

30017a8c <_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 ) {
30017a8c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  Objects_Control           *the_object;                              
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
30017a90:	e2529000 	subs	r9, r2, #0                                   
Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(          
  Objects_Information *information,                                   
  const char          *name,                                          
  Objects_Id          *id                                             
)                                                                     
{                                                                     
30017a94:	e1a0a000 	mov	sl, r0                                        
30017a98:	e1a07001 	mov	r7, r1                                        
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
30017a9c:	03a00002 	moveq	r0, #2                                      
  Objects_Control           *the_object;                              
  uint32_t                   index;                                   
                                                                      
  /* ASSERT: information->is_string == true */                        
                                                                      
  if ( !id )                                                          
30017aa0:	08bd87f0 	popeq	{r4, r5, r6, r7, r8, r9, sl, pc}            
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( !name )                                                        
30017aa4:	e3510000 	cmp	r1, #0                                        
30017aa8:	0a000012 	beq	30017af8 <_Objects_Name_to_id_string+0x6c>    
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
30017aac:	e1da81b0 	ldrh	r8, [sl, #16]                                
30017ab0:	e3580000 	cmp	r8, #0                                        
30017ab4:	0a000011 	beq	30017b00 <_Objects_Name_to_id_string+0x74>    
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
30017ab8:	e59a601c 	ldr	r6, [sl, #28]                                 <== NOT EXECUTED
30017abc:	e3a04001 	mov	r4, #1                                        <== NOT EXECUTED
      the_object = information->local_table[ index ];                 
30017ac0:	e5b65004 	ldr	r5, [r6, #4]!                                 <== NOT EXECUTED
        continue;                                                     
                                                                      
      if ( !the_object->name.name_p )                                 
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
30017ac4:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
                                                                      
  if ( information->maximum != 0 ) {                                  
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
      the_object = information->local_table[ index ];                 
      if ( !the_object )                                              
30017ac8:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
30017acc:	0a000006 	beq	30017aec <_Objects_Name_to_id_string+0x60>    <== NOT EXECUTED
        continue;                                                     
                                                                      
      if ( !the_object->name.name_p )                                 
30017ad0:	e595300c 	ldr	r3, [r5, #12]                                 <== NOT EXECUTED
30017ad4:	e2531000 	subs	r1, r3, #0                                   <== NOT EXECUTED
30017ad8:	0a000003 	beq	30017aec <_Objects_Name_to_id_string+0x60>    <== NOT EXECUTED
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
30017adc:	e1da23ba 	ldrh	r2, [sl, #58]	; 0x3a                         <== NOT EXECUTED
30017ae0:	eb000f9b 	bl	3001b954 <strncmp>                             <== NOT EXECUTED
30017ae4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30017ae8:	0a000006 	beq	30017b08 <_Objects_Name_to_id_string+0x7c>    <== NOT EXECUTED
  if ( !name )                                                        
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  if ( information->maximum != 0 ) {                                  
                                                                      
    for ( index = 1; index <= information->maximum; index++ ) {       
30017aec:	e2844001 	add	r4, r4, #1                                    <== NOT EXECUTED
30017af0:	e1540008 	cmp	r4, r8                                        <== NOT EXECUTED
30017af4:	9afffff1 	bls	30017ac0 <_Objects_Name_to_id_string+0x34>    <== NOT EXECUTED
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( !name )                                                        
    return OBJECTS_INVALID_NAME;                                      
30017af8:	e3a00001 	mov	r0, #1                                        
30017afc:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  return OBJECTS_INVALID_NAME;                                        
30017b00:	e3a00001 	mov	r0, #1                                        
}                                                                     
30017b04:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      
      if ( !the_object->name.name_p )                                 
        continue;                                                     
                                                                      
      if (!strncmp( name, the_object->name.name_p, information->name_length)) {
        *id = the_object->id;                                         
30017b08:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
30017b0c:	e5893000 	str	r3, [r9]                                      <== NOT EXECUTED
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
30017b10:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      

3000b514 <_Objects_Name_to_id_u32>: Objects_Name name_for_mp; #endif /* ASSERT: information->is_string == false */ if ( !id )
3000b514:	e3530000 	cmp	r3, #0                                        
  Objects_Information *information,                                   
  uint32_t             name,                                          
  uint32_t             node,                                          
  Objects_Id          *id                                             
)                                                                     
{                                                                     
3000b518:	e92d0030 	push	{r4, r5}                                     
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
    return OBJECTS_INVALID_ADDRESS;                                   
3000b51c:	03a00002 	moveq	r0, #2                                      
  Objects_Name               name_for_mp;                             
#endif                                                                
                                                                      
  /* ASSERT: information->is_string == false */                       
                                                                      
  if ( !id )                                                          
3000b520:	0a000005 	beq	3000b53c <_Objects_Name_to_id_u32+0x28>       
    return OBJECTS_INVALID_ADDRESS;                                   
                                                                      
  if ( name == 0 )                                                    
3000b524:	e3510000 	cmp	r1, #0                                        
3000b528:	0a000002 	beq	3000b538 <_Objects_Name_to_id_u32+0x24>       
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
3000b52c:	e1d051b0 	ldrh	r5, [r0, #16]                                
3000b530:	e3550000 	cmp	r5, #0                                        
3000b534:	1a000002 	bne	3000b544 <_Objects_Name_to_id_u32+0x30>       
    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;                                        
3000b538:	e3a00001 	mov	r0, #1                                        
#endif                                                                
}                                                                     
3000b53c:	e8bd0030 	pop	{r4, r5}                                      
3000b540:	e12fff1e 	bx	lr                                             
  if ( name == 0 )                                                    
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
3000b544:	e3720106 	cmn	r2, #-2147483647	; 0x80000001                 
3000b548:	13520000 	cmpne	r2, #0                                      
3000b54c:	1a00000b 	bne	3000b580 <_Objects_Name_to_id_u32+0x6c>       
       _Objects_Is_local_node( node )                                 
      ))                                                              
   search_local_node = true;                                          
                                                                      
  if ( search_local_node ) {                                          
    for ( index = 1; index <= information->maximum; index++ ) {       
3000b550:	e590c01c 	ldr	ip, [r0, #28]                                 
3000b554:	e3a02001 	mov	r2, #1                                        
      the_object = information->local_table[ index ];                 
3000b558:	e5bc0004 	ldr	r0, [ip, #4]!                                 
       _Objects_Is_local_node( node )                                 
      ))                                                              
   search_local_node = true;                                          
                                                                      
  if ( search_local_node ) {                                          
    for ( index = 1; index <= information->maximum; index++ ) {       
3000b55c:	e2822001 	add	r2, r2, #1                                    
      the_object = information->local_table[ index ];                 
      if ( !the_object )                                              
3000b560:	e3500000 	cmp	r0, #0                                        
3000b564:	0a000002 	beq	3000b574 <_Objects_Name_to_id_u32+0x60>       
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
3000b568:	e590400c 	ldr	r4, [r0, #12]                                 
3000b56c:	e1540001 	cmp	r4, r1                                        
3000b570:	0a000005 	beq	3000b58c <_Objects_Name_to_id_u32+0x78>       
       _Objects_Is_local_node( node )                                 
      ))                                                              
   search_local_node = true;                                          
                                                                      
  if ( search_local_node ) {                                          
    for ( index = 1; index <= information->maximum; index++ ) {       
3000b574:	e1550002 	cmp	r5, r2                                        
3000b578:	2afffff6 	bcs	3000b558 <_Objects_Name_to_id_u32+0x44>       
3000b57c:	eaffffed 	b	3000b538 <_Objects_Name_to_id_u32+0x24>         <== NOT EXECUTED
                                                                      
  search_local_node = false;                                          
                                                                      
  if ( information->maximum != 0 &&                                   
      (node == OBJECTS_SEARCH_ALL_NODES ||                            
       node == OBJECTS_SEARCH_LOCAL_NODE ||                           
3000b580:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
3000b584:	1affffeb 	bne	3000b538 <_Objects_Name_to_id_u32+0x24>       <== NOT EXECUTED
3000b588:	eafffff0 	b	3000b550 <_Objects_Name_to_id_u32+0x3c>         <== NOT EXECUTED
      the_object = information->local_table[ index ];                 
      if ( !the_object )                                              
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
        *id = the_object->id;                                         
3000b58c:	e5902008 	ldr	r2, [r0, #8]                                  
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
3000b590:	e3a00000 	mov	r0, #0                                        
      the_object = information->local_table[ index ];                 
      if ( !the_object )                                              
        continue;                                                     
                                                                      
      if ( name == the_object->name.name_u32 ) {                      
        *id = the_object->id;                                         
3000b594:	e5832000 	str	r2, [r3]                                      
        return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                  
3000b598:	eaffffe7 	b	3000b53c <_Objects_Name_to_id_u32+0x28>         
                                                                      

3000bc2c <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) {
3000bc2c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
3000bc30:	e1a05000 	mov	r5, r0                                        
3000bc34:	e1a06001 	mov	r6, r1                                        
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
3000bc38:	e1a00002 	mov	r0, r2                                        
3000bc3c:	e1d513ba 	ldrh	r1, [r5, #58]	; 0x3a                         
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
3000bc40:	e1a08002 	mov	r8, r2                                        
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
3000bc44:	eb002243 	bl	30014558 <strnlen>                             
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
3000bc48:	e5d53038 	ldrb	r3, [r5, #56]	; 0x38                         
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length );                 
3000bc4c:	e1a04000 	mov	r4, r0                                        
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
3000bc50:	e3530000 	cmp	r3, #0                                        
3000bc54:	1a000017 	bne	3000bcb8 <_Objects_Set_name+0x8c>             
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
3000bc58:	e5d82000 	ldrb	r2, [r8]                                     <== NOT EXECUTED
3000bc5c:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
3000bc60:	e1a02c02 	lsl	r2, r2, #24                                   <== NOT EXECUTED
3000bc64:	9a00000c 	bls	3000bc9c <_Objects_Set_name+0x70>             <== NOT EXECUTED
3000bc68:	e5d83001 	ldrb	r3, [r8, #1]                                 <== NOT EXECUTED
3000bc6c:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000bc70:	e1822803 	orr	r2, r2, r3, lsl #16                           <== NOT EXECUTED
3000bc74:	0a000009 	beq	3000bca0 <_Objects_Set_name+0x74>             <== NOT EXECUTED
3000bc78:	e5d83002 	ldrb	r3, [r8, #2]                                 <== NOT EXECUTED
3000bc7c:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
3000bc80:	e1822403 	orr	r2, r2, r3, lsl #8                            <== NOT EXECUTED
3000bc84:	15d83003 	ldrbne	r3, [r8, #3]                               <== NOT EXECUTED
3000bc88:	03a03020 	moveq	r3, #32                                     <== NOT EXECUTED
3000bc8c:	e1823003 	orr	r3, r2, r3                                    <== NOT EXECUTED
3000bc90:	e586300c 	str	r3, [r6, #12]                                 <== NOT EXECUTED
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
3000bc94:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000bc98:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
  } else                                                              
#endif                                                                
  {                                                                   
    the_object->name.name_u32 =  _Objects_Build_name(                 
3000bc9c:	e3822602 	orr	r2, r2, #2097152	; 0x200000                   <== NOT EXECUTED
3000bca0:	e3822a02 	orr	r2, r2, #8192	; 0x2000                        <== NOT EXECUTED
3000bca4:	e3a03020 	mov	r3, #32                                       <== NOT EXECUTED
3000bca8:	e1823003 	orr	r3, r2, r3                                    <== NOT EXECUTED
3000bcac:	e586300c 	str	r3, [r6, #12]                                 <== NOT EXECUTED
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
3000bcb0:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000bcb4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
#if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                   
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
3000bcb8:	e2800001 	add	r0, r0, #1                                    
3000bcbc:	eb00075e 	bl	3000da3c <_Workspace_Allocate>                 
    if ( !d )                                                         
3000bcc0:	e2505000 	subs	r5, r0, #0                                   
3000bcc4:	0a00000b 	beq	3000bcf8 <_Objects_Set_name+0xcc>             
      return false;                                                   
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
3000bcc8:	e596000c 	ldr	r0, [r6, #12]                                 <== NOT EXECUTED
    the_object->name.name_p = NULL;                                   
3000bccc:	e3a07000 	mov	r7, #0                                        <== NOT EXECUTED
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
    if ( !d )                                                         
      return false;                                                   
                                                                      
    _Workspace_Free( (void *)the_object->name.name_p );               
3000bcd0:	eb00075f 	bl	3000da54 <_Workspace_Free>                     <== NOT EXECUTED
    the_object->name.name_p = NULL;                                   
3000bcd4:	e586700c 	str	r7, [r6, #12]                                 <== NOT EXECUTED
                                                                      
    strncpy( d, name, length );                                       
3000bcd8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000bcdc:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000bce0:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000bce4:	eb0021e0 	bl	3001446c <strncpy>                             <== NOT EXECUTED
    d[length] = '\0';                                                 
3000bce8:	e7c57004 	strb	r7, [r5, r4]                                 <== NOT EXECUTED
      ((3 <  length) ? s[ 3 ] : ' ')                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
3000bcec:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
    _Workspace_Free( (void *)the_object->name.name_p );               
    the_object->name.name_p = NULL;                                   
                                                                      
    strncpy( d, name, length );                                       
    d[length] = '\0';                                                 
    the_object->name.name_p = d;                                      
3000bcf0:	e586500c 	str	r5, [r6, #12]                                 <== NOT EXECUTED
3000bcf4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
  if ( information->is_string ) {                                     
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length + 1 );                            
    if ( !d )                                                         
      return false;                                                   
3000bcf8:	e1a00005 	mov	r0, r5                                        
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
3000bcfc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

3000b59c <_Objects_Shrink_information>: */ void _Objects_Shrink_information( Objects_Information *information ) {
3000b59c:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
                                                                      
  /*                                                                  
   * Search the list to find block or chunk with all objects inactive.
   */                                                                 
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
3000b5a0:	e1d040b8 	ldrh	r4, [r0, #8]                                 
  block_count = (information->maximum - index_base) /                 
3000b5a4:	e1d051b4 	ldrh	r5, [r0, #20]                                
 */                                                                   
                                                                      
void _Objects_Shrink_information(                                     
  Objects_Information *information                                    
)                                                                     
{                                                                     
3000b5a8:	e1a06000 	mov	r6, r0                                        
  /*                                                                  
   * Search the list to find block or chunk with all objects inactive.
   */                                                                 
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
3000b5ac:	e1d001b0 	ldrh	r0, [r0, #16]                                
3000b5b0:	e1a01005 	mov	r1, r5                                        
3000b5b4:	e0640000 	rsb	r0, r4, r0                                    
3000b5b8:	eb002871 	bl	30015784 <__aeabi_uidiv>                       
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
3000b5bc:	e3500000 	cmp	r0, #0                                        
3000b5c0:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    if ( information->inactive_per_block[ block ] ==                  
3000b5c4:	e5962030 	ldr	r2, [r6, #48]	; 0x30                          
3000b5c8:	e5923000 	ldr	r3, [r2]                                      
3000b5cc:	e1550003 	cmp	r5, r3                                        
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
3000b5d0:	13a03000 	movne	r3, #0                                      
    if ( information->inactive_per_block[ block ] ==                  
3000b5d4:	1a000005 	bne	3000b5f0 <_Objects_Shrink_information+0x54>   
3000b5d8:	ea000008 	b	3000b600 <_Objects_Shrink_information+0x64>     <== NOT EXECUTED
3000b5dc:	e5b21004 	ldr	r1, [r2, #4]!                                 
      information->inactive -= information->allocation_size;          
                                                                      
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
3000b5e0:	e0844005 	add	r4, r4, r5                                    
  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 ] ==                  
3000b5e4:	e1550001 	cmp	r5, r1                                        
      information->inactive -= information->allocation_size;          
                                                                      
      return;                                                         
    }                                                                 
                                                                      
    index_base += information->allocation_size;                       
3000b5e8:	e1a07103 	lsl	r7, r3, #2                                    
  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 ] ==                  
3000b5ec:	0a000004 	beq	3000b604 <_Objects_Shrink_information+0x68>   
                                                                      
  index_base = _Objects_Get_index( information->minimum_id );         
  block_count = (information->maximum - index_base) /                 
                 information->allocation_size;                        
                                                                      
  for ( block = 0; block < block_count; block++ ) {                   
3000b5f0:	e2833001 	add	r3, r3, #1                                    
3000b5f4:	e1500003 	cmp	r0, r3                                        
3000b5f8:	8afffff7 	bhi	3000b5dc <_Objects_Shrink_information+0x40>   
3000b5fc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
    if ( information->inactive_per_block[ block ] ==                  
3000b600:	e3a07000 	mov	r7, #0                                        <== NOT EXECUTED
         information->allocation_size ) {                             
                                                                      
      /*                                                              
       *  Assume the Inactive chain is never empty at this point      
       */                                                             
      the_object = (Objects_Control *) _Chain_First( &information->Inactive );
3000b604:	e5960020 	ldr	r0, [r6, #32]                                 
3000b608:	ea000002 	b	3000b618 <_Objects_Shrink_information+0x7c>     
         if ((index >= index_base) &&                                 
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
         }                                                            
       }                                                              
       while ( the_object );                                          
3000b60c:	e3550000 	cmp	r5, #0                                        
3000b610:	0a00000b 	beq	3000b644 <_Objects_Shrink_information+0xa8>   
         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;      
3000b614:	e1a00005 	mov	r0, r5                                        
       *  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 );                
3000b618:	e1d030b8 	ldrh	r3, [r0, #8]                                 
         /*                                                           
          *  Get the next node before the node is extracted           
          */                                                          
         extract_me = the_object;                                     
         the_object = (Objects_Control *) the_object->Node.next;      
3000b61c:	e5905000 	ldr	r5, [r0]                                      
         if ((index >= index_base) &&                                 
3000b620:	e1530004 	cmp	r3, r4                                        
3000b624:	3afffff8 	bcc	3000b60c <_Objects_Shrink_information+0x70>   
             (index < (index_base + information->allocation_size))) { 
3000b628:	e1d621b4 	ldrh	r2, [r6, #20]                                
3000b62c:	e0842002 	add	r2, r4, r2                                    
         /*                                                           
          *  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) &&                                 
3000b630:	e1530002 	cmp	r3, r2                                        
3000b634:	2afffff4 	bcs	3000b60c <_Objects_Shrink_information+0x70>   
             (index < (index_base + information->allocation_size))) { 
           _Chain_Extract( &extract_me->Node );                       
3000b638:	ebfffbc3 	bl	3000a54c <_Chain_Extract>                      
         }                                                            
       }                                                              
       while ( the_object );                                          
3000b63c:	e3550000 	cmp	r5, #0                                        
3000b640:	1afffff3 	bne	3000b614 <_Objects_Shrink_information+0x78>   
      /*                                                              
       *  Free the memory and reset the structures in the object' information
       */                                                             
                                                                      
      _Workspace_Free( information->object_blocks[ block ] );         
3000b644:	e5963034 	ldr	r3, [r6, #52]	; 0x34                          
3000b648:	e7930007 	ldr	r0, [r3, r7]                                  
3000b64c:	eb000727 	bl	3000d2f0 <_Workspace_Free>                     
      information->object_blocks[ block ] = NULL;                     
      information->inactive_per_block[ block ] = 0;                   
                                                                      
      information->inactive -= information->allocation_size;          
3000b650:	e1d602bc 	ldrh	r0, [r6, #44]	; 0x2c                         
3000b654:	e1d631b4 	ldrh	r3, [r6, #20]                                
      /*                                                              
       *  Free the memory and reset the structures in the object' information
       */                                                             
                                                                      
      _Workspace_Free( information->object_blocks[ block ] );         
      information->object_blocks[ block ] = NULL;                     
3000b658:	e5961034 	ldr	r1, [r6, #52]	; 0x34                          
      information->inactive_per_block[ block ] = 0;                   
3000b65c:	e5962030 	ldr	r2, [r6, #48]	; 0x30                          
                                                                      
      information->inactive -= information->allocation_size;          
3000b660:	e0633000 	rsb	r3, r3, r0                                    
      /*                                                              
       *  Free the memory and reset the structures in the object' information
       */                                                             
                                                                      
      _Workspace_Free( information->object_blocks[ block ] );         
      information->object_blocks[ block ] = NULL;                     
3000b664:	e7815007 	str	r5, [r1, r7]                                  
      information->inactive_per_block[ block ] = 0;                   
3000b668:	e7825007 	str	r5, [r2, r7]                                  
                                                                      
      information->inactive -= information->allocation_size;          
3000b66c:	e1c632bc 	strh	r3, [r6, #44]	; 0x2c                         
                                                                      
      return;                                                         
3000b670:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

3000c4ac <_POSIX_Absolute_timeout_to_ticks>: */ POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks( const struct timespec *abstime, Watchdog_Interval *ticks_out ) {
3000c4ac:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
                                                                      
                                                                      
  /*                                                                  
   *  Make sure there is always a value returned.                     
   */                                                                 
  *ticks_out = 0;                                                     
3000c4b0:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
 */                                                                   
POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks(
  const struct timespec *abstime,                                     
  Watchdog_Interval     *ticks_out                                    
)                                                                     
{                                                                     
3000c4b4:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
                                                                      
                                                                      
  /*                                                                  
   *  Make sure there is always a value returned.                     
   */                                                                 
  *ticks_out = 0;                                                     
3000c4b8:	e5813000 	str	r3, [r1]                                      <== NOT EXECUTED
 */                                                                   
POSIX_Absolute_timeout_conversion_results_t _POSIX_Absolute_timeout_to_ticks(
  const struct timespec *abstime,                                     
  Watchdog_Interval     *ticks_out                                    
)                                                                     
{                                                                     
3000c4bc:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000c4c0:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  *ticks_out = 0;                                                     
                                                                      
  /*                                                                  
   *  Is the absolute time even valid?                                
   */                                                                 
  if ( !_Timespec_Is_valid(abstime) )                                 
3000c4c4:	eb000ff6 	bl	300104a4 <_Timespec_Is_valid>                  <== NOT EXECUTED
3000c4c8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000c4cc:	1a000001 	bne	3000c4d8 <_POSIX_Absolute_timeout_to_ticks+0x2c><== NOT EXECUTED
  /*                                                                  
   *  This is the case we were expecting and it took this long to     
   *  get here.                                                       
   */                                                                 
  return POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE;                         
}                                                                     
3000c4d0:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
3000c4d4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
    return POSIX_ABSOLUTE_TIMEOUT_INVALID;                            
                                                                      
  /*                                                                  
   *  Is the absolute time in the past?                               
   */                                                                 
  _TOD_Get( ¤t_time );                                          
3000c4d8:	e28d7008 	add	r7, sp, #8                                    <== NOT EXECUTED
3000c4dc:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000c4e0:	eb00072c 	bl	3000e198 <_TOD_Get>                            <== NOT EXECUTED
                                                                      
  if ( _Timespec_Less_than( abstime, ¤t_time ) )                
3000c4e4:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000c4e8:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000c4ec:	eb000ffd 	bl	300104e8 <_Timespec_Less_than>                 <== NOT EXECUTED
3000c4f0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
3000c4f4:	13a00001 	movne	r0, #1                                      <== NOT EXECUTED
  /*                                                                  
   *  Is the absolute time in the past?                               
   */                                                                 
  _TOD_Get( ¤t_time );                                          
                                                                      
  if ( _Timespec_Less_than( abstime, ¤t_time ) )                
3000c4f8:	1afffff4 	bne	3000c4d0 <_POSIX_Absolute_timeout_to_ticks+0x24><== NOT EXECUTED
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
                                                                      
  /*                                                                  
   *  How long until the requested absolute time?                     
   */                                                                 
  _Timespec_Subtract( ¤t_time, abstime, &difference );          
3000c4fc:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000c500:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000c504:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000c508:	eb001004 	bl	30010520 <_Timespec_Subtract>                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Internally the SuperCore uses ticks, so convert to them.        
   */                                                                 
  *ticks_out = _Timespec_To_ticks( &difference );                     
3000c50c:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000c510:	eb001018 	bl	30010578 <_Timespec_To_ticks>                  <== NOT EXECUTED
  /*                                                                  
   *  If the difference was 0, then the future is now.  It is so bright
   *  we better wear shades.                                          
   */                                                                 
  if ( !*ticks_out )                                                  
    return POSIX_ABSOLUTE_TIMEOUT_IS_NOW;                             
3000c514:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
  _Timespec_Subtract( ¤t_time, abstime, &difference );          
                                                                      
  /*                                                                  
   *  Internally the SuperCore uses ticks, so convert to them.        
   */                                                                 
  *ticks_out = _Timespec_To_ticks( &difference );                     
3000c518:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
    return POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST;                         
                                                                      
  /*                                                                  
   *  How long until the requested absolute time?                     
   */                                                                 
  _Timespec_Subtract( ¤t_time, abstime, &difference );          
3000c51c:	e1a0500d 	mov	r5, sp                                        <== NOT EXECUTED
  /*                                                                  
   *  If the difference was 0, then the future is now.  It is so bright
   *  we better wear shades.                                          
   */                                                                 
  if ( !*ticks_out )                                                  
    return POSIX_ABSOLUTE_TIMEOUT_IS_NOW;                             
3000c520:	13a00003 	movne	r0, #3                                      <== NOT EXECUTED
3000c524:	03a00002 	moveq	r0, #2                                      <== NOT EXECUTED
3000c528:	eaffffe8 	b	3000c4d0 <_POSIX_Absolute_timeout_to_ticks+0x24><== NOT EXECUTED
                                                                      

30010498 <_POSIX_Barrier_Translate_core_barrier_return_code>: */ #if defined(RTEMS_DEBUG) if ( the_barrier_status > CORE_BARRIER_STATUS_LAST ) return EINVAL; #endif return _POSIX_Barrier_Return_codes[the_barrier_status];
30010498:	e59f3004 	ldr	r3, [pc, #4]	; 300104a4 <_POSIX_Barrier_Translate_core_barrier_return_code+0xc><== NOT EXECUTED
}                                                                     
3001049c:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
300104a0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000accc <_POSIX_Condition_variables_Wait_support>: pthread_cond_t *cond, pthread_mutex_t *mutex, Watchdog_Interval timeout, bool already_timedout ) {
3000accc:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
3000acd0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000acd4:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000acd8:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  register POSIX_Condition_variables_Control *the_cond;               
  Objects_Locations                           location;               
  int                                         status;                 
  int                                         mutex_status;           
                                                                      
  if ( !_POSIX_Mutex_Get( mutex, &location ) ) {                      
3000acdc:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000ace0:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
  pthread_cond_t            *cond,                                    
  pthread_mutex_t           *mutex,                                   
  Watchdog_Interval          timeout,                                 
  bool                       already_timedout                         
)                                                                     
{                                                                     
3000ace4:	e1a08002 	mov	r8, r2                                        <== NOT EXECUTED
3000ace8:	e20370ff 	and	r7, r3, #255	; 0xff                           <== NOT EXECUTED
  register POSIX_Condition_variables_Control *the_cond;               
  Objects_Locations                           location;               
  int                                         status;                 
  int                                         mutex_status;           
                                                                      
  if ( !_POSIX_Mutex_Get( mutex, &location ) ) {                      
3000acec:	eb000059 	bl	3000ae58 <_POSIX_Mutex_Get>                    <== NOT EXECUTED
3000acf0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000acf4:	0a00000a 	beq	3000ad24 <_POSIX_Condition_variables_Wait_support+0x58><== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000acf8:	e59f30d4 	ldr	r3, [pc, #212]	; 3000add4 <_POSIX_Condition_variables_Wait_support+0x108><== NOT EXECUTED
     return EINVAL;                                                   
  }                                                                   
                                                                      
  _Thread_Unnest_dispatch();                                          
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
3000acfc:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000ad00:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000ad04:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000ad08:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000ad0c:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
3000ad10:	ebffff74 	bl	3000aae8 <_POSIX_Condition_variables_Get>      <== NOT EXECUTED
  switch ( location ) {                                               
3000ad14:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
     return EINVAL;                                                   
  }                                                                   
                                                                      
  _Thread_Unnest_dispatch();                                          
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
3000ad18:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
3000ad1c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ad20:	0a000003 	beq	3000ad34 <_POSIX_Condition_variables_Wait_support+0x68><== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000ad24:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
}                                                                     
3000ad28:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000ad2c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000ad30:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( the_cond->Mutex && ( the_cond->Mutex != *mutex ) ) {       
3000ad34:	e5903014 	ldr	r3, [r0, #20]                                 <== NOT EXECUTED
3000ad38:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ad3c:	0a000005 	beq	3000ad58 <_POSIX_Condition_variables_Wait_support+0x8c><== NOT EXECUTED
3000ad40:	e5942000 	ldr	r2, [r4]                                      <== NOT EXECUTED
3000ad44:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
3000ad48:	0a000002 	beq	3000ad58 <_POSIX_Condition_variables_Wait_support+0x8c><== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
3000ad4c:	eb000d8e 	bl	3000e38c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EINVAL;                                                
3000ad50:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
3000ad54:	eafffff3 	b	3000ad28 <_POSIX_Condition_variables_Wait_support+0x5c><== NOT EXECUTED
      }                                                               
                                                                      
      (void) pthread_mutex_unlock( mutex );                           
3000ad58:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ad5c:	eb0000e3 	bl	3000b0f0 <pthread_mutex_unlock>                <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
*/                                                                    
                                                                      
      if ( !already_timedout ) {                                      
3000ad60:	e3570000 	cmp	r7, #0                                        <== NOT EXECUTED
3000ad64:	0a000006 	beq	3000ad84 <_POSIX_Condition_variables_Wait_support+0xb8><== NOT EXECUTED
        status = _Thread_Executing->Wait.return_code;                 
        if ( status == EINTR )                                        
          status = 0;                                                 
                                                                      
      } else {                                                        
        _Thread_Enable_dispatch();                                    
3000ad68:	eb000d87 	bl	3000e38c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        status = ETIMEDOUT;                                           
3000ad6c:	e3a05074 	mov	r5, #116	; 0x74                               <== NOT EXECUTED
                                                                      
      /*                                                              
       *  When we get here the dispatch disable level is 0.           
       */                                                             
                                                                      
      mutex_status = pthread_mutex_lock( mutex );                     
3000ad70:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ad74:	eb0000bc 	bl	3000b06c <pthread_mutex_lock>                  <== NOT EXECUTED
      if ( mutex_status )                                             
        return EINVAL;                                                
3000ad78:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ad7c:	13a05016 	movne	r5, #22                                     <== NOT EXECUTED
3000ad80:	eaffffe8 	b	3000ad28 <_POSIX_Condition_variables_Wait_support+0x5c><== NOT EXECUTED
                                                                      
      if ( !already_timedout ) {                                      
        the_cond->Mutex = *mutex;                                     
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
3000ad84:	e59f504c 	ldr	r5, [pc, #76]	; 3000add8 <_POSIX_Condition_variables_Wait_support+0x10c><== NOT EXECUTED
        return EINVAL;                                                
      }                                                               
*/                                                                    
                                                                      
      if ( !already_timedout ) {                                      
        the_cond->Mutex = *mutex;                                     
3000ad88:	e5942000 	ldr	r2, [r4]                                      <== NOT EXECUTED
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
3000ad8c:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
        return EINVAL;                                                
      }                                                               
*/                                                                    
                                                                      
      if ( !already_timedout ) {                                      
        the_cond->Mutex = *mutex;                                     
3000ad90:	e58a2014 	str	r2, [sl, #20]                                 <== NOT EXECUTED
                                                                      
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;
3000ad94:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000ad98:	e58a2048 	str	r2, [sl, #72]	; 0x48                          <== NOT EXECUTED
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
3000ad9c:	e5837034 	str	r7, [r3, #52]	; 0x34                          <== NOT EXECUTED
        _Thread_Executing->Wait.queue       = &the_cond->Wait_queue;  
        _Thread_Executing->Wait.id          = *cond;                  
3000ada0:	e5962000 	ldr	r2, [r6]                                      <== NOT EXECUTED
      if ( !already_timedout ) {                                      
        the_cond->Mutex = *mutex;                                     
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
        _Thread_Executing->Wait.queue       = &the_cond->Wait_queue;  
3000ada4:	e28a0018 	add	r0, sl, #24                                   <== NOT EXECUTED
        _Thread_Executing->Wait.id          = *cond;                  
3000ada8:	e5832020 	str	r2, [r3, #32]                                 <== NOT EXECUTED
      if ( !already_timedout ) {                                      
        the_cond->Mutex = *mutex;                                     
                                                                      
        _Thread_queue_Enter_critical_section( &the_cond->Wait_queue );
        _Thread_Executing->Wait.return_code = 0;                      
        _Thread_Executing->Wait.queue       = &the_cond->Wait_queue;  
3000adac:	e5830044 	str	r0, [r3, #68]	; 0x44                          <== NOT EXECUTED
        _Thread_Executing->Wait.id          = *cond;                  
                                                                      
        _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout );      
3000adb0:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000adb4:	e59f2020 	ldr	r2, [pc, #32]	; 3000addc <_POSIX_Condition_variables_Wait_support+0x110><== NOT EXECUTED
3000adb8:	eb000e9f 	bl	3000e83c <_Thread_queue_Enqueue_with_handler>  <== NOT EXECUTED
                                                                      
        _Thread_Enable_dispatch();                                    
3000adbc:	eb000d72 	bl	3000e38c <_Thread_Enable_dispatch>             <== NOT EXECUTED
         *  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;                 
3000adc0:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
3000adc4:	e5935034 	ldr	r5, [r3, #52]	; 0x34                          <== NOT EXECUTED
        if ( status == EINTR )                                        
          status = 0;                                                 
3000adc8:	e3550004 	cmp	r5, #4                                        <== NOT EXECUTED
3000adcc:	03a05000 	moveq	r5, #0                                      <== NOT EXECUTED
3000add0:	eaffffe6 	b	3000ad70 <_POSIX_Condition_variables_Wait_support+0xa4><== NOT EXECUTED
                                                                      

30011808 <_POSIX_Keys_Run_destructors>: */ void _POSIX_Keys_Run_destructors( Thread_Control *thread ) {
30011808:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  Objects_Maximum thread_index = _Objects_Get_index( thread->Object.id );
3001180c:	e5907008 	ldr	r7, [r0, #8]                                  
30011810:	e59f5084 	ldr	r5, [pc, #132]	; 3001189c <_POSIX_Keys_Run_destructors+0x94>
30011814:	e1a0ac27 	lsr	sl, r7, #24                                   
    for ( index = 1 ; index <= max ; ++index ) {                      
      POSIX_Keys_Control *key = (POSIX_Keys_Control *)                
        _POSIX_Keys_Information.local_table [ index ];                
                                                                      
      if ( key != NULL && key->destructor != NULL ) {                 
        void *value = key->Values [ thread_api ][ thread_index ];     
30011818:	e1a07807 	lsl	r7, r7, #16                                   
3001181c:	e20aa007 	and	sl, sl, #7                                    
30011820:	e1a07727 	lsr	r7, r7, #14                                   
                                                                      
        if ( value != NULL ) {                                        
          key->Values [ thread_api ][ thread_index ] = NULL;          
30011824:	e3a08000 	mov	r8, #0                                        
   *                                                                  
   *  Reference: 17.1.1.2 P1003.1c/Draft 10, p. 163, line 99.         
   */                                                                 
  while ( !done ) {                                                   
    Objects_Maximum index = 0;                                        
    Objects_Maximum max = _POSIX_Keys_Information.maximum;            
30011828:	e1d541b0 	ldrh	r4, [r5, #16]                                
                                                                      
    done = true;                                                      
                                                                      
    for ( index = 1 ; index <= max ; ++index ) {                      
3001182c:	e3540000 	cmp	r4, #0                                        
30011830:	08bd85f0 	popeq	{r4, r5, r6, r7, r8, sl, pc}                
30011834:	e3a06001 	mov	r6, #1                                        <== NOT EXECUTED
30011838:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
      POSIX_Keys_Control *key = (POSIX_Keys_Control *)                
        _POSIX_Keys_Information.local_table [ index ];                
3001183c:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
                                                                      
      if ( key != NULL && key->destructor != NULL ) {                 
        void *value = key->Values [ thread_api ][ thread_index ];     
30011840:	e28a0005 	add	r0, sl, #5                                    <== NOT EXECUTED
    Objects_Maximum max = _POSIX_Keys_Information.maximum;            
                                                                      
    done = true;                                                      
                                                                      
    for ( index = 1 ; index <= max ; ++index ) {                      
      POSIX_Keys_Control *key = (POSIX_Keys_Control *)                
30011844:	e7932106 	ldr	r2, [r3, r6, lsl #2]                          <== NOT EXECUTED
        _POSIX_Keys_Information.local_table [ index ];                
                                                                      
      if ( key != NULL && key->destructor != NULL ) {                 
30011848:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3001184c:	0a00000a 	beq	3001187c <_POSIX_Keys_Run_destructors+0x74>   <== NOT EXECUTED
30011850:	e5923010 	ldr	r3, [r2, #16]                                 <== NOT EXECUTED
30011854:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30011858:	0a000007 	beq	3001187c <_POSIX_Keys_Run_destructors+0x74>   <== NOT EXECUTED
        void *value = key->Values [ thread_api ][ thread_index ];     
3001185c:	e7922100 	ldr	r2, [r2, r0, lsl #2]                          <== NOT EXECUTED
30011860:	e7920007 	ldr	r0, [r2, r7]                                  <== NOT EXECUTED
                                                                      
        if ( value != NULL ) {                                        
30011864:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30011868:	0a000003 	beq	3001187c <_POSIX_Keys_Run_destructors+0x74>   <== NOT EXECUTED
          key->Values [ thread_api ][ thread_index ] = NULL;          
3001186c:	e7828007 	str	r8, [r2, r7]                                  <== NOT EXECUTED
          (*key->destructor)( value );                                
30011870:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
30011874:	e12fff13 	bx	r3                                             <== NOT EXECUTED
          done = false;                                               
30011878:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
    Objects_Maximum index = 0;                                        
    Objects_Maximum max = _POSIX_Keys_Information.maximum;            
                                                                      
    done = true;                                                      
                                                                      
    for ( index = 1 ; index <= max ; ++index ) {                      
3001187c:	e2866001 	add	r6, r6, #1                                    <== NOT EXECUTED
30011880:	e1a06806 	lsl	r6, r6, #16                                   <== NOT EXECUTED
30011884:	e1a06826 	lsr	r6, r6, #16                                   <== NOT EXECUTED
30011888:	e1540006 	cmp	r4, r6                                        <== NOT EXECUTED
3001188c:	2affffea 	bcs	3001183c <_POSIX_Keys_Run_destructors+0x34>   <== NOT EXECUTED
   *  number of iterations.  An infinite loop may happen if destructors set
   *  thread specific data.  This can be considered dubious.          
   *                                                                  
   *  Reference: 17.1.1.2 P1003.1c/Draft 10, p. 163, line 99.         
   */                                                                 
  while ( !done ) {                                                   
30011890:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
30011894:	0affffe3 	beq	30011828 <_POSIX_Keys_Run_destructors+0x20>   <== NOT EXECUTED
30011898:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
                                                                      

30016164 <_POSIX_Message_queue_Create_support>: const char *name_arg, int pshared, struct mq_attr *attr_ptr, POSIX_Message_queue_Control **message_queue ) {
30016164:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
30016168:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
3001616c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  CORE_message_queue_Attributes *the_mq_attr;                         
  struct mq_attr                 attr;                                
  char                          *name;                                
  size_t                         n;                                   
                                                                      
  n = strnlen( name_arg, NAME_MAX );                                  
30016170:	e3a010ff 	mov	r1, #255	; 0xff                               <== NOT EXECUTED
  const char                    *name_arg,                            
  int                            pshared,                             
  struct mq_attr                *attr_ptr,                            
  POSIX_Message_queue_Control  **message_queue                        
)                                                                     
{                                                                     
30016174:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
30016178:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3001617c:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
  CORE_message_queue_Attributes *the_mq_attr;                         
  struct mq_attr                 attr;                                
  char                          *name;                                
  size_t                         n;                                   
                                                                      
  n = strnlen( name_arg, NAME_MAX );                                  
30016180:	eb00168f 	bl	3001bbc4 <strnlen>                             <== NOT EXECUTED
30016184:	e59f314c 	ldr	r3, [pc, #332]	; 300162d8 <_POSIX_Message_queue_Create_support+0x174><== NOT EXECUTED
30016188:	e1a0b000 	mov	fp, r0                                        <== NOT EXECUTED
3001618c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30016190:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30016194:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
   *  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 ) {                                           
30016198:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3001619c:	0a00002a 	beq	3001624c <_POSIX_Message_queue_Create_support+0xe8><== NOT EXECUTED
    attr.mq_maxmsg  = 10;                                             
    attr.mq_msgsize = 16;                                             
  } else {                                                            
    if ( attr_ptr->mq_maxmsg <= 0 ){                                  
300161a0:	e5947004 	ldr	r7, [r4, #4]                                  <== NOT EXECUTED
300161a4:	e3570000 	cmp	r7, #0                                        <== NOT EXECUTED
300161a8:	da000035 	ble	30016284 <_POSIX_Message_queue_Create_support+0x120><== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    }                                                                 
                                                                      
    if ( attr_ptr->mq_msgsize <= 0 ){                                 
300161ac:	e5948008 	ldr	r8, [r4, #8]                                  <== NOT EXECUTED
300161b0:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
300161b4:	da000032 	ble	30016284 <_POSIX_Message_queue_Create_support+0x120><== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE                                                  
  POSIX_Message_queue_Control *_POSIX_Message_queue_Allocate( void )  
{                                                                     
  return (POSIX_Message_queue_Control *)                              
    _Objects_Allocate( &_POSIX_Message_queue_Information );           
300161b8:	e59f511c 	ldr	r5, [pc, #284]	; 300162dc <_POSIX_Message_queue_Create_support+0x178><== NOT EXECUTED
300161bc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
300161c0:	ebffef9e 	bl	30012040 <_Objects_Allocate>                   <== NOT EXECUTED
                                                                      
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
300161c4:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
300161c8:	0a00003c 	beq	300162c0 <_POSIX_Message_queue_Create_support+0x15c><== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
                                                                      
  the_mq->process_shared  = pshared;                                  
  the_mq->named = true;                                               
300161cc:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Make a copy of the user's string for name just in case it was    
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
300161d0:	e08bb003 	add	fp, fp, r3                                    <== NOT EXECUTED
  if ( !the_mq ) {                                                    
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
                                                                      
  the_mq->process_shared  = pshared;                                  
300161d4:	e5846010 	str	r6, [r4, #16]                                 <== NOT EXECUTED
  the_mq->named = true;                                               
300161d8:	e5c43014 	strb	r3, [r4, #20]                                <== NOT EXECUTED
  the_mq->open_count = 1;                                             
300161dc:	e5843018 	str	r3, [r4, #24]                                 <== NOT EXECUTED
  the_mq->linked = true;                                              
300161e0:	e5c43015 	strb	r3, [r4, #21]                                <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Make a copy of the user's string for name just in case it was    
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
300161e4:	e1a0000b 	mov	r0, fp                                        <== NOT EXECUTED
300161e8:	ebfff8d9 	bl	30014554 <_Workspace_Allocate>                 <== NOT EXECUTED
  if (!name) {                                                        
300161ec:	e2509000 	subs	r9, r0, #0                                   <== NOT EXECUTED
300161f0:	0a000029 	beq	3001629c <_POSIX_Message_queue_Create_support+0x138><== NOT EXECUTED
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
  }                                                                   
  strncpy( name, name_arg, n+1 );                                     
300161f4:	e1a0100a 	mov	r1, sl                                        <== NOT EXECUTED
300161f8:	e1a0200b 	mov	r2, fp                                        <== NOT EXECUTED
   *                                                                  
   *  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;      
300161fc:	e3a06000 	mov	r6, #0                                        <== NOT EXECUTED
  if (!name) {                                                        
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
  }                                                                   
  strncpy( name, name_arg, n+1 );                                     
30016200:	eb001634 	bl	3001bad8 <strncpy>                             <== NOT EXECUTED
   *                                                                  
   *  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;      
30016204:	e584605c 	str	r6, [r4, #92]	; 0x5c                          <== NOT EXECUTED
                                                                      
  if ( !_CORE_message_queue_Initialize(                               
30016208:	e284001c 	add	r0, r4, #28                                   <== NOT EXECUTED
3001620c:	e284105c 	add	r1, r4, #92	; 0x5c                            <== NOT EXECUTED
30016210:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
30016214:	e1a03008 	mov	r3, r8                                        <== NOT EXECUTED
30016218:	eb000427 	bl	300172bc <_CORE_message_queue_Initialize>      <== NOT EXECUTED
3001621c:	e1500006 	cmp	r0, r6                                        <== NOT EXECUTED
30016220:	0a00000c 	beq	30016258 <_POSIX_Message_queue_Create_support+0xf4><== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30016224:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30016228:	e1d420b8 	ldrh	r2, [r4, #8]                                 <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3001622c:	e7834102 	str	r4, [r3, r2, lsl #2]                          <== NOT EXECUTED
    &_POSIX_Message_queue_Information,                                
    &the_mq->Object,                                                  
    name                                                              
  );                                                                  
                                                                      
  *message_queue = the_mq;                                            
30016230:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
30016234:	e584900c 	str	r9, [r4, #12]                                 <== NOT EXECUTED
30016238:	e5834000 	str	r4, [r3]                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
3001623c:	ebfff40c 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
30016240:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
}                                                                     
30016244:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30016248:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
   *  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;                                             
3001624c:	e3a08010 	mov	r8, #16                                       <== NOT EXECUTED
   *  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;                                             
30016250:	e3a0700a 	mov	r7, #10                                       <== NOT EXECUTED
30016254:	eaffffd7 	b	300161b8 <_POSIX_Message_queue_Create_support+0x54><== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (                 
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
30016258:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3001625c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30016260:	ebfff050 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
           attr.mq_maxmsg,                                            
           attr.mq_msgsize                                            
      ) ) {                                                           
                                                                      
    _POSIX_Message_queue_Free( the_mq );                              
    _Workspace_Free(name);                                            
30016264:	e1a00009 	mov	r0, r9                                        <== NOT EXECUTED
30016268:	ebfff8bf 	bl	3001456c <_Workspace_Free>                     <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
3001626c:	ebfff400 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
30016270:	eb000e3e 	bl	30019b70 <__errno>                             <== NOT EXECUTED
30016274:	e3a0301c 	mov	r3, #28                                       <== NOT EXECUTED
30016278:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3001627c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30016280:	eaffffef 	b	30016244 <_POSIX_Message_queue_Create_support+0xe0><== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    }                                                                 
                                                                      
    if ( attr_ptr->mq_msgsize <= 0 ){                                 
      _Thread_Enable_dispatch();                                      
30016284:	ebfff3fa 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EINVAL );                 
30016288:	eb000e38 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3001628c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30016290:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30016294:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30016298:	eaffffe9 	b	30016244 <_POSIX_Message_queue_Create_support+0xe0><== NOT EXECUTED
3001629c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
300162a0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
300162a4:	ebfff03f 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
   * dynamically constructed.                                         
   */                                                                 
  name = _Workspace_Allocate(n+1);                                    
  if (!name) {                                                        
    _POSIX_Message_queue_Free( the_mq );                              
    _Thread_Enable_dispatch();                                        
300162a8:	ebfff3f1 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
300162ac:	eb000e2f 	bl	30019b70 <__errno>                             <== NOT EXECUTED
300162b0:	e3a0300c 	mov	r3, #12                                       <== NOT EXECUTED
300162b4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
300162b8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300162bc:	eaffffe0 	b	30016244 <_POSIX_Message_queue_Create_support+0xe0><== NOT EXECUTED
    attr = *attr_ptr;                                                 
  }                                                                   
                                                                      
  the_mq = _POSIX_Message_queue_Allocate();                           
  if ( !the_mq ) {                                                    
    _Thread_Enable_dispatch();                                        
300162c0:	ebfff3eb 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENFILE );                   
300162c4:	eb000e29 	bl	30019b70 <__errno>                             <== NOT EXECUTED
300162c8:	e3a03017 	mov	r3, #23                                       <== NOT EXECUTED
300162cc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
300162d0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300162d4:	eaffffda 	b	30016244 <_POSIX_Message_queue_Create_support+0xe0><== NOT EXECUTED
                                                                      

3000f028 <_POSIX_Message_queue_Delete>: void _POSIX_Message_queue_Delete( POSIX_Message_queue_Control *the_mq ) { if ( !the_mq->linked && !the_mq->open_count ) {
3000f028:	e5d03015 	ldrb	r3, [r0, #21]                                <== NOT EXECUTED
 */                                                                   
                                                                      
void _POSIX_Message_queue_Delete(                                     
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
3000f02c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  if ( !the_mq->linked && !the_mq->open_count ) {                     
3000f030:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
 */                                                                   
                                                                      
void _POSIX_Message_queue_Delete(                                     
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
3000f034:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  if ( !the_mq->linked && !the_mq->open_count ) {                     
3000f038:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
3000f03c:	e5905018 	ldr	r5, [r0, #24]                                 <== NOT EXECUTED
3000f040:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000f044:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
          );                                                          
	  _Workspace_Free( (void *)the_object->name.name_p );                
        }                                                             
      #endif                                                          
                                                                      
      _Objects_Close( &_POSIX_Message_queue_Information, the_object );
3000f048:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000f04c:	e59f0020 	ldr	r0, [pc, #32]	; 3000f074 <_POSIX_Message_queue_Delete+0x4c><== NOT EXECUTED
3000f050:	eb000c1f 	bl	300120d4 <_Objects_Close>                      <== NOT EXECUTED
                                                                      
      _CORE_message_queue_Close(                                      
3000f054:	e284001c 	add	r0, r4, #28                                   <== NOT EXECUTED
3000f058:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000f05c:	e3a02005 	mov	r2, #5                                        <== NOT EXECUTED
3000f060:	eb0008e8 	bl	30011408 <_CORE_message_queue_Close>           <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Free (                 
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Message_queue_Information, &the_mq->Object );
3000f064:	e59f0008 	ldr	r0, [pc, #8]	; 3000f074 <_POSIX_Message_queue_Delete+0x4c><== NOT EXECUTED
3000f068:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
      );                                                              
                                                                      
    _POSIX_Message_queue_Free( the_mq );                              
                                                                      
  }                                                                   
}                                                                     
3000f06c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
3000f070:	ea000ccc 	b	300123a8 <_Objects_Free>                        <== NOT EXECUTED
                                                                      

300162e0 <_POSIX_Message_queue_Name_to_id>: */ int _POSIX_Message_queue_Name_to_id( const char *name, Objects_Id *id ) {
300162e0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
300162e4:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
 */                                                                   
int _POSIX_Message_queue_Name_to_id(                                  
  const char          *name,                                          
  Objects_Id          *id                                             
)                                                                     
{                                                                     
300162e8:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
300162ec:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
300162f0:	0a000002 	beq	30016300 <_POSIX_Message_queue_Name_to_id+0x20><== NOT EXECUTED
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
300162f4:	e5d53000 	ldrb	r3, [r5]                                     <== NOT EXECUTED
300162f8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
300162fc:	1a000002 	bne	3001630c <_POSIX_Message_queue_Name_to_id+0x2c><== NOT EXECUTED
    return EINVAL;                                                    
30016300:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
30016304:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30016308:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
3001630c:	e3a010ff 	mov	r1, #255	; 0xff                               <== NOT EXECUTED
30016310:	eb00162b 	bl	3001bbc4 <strnlen>                             <== NOT EXECUTED
30016314:	e35000fe 	cmp	r0, #254	; 0xfe                               <== NOT EXECUTED
    return ENAMETOOLONG;                                              
30016318:	83a0005b 	movhi	r0, #91	; 0x5b                              <== NOT EXECUTED
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                        
3001631c:	8afffff8 	bhi	30016304 <_POSIX_Message_queue_Name_to_id+0x24><== NOT EXECUTED
    return ENAMETOOLONG;                                              
                                                                      
  status = _Objects_Name_to_id_string(                                
30016320:	e59f0020 	ldr	r0, [pc, #32]	; 30016348 <_POSIX_Message_queue_Name_to_id+0x68><== NOT EXECUTED
30016324:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30016328:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3001632c:	eb0005d6 	bl	30017a8c <_Objects_Name_to_id_string>          <== NOT EXECUTED
    &_POSIX_Message_queue_Information,                                
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
30016330:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
30016334:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30016338:	13a00002 	movne	r0, #2                                      <== NOT EXECUTED
3001633c:	03a00000 	moveq	r0, #0                                      <== NOT EXECUTED
  status = _Objects_Name_to_id_string(                                
    &_POSIX_Message_queue_Information,                                
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
30016340:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
30016344:	eaffffee 	b	30016304 <_POSIX_Message_queue_Name_to_id+0x24> <== NOT EXECUTED
                                                                      

3000f104 <_POSIX_Message_queue_Notify_handler>: */ void _POSIX_Message_queue_Notify_handler( void *user_data ) {
3000f104:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000f108:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  POSIX_Message_queue_Control *the_mq;                                
                                                                      
  the_mq = user_data;                                                 
                                                                      
  kill( getpid(), the_mq->notification.sigev_signo );                 
3000f10c:	eb001a2d 	bl	300159c8 <getpid>                              <== NOT EXECUTED
3000f110:	e5941094 	ldr	r1, [r4, #148]	; 0x94                         <== NOT EXECUTED
3000f114:	eb001c10 	bl	3001615c <kill>                                <== NOT EXECUTED
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
3000f118:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000f11c:	e584307c 	str	r3, [r4, #124]	; 0x7c                         <== NOT EXECUTED
    the_message_queue->notify_argument = the_argument;                
3000f120:	e5843080 	str	r3, [r4, #128]	; 0x80                         <== NOT EXECUTED
                                                                      
  _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL );
}                                                                     
3000f124:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000f3a0 <_POSIX_Message_queue_Receive_support>: size_t msg_len, unsigned int *msg_prio, bool wait, Watchdog_Interval timeout ) {
3000f3a0:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
3000f3a4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000f3a8:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
3000f3ac:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
3000f3b0:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
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(             
3000f3b4:	e59f0110 	ldr	r0, [pc, #272]	; 3000f4cc <_POSIX_Message_queue_Receive_support+0x12c><== NOT EXECUTED
3000f3b8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f3bc:	e28d200c 	add	r2, sp, #12                                   <== NOT EXECUTED
3000f3c0:	e1a06003 	mov	r6, r3                                        <== NOT EXECUTED
3000f3c4:	e5dd8028 	ldrb	r8, [sp, #40]	; 0x28                         <== NOT EXECUTED
3000f3c8:	eb000c4d 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
  Objects_Locations                location;                          
  size_t                           length_out;                        
  bool                             do_wait;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
3000f3cc:	e59d300c 	ldr	r3, [sp, #12]                                 <== NOT EXECUTED
3000f3d0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f3d4:	0a000006 	beq	3000f3f4 <_POSIX_Message_queue_Receive_support+0x54><== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
3000f3d8:	eb0029e4 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f3dc:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f3e0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f3e4:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
}                                                                     
3000f3e8:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000f3ec:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
3000f3f0:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_WRONLY ) {             
3000f3f4:	e5903014 	ldr	r3, [r0, #20]                                 <== NOT EXECUTED
3000f3f8:	e2032003 	and	r2, r3, #3                                    <== NOT EXECUTED
3000f3fc:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
3000f400:	0a00002b 	beq	3000f4b4 <_POSIX_Message_queue_Receive_support+0x114><== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
3000f404:	e5900010 	ldr	r0, [r0, #16]                                 <== NOT EXECUTED
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
3000f408:	e5902068 	ldr	r2, [r0, #104]	; 0x68                         <== NOT EXECUTED
3000f40c:	e1520005 	cmp	r2, r5                                        <== NOT EXECUTED
3000f410:	8a000021 	bhi	3000f49c <_POSIX_Message_queue_Receive_support+0xfc><== NOT EXECUTED
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
3000f414:	e3e02000 	mvn	r2, #0                                        <== NOT EXECUTED
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
3000f418:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
      /*                                                              
       *  Now if something goes wrong, we return a "length" of -1     
       *  to indicate an error.                                       
       */                                                             
                                                                      
      length_out = -1;                                                
3000f41c:	e58d2008 	str	r2, [sp, #8]                                  <== NOT EXECUTED
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
3000f420:	0a000002 	beq	3000f430 <_POSIX_Message_queue_Receive_support+0x90><== NOT EXECUTED
3000f424:	e3130901 	tst	r3, #16384	; 0x4000                           <== NOT EXECUTED
3000f428:	13a08000 	movne	r8, #0                                      <== NOT EXECUTED
3000f42c:	03a08001 	moveq	r8, #1                                      <== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
3000f430:	e59d202c 	ldr	r2, [sp, #44]	; 0x2c                          <== NOT EXECUTED
3000f434:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
3000f438:	e59f4090 	ldr	r4, [pc, #144]	; 3000f4d0 <_POSIX_Message_queue_Receive_support+0x130><== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      _CORE_message_queue_Seize(                                      
3000f43c:	e28d3008 	add	r3, sp, #8                                    <== NOT EXECUTED
3000f440:	e58d2004 	str	r2, [sp, #4]                                  <== NOT EXECUTED
3000f444:	e280001c 	add	r0, r0, #28                                   <== NOT EXECUTED
3000f448:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000f44c:	e58d8000 	str	r8, [sp]                                      <== NOT EXECUTED
3000f450:	eb00080e 	bl	30011490 <_CORE_message_queue_Seize>           <== NOT EXECUTED
        &length_out,                                                  
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000f454:	eb000f86 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
3000f458:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
3000f45c:	e5932034 	ldr	r2, [r3, #52]	; 0x34                          <== NOT EXECUTED
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);                    
3000f460:	e5931024 	ldr	r1, [r3, #36]	; 0x24                          <== NOT EXECUTED
3000f464:	e0213fc1 	eor	r3, r1, r1, asr #31                           <== NOT EXECUTED
3000f468:	e0433fc1 	sub	r3, r3, r1, asr #31                           <== NOT EXECUTED
3000f46c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
        do_wait,                                                      
        timeout                                                       
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
3000f470:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
        return length_out;                                            
3000f474:	059d3008 	ldreq	r3, [sp, #8]                                <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
      *msg_prio =                                                     
        _POSIX_Message_queue_Priority_from_core(_Thread_Executing->Wait.count);
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
3000f478:	0affffda 	beq	3000f3e8 <_POSIX_Message_queue_Receive_support+0x48><== NOT EXECUTED
        return length_out;                                            
                                                                      
      rtems_set_errno_and_return_minus_one(                           
3000f47c:	eb0029bb 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f480:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
3000f484:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000f488:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000f48c:	eb0000b4 	bl	3000f764 <_POSIX_Message_queue_Translate_core_message_queue_return_code><== NOT EXECUTED
3000f490:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f494:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
3000f498:	eaffffd2 	b	3000f3e8 <_POSIX_Message_queue_Receive_support+0x48><== NOT EXECUTED
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      if ( msg_len < the_mq->Message_queue.maximum_message_size ) {   
        _Thread_Enable_dispatch();                                    
3000f49c:	eb000f74 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        rtems_set_errno_and_return_minus_one( EMSGSIZE );             
3000f4a0:	eb0029b2 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f4a4:	e3a0307a 	mov	r3, #122	; 0x7a                               <== NOT EXECUTED
3000f4a8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f4ac:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f4b0:	eaffffcc 	b	3000f3e8 <_POSIX_Message_queue_Receive_support+0x48><== NOT EXECUTED
  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();                                    
3000f4b4:	eb000f6e 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        rtems_set_errno_and_return_minus_one( EBADF );                
3000f4b8:	eb0029ac 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f4bc:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f4c0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f4c4:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f4c8:	eaffffc6 	b	3000f3e8 <_POSIX_Message_queue_Receive_support+0x48><== NOT EXECUTED
                                                                      

3000f4f8 <_POSIX_Message_queue_Send_support>: size_t msg_len, uint32_t msg_prio, bool wait, Watchdog_Interval timeout ) {
3000f4f8:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  /*                                                                  
   * Validate the priority.                                           
   * XXX - Do not validate msg_prio is not less than 0.               
   */                                                                 
                                                                      
  if ( msg_prio > MQ_PRIO_MAX )                                       
3000f4fc:	e3530020 	cmp	r3, #32                                       <== NOT EXECUTED
  size_t              msg_len,                                        
  uint32_t            msg_prio,                                       
  bool                wait,                                           
  Watchdog_Interval   timeout                                         
)                                                                     
{                                                                     
3000f500:	e24dd014 	sub	sp, sp, #20                                   <== NOT EXECUTED
3000f504:	e1a04003 	mov	r4, r3                                        <== NOT EXECUTED
3000f508:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000f50c:	e1a08001 	mov	r8, r1                                        <== NOT EXECUTED
3000f510:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
3000f514:	e5dd602c 	ldrb	r6, [sp, #44]	; 0x2c                         <== NOT EXECUTED
  /*                                                                  
   * Validate the priority.                                           
   * XXX - Do not validate msg_prio is not less than 0.               
   */                                                                 
                                                                      
  if ( msg_prio > MQ_PRIO_MAX )                                       
3000f518:	8a00002b 	bhi	3000f5cc <_POSIX_Message_queue_Send_support+0xd4><== NOT EXECUTED
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(             
3000f51c:	e59f00f0 	ldr	r0, [pc, #240]	; 3000f614 <_POSIX_Message_queue_Send_support+0x11c><== NOT EXECUTED
3000f520:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000f524:	e28d2010 	add	r2, sp, #16                                   <== NOT EXECUTED
3000f528:	eb000bf5 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
3000f52c:	e59d3010 	ldr	r3, [sp, #16]                                 <== NOT EXECUTED
3000f530:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f534:	1a00001f 	bne	3000f5b8 <_POSIX_Message_queue_Send_support+0xc0><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) {             
3000f538:	e5903014 	ldr	r3, [r0, #20]                                 <== NOT EXECUTED
3000f53c:	e3130003 	tst	r3, #3                                        <== NOT EXECUTED
3000f540:	0a000026 	beq	3000f5e0 <_POSIX_Message_queue_Send_support+0xe8><== NOT EXECUTED
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
3000f544:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
      if ( (the_mq_fd->oflag & O_ACCMODE) == O_RDONLY ) {             
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EBADF );                
      }                                                               
                                                                      
      the_mq = the_mq_fd->Queue;                                      
3000f548:	e5900010 	ldr	r0, [r0, #16]                                 <== NOT EXECUTED
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
3000f54c:	1a000015 	bne	3000f5a8 <_POSIX_Message_queue_Send_support+0xb0><== NOT EXECUTED
        do_wait = wait;                                               
                                                                      
      /*                                                              
       *  Now perform the actual message receive                      
       */                                                             
      msg_status = _CORE_message_queue_Submit(                        
3000f550:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000f554:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000f558:	e59d3030 	ldr	r3, [sp, #48]	; 0x30                          <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE CORE_message_queue_Submit_types _POSIX_Message_queue_Priority_to_core(
  unsigned int priority                                               
)                                                                     
{                                                                     
  return priority * -1;                                               
3000f55c:	e2644000 	rsb	r4, r4, #0                                    <== NOT EXECUTED
3000f560:	e58d300c 	str	r3, [sp, #12]                                 <== NOT EXECUTED
3000f564:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000f568:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
3000f56c:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000f570:	e280001c 	add	r0, r0, #28                                   <== NOT EXECUTED
3000f574:	e98d0050 	stmib	sp, {r4, r6}                                <== NOT EXECUTED
3000f578:	eb00080e 	bl	300115b8 <_CORE_message_queue_Submit>          <== NOT EXECUTED
3000f57c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
        _POSIX_Message_queue_Priority_to_core( msg_prio ),            
        do_wait,                                                      
        timeout    /* no timeout */                                   
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000f580:	eb000f3b 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
       *  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 ) 
3000f584:	e3540007 	cmp	r4, #7                                        <== NOT EXECUTED
        msg_status = _Thread_Executing->Wait.return_code;             
3000f588:	059f3088 	ldreq	r3, [pc, #136]	; 3000f618 <_POSIX_Message_queue_Send_support+0x120><== NOT EXECUTED
3000f58c:	05933004 	ldreq	r3, [r3, #4]                                <== NOT EXECUTED
3000f590:	05934034 	ldreq	r4, [r3, #52]	; 0x34                        <== NOT EXECUTED
                                                                      
      if ( !msg_status )                                              
3000f594:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000f598:	1a000016 	bne	3000f5f8 <_POSIX_Message_queue_Send_support+0x100><== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
3000f59c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000f5a0:	e28dd014 	add	sp, sp, #20                                   <== NOT EXECUTED
3000f5a4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      /*                                                              
       *  A timed receive with a bad time will do a poll regardless.  
       */                                                             
      if ( wait )                                                     
3000f5a8:	e3130901 	tst	r3, #16384	; 0x4000                           <== NOT EXECUTED
3000f5ac:	13a06000 	movne	r6, #0                                      <== NOT EXECUTED
3000f5b0:	03a06001 	moveq	r6, #1                                      <== NOT EXECUTED
3000f5b4:	eaffffe5 	b	3000f550 <_POSIX_Message_queue_Send_support+0x58><== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
3000f5b8:	eb00296c 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f5bc:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f5c0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f5c4:	e3e04000 	mvn	r4, #0                                        <== NOT EXECUTED
3000f5c8:	eafffff3 	b	3000f59c <_POSIX_Message_queue_Send_support+0xa4><== NOT EXECUTED
   * 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 );                   
3000f5cc:	eb002967 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f5d0:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000f5d4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f5d8:	e3e04000 	mvn	r4, #0                                        <== NOT EXECUTED
3000f5dc:	eaffffee 	b	3000f59c <_POSIX_Message_queue_Send_support+0xa4><== NOT EXECUTED
  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();                                    
3000f5e0:	eb000f23 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        rtems_set_errno_and_return_minus_one( EBADF );                
3000f5e4:	eb002961 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f5e8:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f5ec:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f5f0:	e3e04000 	mvn	r4, #0                                        <== NOT EXECUTED
3000f5f4:	eaffffe8 	b	3000f59c <_POSIX_Message_queue_Send_support+0xa4><== NOT EXECUTED
        msg_status = _Thread_Executing->Wait.return_code;             
                                                                      
      if ( !msg_status )                                              
        return msg_status;                                            
                                                                      
      rtems_set_errno_and_return_minus_one(                           
3000f5f8:	eb00295c 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f5fc:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000f600:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000f604:	eb000056 	bl	3000f764 <_POSIX_Message_queue_Translate_core_message_queue_return_code><== NOT EXECUTED
3000f608:	e3e04000 	mvn	r4, #0                                        <== NOT EXECUTED
3000f60c:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
3000f610:	eaffffe1 	b	3000f59c <_POSIX_Message_queue_Send_support+0xa4><== NOT EXECUTED
                                                                      

3000f764 <_POSIX_Message_queue_Translate_core_message_queue_return_code>: */ #if defined(RTEMS_DEBUG) if ( the_message_queue_status > CORE_MESSAGE_QUEUE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Message_queue_Return_codes[the_message_queue_status];
3000f764:	e59f3004 	ldr	r3, [pc, #4]	; 3000f770 <_POSIX_Message_queue_Translate_core_message_queue_return_code+0xc><== NOT EXECUTED
}                                                                     
3000f768:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
3000f76c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3001064c <_POSIX_Priority_Is_valid>: bool _POSIX_Priority_Is_valid( int priority ) { return ((priority >= POSIX_SCHEDULER_MINIMUM_PRIORITY) &&
3001064c:	e3500000 	cmp	r0, #0                                        
30010650:	da000005 	ble	3001066c <_POSIX_Priority_Is_valid+0x20>      
          (priority <= POSIX_SCHEDULER_MAXIMUM_PRIORITY));            
30010654:	e59f3018 	ldr	r3, [pc, #24]	; 30010674 <_POSIX_Priority_Is_valid+0x28>
30010658:	e5d33000 	ldrb	r3, [r3]                                     
#endif                                                                
                                                                      
#include <rtems/system.h>                                             
#include <rtems/posix/priority.h>                                     
                                                                      
bool _POSIX_Priority_Is_valid(                                        
3001065c:	e1500003 	cmp	r0, r3                                        
30010660:	a3a00000 	movge	r0, #0                                      
30010664:	b3a00001 	movlt	r0, #1                                      
30010668:	e12fff1e 	bx	lr                                             
  int priority                                                        
)                                                                     
{                                                                     
  return ((priority >= POSIX_SCHEDULER_MINIMUM_PRIORITY) &&           
3001066c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
          (priority <= POSIX_SCHEDULER_MAXIMUM_PRIORITY));            
                                                                      
}                                                                     
30010670:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code>: */ #if defined(RTEMS_DEBUG) if ( the_rwlock_status > CORE_RWLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_RWLock_Return_codes[the_rwlock_status];
3000b44c:	e59f3004 	ldr	r3, [pc, #4]	; 3000b458 <_POSIX_RWLock_Translate_core_RWLock_return_code+0xc><== NOT EXECUTED
}                                                                     
3000b450:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
3000b454:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30013194 <_POSIX_Semaphore_Create_support>: 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)
30013194:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
  const char                *name,                                    
  int                        pshared,                                 
  unsigned int               value,                                   
  POSIX_Semaphore_Control  **the_sem                                  
)                                                                     
{                                                                     
30013198:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
3001319c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
300131a0:	e1a08002 	mov	r8, r2                                        <== NOT EXECUTED
300131a4:	e1a07003 	mov	r7, r3                                        <== NOT EXECUTED
  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)                                                   
300131a8:	1a000028 	bne	30013250 <_POSIX_Semaphore_Create_support+0xbc><== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
                                                                      
  if ( name ) {                                                       
300131ac:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
300131b0:	0a000003 	beq	300131c4 <_POSIX_Semaphore_Create_support+0x30><== NOT EXECUTED
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
300131b4:	e3a010ff 	mov	r1, #255	; 0xff                               <== NOT EXECUTED
300131b8:	eb001266 	bl	30017b58 <strnlen>                             <== NOT EXECUTED
300131bc:	e35000fe 	cmp	r0, #254	; 0xfe                               <== NOT EXECUTED
300131c0:	8a000027 	bhi	30013264 <_POSIX_Semaphore_Create_support+0xd0><== NOT EXECUTED
300131c4:	e59f30c4 	ldr	r3, [pc, #196]	; 30013290 <_POSIX_Semaphore_Create_support+0xfc><== NOT EXECUTED
300131c8:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
300131cc:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
300131d0:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Allocate( void )
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Allocate( &_POSIX_Semaphore_Information );               
300131d4:	e59f00b8 	ldr	r0, [pc, #184]	; 30013294 <_POSIX_Semaphore_Create_support+0x100><== NOT EXECUTED
300131d8:	ebffed42 	bl	3000e6e8 <_Objects_Allocate>                   <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
300131dc:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
300131e0:	0a000024 	beq	30013278 <_POSIX_Semaphore_Create_support+0xe4><== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  }                                                                   
                                                                      
  the_semaphore->process_shared  = pshared;                           
                                                                      
  if ( name ) {                                                       
300131e4:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
  }                                                                   
                                                                      
  the_semaphore->process_shared  = pshared;                           
300131e8:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
300131ec:	e5853010 	str	r3, [r5, #16]                                 <== NOT EXECUTED
                                                                      
  if ( name ) {                                                       
    the_semaphore->named = true;                                      
300131f0:	13a03001 	movne	r3, #1                                      <== NOT EXECUTED
300131f4:	15c53014 	strbne	r3, [r5, #20]                              <== NOT EXECUTED
    the_semaphore->open_count = 1;                                    
300131f8:	15853018 	strne	r3, [r5, #24]                               <== NOT EXECUTED
    the_semaphore->linked = true;                                     
300131fc:	15c53015 	strbne	r3, [r5, #21]                              <== NOT EXECUTED
   *  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;         
30013200:	e3a06000 	mov	r6, #0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
30013204:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
30013208:	e285001c 	add	r0, r5, #28                                   <== NOT EXECUTED
  if ( name ) {                                                       
    the_semaphore->named = true;                                      
    the_semaphore->open_count = 1;                                    
    the_semaphore->linked = true;                                     
  } else {                                                            
    the_semaphore->named = false;                                     
3001320c:	05c54014 	strbeq	r4, [r5, #20]                              <== NOT EXECUTED
    the_semaphore->open_count = 0;                                    
30013210:	05854018 	streq	r4, [r5, #24]                               <== NOT EXECUTED
    the_semaphore->linked = false;                                    
30013214:	05c54015 	strbeq	r4, [r5, #21]                              <== NOT EXECUTED
  the_sem_attr->discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO;         
                                                                      
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
30013218:	e585305c 	str	r3, [r5, #92]	; 0x5c                          <== NOT EXECUTED
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
3001321c:	e285105c 	add	r1, r5, #92	; 0x5c                            <== NOT EXECUTED
30013220:	e1a02008 	mov	r2, r8                                        <== NOT EXECUTED
   *  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;         
30013224:	e5856060 	str	r6, [r5, #96]	; 0x60                          <== NOT EXECUTED
  /*                                                                  
   *  This effectively disables limit checking.                       
   */                                                                 
  the_sem_attr->maximum_count = 0xFFFFFFFF;                           
                                                                      
  _CORE_semaphore_Initialize( &the_semaphore->Semaphore, the_sem_attr, value );
30013228:	ebffebad 	bl	3000e0e4 <_CORE_semaphore_Initialize>          <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3001322c:	e59f3060 	ldr	r3, [pc, #96]	; 30013294 <_POSIX_Semaphore_Create_support+0x100><== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30013230:	e1d520b8 	ldrh	r2, [r5, #8]                                 <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30013234:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
30013238:	e7835102 	str	r5, [r3, r2, lsl #2]                          <== NOT EXECUTED
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
3001323c:	e585400c 	str	r4, [r5, #12]                                 <== NOT EXECUTED
    &_POSIX_Semaphore_Information,                                    
    &the_semaphore->Object,                                           
    name_p                                                            
  );                                                                  
                                                                      
  *the_sem = the_semaphore;                                           
30013240:	e5875000 	str	r5, [r7]                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
30013244:	ebfff1b4 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
30013248:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
}                                                                     
3001324c:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
  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 );                   
30013250:	eb000c05 	bl	3001626c <__errno>                             <== NOT EXECUTED
30013254:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30013258:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3001325c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30013260:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
  if ( name ) {                                                       
    if ( strnlen( name, NAME_MAX ) >= NAME_MAX )                      
      rtems_set_errno_and_return_minus_one( ENAMETOOLONG );           
30013264:	eb000c00 	bl	3001626c <__errno>                             <== NOT EXECUTED
30013268:	e3a0305b 	mov	r3, #91	; 0x5b                                <== NOT EXECUTED
3001326c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30013270:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30013274:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
  _Thread_Disable_dispatch();                                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Allocate();                        
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
30013278:	ebfff1a7 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSPC );                   
3001327c:	eb000bfa 	bl	3001626c <__errno>                             <== NOT EXECUTED
30013280:	e3a0301c 	mov	r3, #28                                       <== NOT EXECUTED
30013284:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30013288:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3001328c:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

30013298 <_POSIX_Semaphore_Delete>: void _POSIX_Semaphore_Delete( POSIX_Semaphore_Control *the_semaphore ) { if ( !the_semaphore->linked && !the_semaphore->open_count ) {
30013298:	e5d03015 	ldrb	r3, [r0, #21]                                <== NOT EXECUTED
 */                                                                   
                                                                      
void _POSIX_Semaphore_Delete(                                         
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
3001329c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  if ( !the_semaphore->linked && !the_semaphore->open_count ) {       
300132a0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
 */                                                                   
                                                                      
void _POSIX_Semaphore_Delete(                                         
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
300132a4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  if ( !the_semaphore->linked && !the_semaphore->open_count ) {       
300132a8:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
300132ac:	e5905018 	ldr	r5, [r0, #24]                                 <== NOT EXECUTED
300132b0:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
300132b4:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
      _Objects_Close( &_POSIX_Semaphore_Information, &the_semaphore->Object );
300132b8:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
300132bc:	e59f0020 	ldr	r0, [pc, #32]	; 300132e4 <_POSIX_Semaphore_Delete+0x4c><== NOT EXECUTED
300132c0:	ebffed2d 	bl	3000e77c <_Objects_Close>                      <== NOT EXECUTED
                                                                      
      _CORE_semaphore_Flush(                                          
300132c4:	e284001c 	add	r0, r4, #28                                   <== NOT EXECUTED
300132c8:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
300132cc:	e3e02000 	mvn	r2, #0                                        <== NOT EXECUTED
300132d0:	ebffeb82 	bl	3000e0e0 <_CORE_semaphore_Flush>               <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free (                     
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Semaphore_Information, &the_semaphore->Object );
300132d4:	e59f0008 	ldr	r0, [pc, #8]	; 300132e4 <_POSIX_Semaphore_Delete+0x4c><== NOT EXECUTED
300132d8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
        -1                                                            
      );                                                              
                                                                      
    _POSIX_Semaphore_Free( the_semaphore );                           
  }                                                                   
}                                                                     
300132dc:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
300132e0:	eaffedda 	b	3000ea50 <_Objects_Free>                        <== NOT EXECUTED
                                                                      

300132e8 <_POSIX_Semaphore_Name_to_id>: int _POSIX_Semaphore_Name_to_id( const char *name, sem_t *id ) {
300132e8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
300132ec:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
                                                                      
int _POSIX_Semaphore_Name_to_id(                                      
  const char     *name,                                               
  sem_t          *id                                                  
)                                                                     
{                                                                     
300132f0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
300132f4:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Id                        the_id;                           
                                                                      
   if ( !name )                                                       
300132f8:	0a000002 	beq	30013308 <_POSIX_Semaphore_Name_to_id+0x20>   <== NOT EXECUTED
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
300132fc:	e5d32000 	ldrb	r2, [r3]                                     <== NOT EXECUTED
30013300:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30013304:	1a000002 	bne	30013314 <_POSIX_Semaphore_Name_to_id+0x2c>   <== NOT EXECUTED
    return EINVAL;                                                    
30013308:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
                                                                      
  return ENOENT;                                                      
}                                                                     
3001330c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30013310:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
     return EINVAL;                                                   
                                                                      
  if ( !name[0] )                                                     
    return EINVAL;                                                    
                                                                      
  status = _Objects_Name_to_id_string(                                
30013314:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
30013318:	e59f001c 	ldr	r0, [pc, #28]	; 3001333c <_POSIX_Semaphore_Name_to_id+0x54><== NOT EXECUTED
3001331c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30013320:	eb0003ab 	bl	300141d4 <_Objects_Name_to_id_string>          <== NOT EXECUTED
    &_POSIX_Semaphore_Information,                                    
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
30013324:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
                                                                      
  if ( status == OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL )               
    return 0;                                                         
30013328:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3001332c:	13a00002 	movne	r0, #2                                      <== NOT EXECUTED
30013330:	03a00000 	moveq	r0, #0                                      <== NOT EXECUTED
  status = _Objects_Name_to_id_string(                                
    &_POSIX_Semaphore_Information,                                    
    name,                                                             
    &the_id                                                           
  );                                                                  
  *id = the_id;                                                       
30013334:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
30013338:	eafffff3 	b	3001330c <_POSIX_Semaphore_Name_to_id+0x24>     <== NOT EXECUTED
                                                                      

30015d30 <_POSIX_Semaphore_Translate_core_semaphore_return_code>: */ #if defined(RTEMS_DEBUG) if ( the_semaphore_status > CORE_SEMAPHORE_STATUS_LAST ) return EINVAL; #endif return _POSIX_Semaphore_Return_codes[the_semaphore_status];
30015d30:	e59f3004 	ldr	r3, [pc, #4]	; 30015d3c <_POSIX_Semaphore_Translate_core_semaphore_return_code+0xc><== NOT EXECUTED
}                                                                     
30015d34:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
30015d38:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30013388 <_POSIX_Semaphore_Wait_support>: int _POSIX_Semaphore_Wait_support( sem_t *sem, bool blocking, Watchdog_Interval timeout ) {
30013388:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  sem_t             *id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Get( &_POSIX_Semaphore_Information, (Objects_Id)*id, location );
3001338c:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
30013390:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30013394:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
30013398:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
3001339c:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
300133a0:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
300133a4:	e59f007c 	ldr	r0, [pc, #124]	; 30013428 <_POSIX_Semaphore_Wait_support+0xa0><== NOT EXECUTED
300133a8:	ebffedff 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
  POSIX_Semaphore_Control *the_semaphore;                             
  Objects_Locations        location;                                  
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
300133ac:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
int _POSIX_Semaphore_Wait_support(                                    
  sem_t             *sem,                                             
  bool               blocking,                                        
  Watchdog_Interval  timeout                                          
)                                                                     
{                                                                     
300133b0:	e20550ff 	and	r5, r5, #255	; 0xff                           <== NOT EXECUTED
  POSIX_Semaphore_Control *the_semaphore;                             
  Objects_Locations        location;                                  
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
300133b4:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
300133b8:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
300133bc:	0a000006 	beq	300133dc <_POSIX_Semaphore_Wait_support+0x54> <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
300133c0:	eb000ba9 	bl	3001626c <__errno>                             <== NOT EXECUTED
300133c4:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
300133c8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
300133cc:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
}                                                                     
300133d0:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
300133d4:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
300133d8:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Seize(                                          
300133dc:	e5931008 	ldr	r1, [r3, #8]                                  <== NOT EXECUTED
300133e0:	e1a03004 	mov	r3, r4                                        <== NOT EXECUTED
        blocking,                                                     
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
300133e4:	e59f4040 	ldr	r4, [pc, #64]	; 3001342c <_POSIX_Semaphore_Wait_support+0xa4><== NOT EXECUTED
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Seize(                                          
300133e8:	e280001c 	add	r0, r0, #28                                   <== NOT EXECUTED
300133ec:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
300133f0:	eb0001f7 	bl	30013bd4 <_CORE_semaphore_Seize>               <== NOT EXECUTED
        &the_semaphore->Semaphore,                                    
        the_semaphore->Object.id,                                     
        blocking,                                                     
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
300133f4:	ebfff148 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
      if ( !_Thread_Executing->Wait.return_code )                     
300133f8:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
300133fc:	e5933034 	ldr	r3, [r3, #52]	; 0x34                          <== NOT EXECUTED
30013400:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30013404:	0afffff1 	beq	300133d0 <_POSIX_Semaphore_Wait_support+0x48> <== NOT EXECUTED
        return 0;                                                     
                                                                      
      rtems_set_errno_and_return_minus_one(                           
30013408:	eb000b97 	bl	3001626c <__errno>                             <== NOT EXECUTED
3001340c:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
30013410:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
30013414:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
30013418:	eb000a44 	bl	30015d30 <_POSIX_Semaphore_Translate_core_semaphore_return_code><== NOT EXECUTED
3001341c:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
30013420:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
30013424:	eaffffe9 	b	300133d0 <_POSIX_Semaphore_Wait_support+0x48>   <== NOT EXECUTED
                                                                      

30009fec <_POSIX_Spinlock_Translate_core_spinlock_return_code>: */ #if defined(RTEMS_DEBUG) if ( the_spinlock_status > CORE_SPINLOCK_STATUS_LAST ) return EINVAL; #endif return _POSIX_Spinlock_Return_codes[the_spinlock_status];
30009fec:	e59f3004 	ldr	r3, [pc, #4]	; 30009ff8 <_POSIX_Spinlock_Translate_core_spinlock_return_code+0xc><== NOT EXECUTED
}                                                                     
30009ff0:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
30009ff4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000f120 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch>: Thread_Control *the_thread ) { POSIX_API_Control *thread_support; thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];
3000f120:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
  if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
3000f124:	e59320d8 	ldr	r2, [r3, #216]	; 0xd8                         <== NOT EXECUTED
3000f128:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000f12c:	1a000002 	bne	3000f13c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x1c><== NOT EXECUTED
3000f130:	e59320dc 	ldr	r2, [r3, #220]	; 0xdc                         <== NOT EXECUTED
3000f134:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
3000f138:	0a000000 	beq	3000f140 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x20><== NOT EXECUTED
       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();                                        
3000f13c:	eafff4e7 	b	3000c4e0 <_Thread_Enable_dispatch>              <== NOT EXECUTED
  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 &&
3000f140:	e59330e0 	ldr	r3, [r3, #224]	; 0xe0                         <== NOT EXECUTED
3000f144:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f148:	0afffffb 	beq	3000f13c <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x1c><== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000f14c:	e59f3010 	ldr	r3, [pc, #16]	; 3000f164 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch+0x44><== NOT EXECUTED
       thread_support->cancelation_requested ) {                      
    _Thread_Unnest_dispatch();                                        
    _POSIX_Thread_Exit( the_thread, PTHREAD_CANCELED );               
3000f150:	e3e01000 	mvn	r1, #0                                        <== NOT EXECUTED
3000f154:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000f158:	e0822001 	add	r2, r2, r1                                    <== NOT EXECUTED
3000f15c:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
3000f160:	ea000224 	b	3000f9f8 <_POSIX_Thread_Exit>                   <== NOT EXECUTED
                                                                      

30010678 <_POSIX_Thread_Translate_sched_param>: int policy, struct sched_param *param, Thread_CPU_budget_algorithms *budget_algorithm, Thread_CPU_budget_algorithm_callout *budget_callout ) {
30010678:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
3001067c:	e1a04000 	mov	r4, r0                                        
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
30010680:	e5910000 	ldr	r0, [r1]                                      
  int                                  policy,                        
  struct sched_param                  *param,                         
  Thread_CPU_budget_algorithms        *budget_algorithm,              
  Thread_CPU_budget_algorithm_callout *budget_callout                 
)                                                                     
{                                                                     
30010684:	e1a05001 	mov	r5, r1                                        
30010688:	e1a06002 	mov	r6, r2                                        
3001068c:	e1a07003 	mov	r7, r3                                        
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
30010690:	ebffffed 	bl	3001064c <_POSIX_Priority_Is_valid>            
30010694:	e3500000 	cmp	r0, #0                                        
30010698:	0a00000e 	beq	300106d8 <_POSIX_Thread_Translate_sched_param+0x60>
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
3001069c:	e3a00000 	mov	r0, #0                                        
  *budget_callout = NULL;                                             
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
300106a0:	e1540000 	cmp	r4, r0                                        
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
300106a4:	03a03001 	moveq	r3, #1                                      
)                                                                     
{                                                                     
  if ( !_POSIX_Priority_Is_valid( param->sched_priority ) )           
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
300106a8:	e5860000 	str	r0, [r6]                                      
  *budget_callout = NULL;                                             
300106ac:	e5870000 	str	r0, [r7]                                      
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
300106b0:	05863000 	streq	r3, [r6]                                    
    return 0;                                                         
300106b4:	01a00004 	moveq	r0, r4                                      
    return EINVAL;                                                    
                                                                      
  *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;               
  *budget_callout = NULL;                                             
                                                                      
  if ( policy == SCHED_OTHER ) {                                      
300106b8:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;  
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_FIFO ) {                                       
300106bc:	e3540001 	cmp	r4, #1                                        
300106c0:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
300106c4:	e3540002 	cmp	r4, #2                                        <== NOT EXECUTED
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
300106c8:	05864000 	streq	r4, [r6]                                    <== NOT EXECUTED
  if ( policy == SCHED_FIFO ) {                                       
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;             
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_RR ) {                                         
300106cc:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
300106d0:	e3540004 	cmp	r4, #4                                        <== NOT EXECUTED
300106d4:	0a000001 	beq	300106e0 <_POSIX_Thread_Translate_sched_param+0x68><== NOT EXECUTED
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
300106d8:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
300106dc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
    *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
    return 0;                                                         
  }                                                                   
                                                                      
  if ( policy == SCHED_SPORADIC ) {                                   
    if ( (param->sched_ss_repl_period.tv_sec == 0) &&                 
300106e0:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
300106e4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
300106e8:	1a000002 	bne	300106f8 <_POSIX_Thread_Translate_sched_param+0x80><== NOT EXECUTED
300106ec:	e595300c 	ldr	r3, [r5, #12]                                 <== NOT EXECUTED
300106f0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
300106f4:	0afffff7 	beq	300106d8 <_POSIX_Thread_Translate_sched_param+0x60><== NOT EXECUTED
         (param->sched_ss_repl_period.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( (param->sched_ss_init_budget.tv_sec == 0) &&                 
300106f8:	e5953010 	ldr	r3, [r5, #16]                                 <== NOT EXECUTED
300106fc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30010700:	1a000002 	bne	30010710 <_POSIX_Thread_Translate_sched_param+0x98><== NOT EXECUTED
30010704:	e5953014 	ldr	r3, [r5, #20]                                 <== NOT EXECUTED
30010708:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3001070c:	0afffff1 	beq	300106d8 <_POSIX_Thread_Translate_sched_param+0x60><== NOT EXECUTED
         (param->sched_ss_init_budget.tv_nsec == 0) )                 
      return EINVAL;                                                  
                                                                      
    if ( _Timespec_To_ticks( ¶m->sched_ss_repl_period ) <         
30010710:	e2850008 	add	r0, r5, #8                                    <== NOT EXECUTED
30010714:	ebfff5fc 	bl	3000df0c <_Timespec_To_ticks>                  <== NOT EXECUTED
30010718:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
3001071c:	e2850010 	add	r0, r5, #16                                   <== NOT EXECUTED
30010720:	ebfff5f9 	bl	3000df0c <_Timespec_To_ticks>                  <== NOT EXECUTED
                                                                      
    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 ) <         
30010724:	e1540000 	cmp	r4, r0                                        <== NOT EXECUTED
30010728:	3affffea 	bcc	300106d8 <_POSIX_Thread_Translate_sched_param+0x60><== NOT EXECUTED
	 _Timespec_To_ticks( ¶m->sched_ss_init_budget ) )                
      return EINVAL;                                                  
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
3001072c:	e5950004 	ldr	r0, [r5, #4]                                  <== NOT EXECUTED
30010730:	ebffffc5 	bl	3001064c <_POSIX_Priority_Is_valid>            <== NOT EXECUTED
30010734:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30010738:	0a000005 	beq	30010754 <_POSIX_Thread_Translate_sched_param+0xdc><== NOT EXECUTED
      return EINVAL;                                                  
                                                                      
    *budget_algorithm  = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;         
3001073c:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30010740:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
30010744:	e59f3010 	ldr	r3, [pc, #16]	; 3001075c <_POSIX_Thread_Translate_sched_param+0xe4><== NOT EXECUTED
    return 0;                                                         
30010748:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
                                                                      
    if ( !_POSIX_Priority_Is_valid( param->sched_ss_low_priority ) )  
      return EINVAL;                                                  
                                                                      
    *budget_algorithm  = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;         
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
3001074c:	e5873000 	str	r3, [r7]                                      <== NOT EXECUTED
    return 0;                                                         
30010750:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
    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;                                                  
30010754:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
    *budget_callout = _POSIX_Threads_Sporadic_budget_callout;         
    return 0;                                                         
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
30010758:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000f2a4 <_POSIX_Threads_Delete_extension>: */ void _POSIX_Threads_Delete_extension( Thread_Control *executing __attribute__((unused)), Thread_Control *deleted ) {
3000f2a4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  api = deleted->API_Extensions[ THREAD_API_POSIX ];                  
                                                                      
  /*                                                                  
   *  Run the POSIX cancellation handlers                             
   */                                                                 
  _POSIX_Threads_cancel_run( deleted );                               
3000f2a8:	e1a00001 	mov	r0, r1                                        
 */                                                                   
void _POSIX_Threads_Delete_extension(                                 
  Thread_Control *executing __attribute__((unused)),                  
  Thread_Control *deleted                                             
)                                                                     
{                                                                     
3000f2ac:	e1a06001 	mov	r6, r1                                        
  Thread_Control     *the_thread;                                     
  POSIX_API_Control  *api;                                            
  void              **value_ptr;                                      
                                                                      
  api = deleted->API_Extensions[ THREAD_API_POSIX ];                  
3000f2b0:	e59170fc 	ldr	r7, [r1, #252]	; 0xfc                         
                                                                      
  /*                                                                  
   *  Run the POSIX cancellation handlers                             
   */                                                                 
  _POSIX_Threads_cancel_run( deleted );                               
3000f2b4:	eb00093a 	bl	300117a4 <_POSIX_Threads_cancel_run>           
                                                                      
  /*                                                                  
   *  Run all the key destructors                                     
   */                                                                 
  _POSIX_Keys_Run_destructors( deleted );                             
3000f2b8:	e1a00006 	mov	r0, r6                                        
3000f2bc:	eb000951 	bl	30011808 <_POSIX_Keys_Run_destructors>         
3000f2c0:	e2874044 	add	r4, r7, #68	; 0x44                            
                                                                      
  /*                                                                  
   *  Wakeup all the tasks which joined with this one                 
   */                                                                 
  value_ptr = (void **) deleted->Wait.return_argument;                
3000f2c4:	e5965028 	ldr	r5, [r6, #40]	; 0x28                          
                                                                      
  while ( (the_thread = _Thread_queue_Dequeue( &api->Join_List )) )   
3000f2c8:	ea000001 	b	3000f2d4 <_POSIX_Threads_Delete_extension+0x30> 
      *(void **)the_thread->Wait.return_argument = value_ptr;         
3000f2cc:	e5903028 	ldr	r3, [r0, #40]	; 0x28                          <== NOT EXECUTED
3000f2d0:	e5835000 	str	r5, [r3]                                      <== NOT EXECUTED
  /*                                                                  
   *  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 )) )   
3000f2d4:	e1a00004 	mov	r0, r4                                        
3000f2d8:	ebfff457 	bl	3000c43c <_Thread_queue_Dequeue>               
3000f2dc:	e3500000 	cmp	r0, #0                                        
3000f2e0:	1afffff9 	bne	3000f2cc <_POSIX_Threads_Delete_extension+0x28>
      *(void **)the_thread->Wait.return_argument = value_ptr;         
                                                                      
  if ( api->schedpolicy == SCHED_SPORADIC )                           
3000f2e4:	e5973084 	ldr	r3, [r7, #132]	; 0x84                         
3000f2e8:	e3530004 	cmp	r3, #4                                        
3000f2ec:	0a000004 	beq	3000f304 <_POSIX_Threads_Delete_extension+0x60>
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
3000f2f0:	e3a03000 	mov	r3, #0                                        
                                                                      
  _Workspace_Free( api );                                             
3000f2f4:	e1a00007 	mov	r0, r7                                        
      *(void **)the_thread->Wait.return_argument = value_ptr;         
                                                                      
  if ( api->schedpolicy == SCHED_SPORADIC )                           
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
3000f2f8:	e58630fc 	str	r3, [r6, #252]	; 0xfc                         
                                                                      
  _Workspace_Free( api );                                             
}                                                                     
3000f2fc:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          
  if ( api->schedpolicy == SCHED_SPORADIC )                           
    (void) _Watchdog_Remove( &api->Sporadic_timer );                  
                                                                      
  deleted->API_Extensions[ THREAD_API_POSIX ] = NULL;                 
                                                                      
  _Workspace_Free( api );                                             
3000f300:	eafff7fa 	b	3000d2f0 <_Workspace_Free>                      
                                                                      
  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 );                  
3000f304:	e28700a8 	add	r0, r7, #168	; 0xa8                           <== NOT EXECUTED
3000f308:	ebfff786 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
3000f30c:	eafffff7 	b	3000f2f0 <_POSIX_Threads_Delete_extension+0x4c> <== NOT EXECUTED
                                                                      

3000f42c <_POSIX_Threads_Sporadic_budget_TSR>: */ void _POSIX_Threads_Sporadic_budget_TSR( Objects_Id id __attribute__((unused)), void *argument ) {
3000f42c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Thread_Control     *the_thread;                                     
  POSIX_API_Control  *api;                                            
                                                                      
  the_thread = argument;                                              
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
3000f430:	e59140fc 	ldr	r4, [r1, #252]	; 0xfc                         <== NOT EXECUTED
 */                                                                   
void _POSIX_Threads_Sporadic_budget_TSR(                              
  Objects_Id      id __attribute__((unused)),                         
  void           *argument                                            
)                                                                     
{                                                                     
3000f434:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  the_thread = argument;                                              
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget );
3000f438:	e2840098 	add	r0, r4, #152	; 0x98                           <== NOT EXECUTED
3000f43c:	eb000420 	bl	300104c4 <_Timespec_To_ticks>                  <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
3000f440:	e59f3054 	ldr	r3, [pc, #84]	; 3000f49c <_POSIX_Threads_Sporadic_budget_TSR+0x70><== NOT EXECUTED
3000f444:	e5942088 	ldr	r2, [r4, #136]	; 0x88                         <== NOT EXECUTED
3000f448:	e5d31000 	ldrb	r1, [r3]                                     <== NOT EXECUTED
   */                                                                 
  #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 ) {                            
3000f44c:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
3000f450:	e0621001 	rsb	r1, r2, r1                                    <== NOT EXECUTED
3000f454:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_init_budget );
                                                                      
  the_thread->cpu_time_budget = ticks;                                
3000f458:	e5850078 	str	r0, [r5, #120]	; 0x78                         <== NOT EXECUTED
                                                                      
  new_priority = _POSIX_Priority_To_core( api->schedparam.sched_priority );
  the_thread->real_priority = new_priority;                           
3000f45c:	e5851018 	str	r1, [r5, #24]                                 <== NOT EXECUTED
   */                                                                 
  #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 ) {                            
3000f460:	1a000002 	bne	3000f470 <_POSIX_Threads_Sporadic_budget_TSR+0x44><== NOT EXECUTED
    /*                                                                
     *  If this would make them less important, then do not change it.
     */                                                               
    if ( the_thread->current_priority > new_priority ) {              
3000f464:	e5953014 	ldr	r3, [r5, #20]                                 <== NOT EXECUTED
3000f468:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
3000f46c:	8a000006 	bhi	3000f48c <_POSIX_Threads_Sporadic_budget_TSR+0x60><== NOT EXECUTED
      #endif                                                          
    }                                                                 
  }                                                                   
                                                                      
  /* ticks is guaranteed to be at least one */                        
  ticks = _Timespec_To_ticks( &api->schedparam.sched_ss_repl_period );
3000f470:	e2840090 	add	r0, r4, #144	; 0x90                           <== NOT EXECUTED
3000f474:	eb000412 	bl	300104c4 <_Timespec_To_ticks>                  <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000f478:	e58400b4 	str	r0, [r4, #180]	; 0xb4                         <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000f47c:	e59f001c 	ldr	r0, [pc, #28]	; 3000f4a0 <_POSIX_Threads_Sporadic_budget_TSR+0x74><== NOT EXECUTED
3000f480:	e28410a8 	add	r1, r4, #168	; 0xa8                           <== NOT EXECUTED
                                                                      
  _Watchdog_Insert_ticks( &api->Sporadic_timer, ticks );              
}                                                                     
3000f484:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
3000f488:	eafff6b7 	b	3000cf6c <_Watchdog_Insert>                     <== NOT EXECUTED
  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 );      
3000f48c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f490:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000f494:	ebfff1fc 	bl	3000bc8c <_Thread_Change_priority>             <== NOT EXECUTED
3000f498:	eafffff4 	b	3000f470 <_POSIX_Threads_Sporadic_budget_TSR+0x44><== NOT EXECUTED
                                                                      

3000f4a4 <_POSIX_Threads_Sporadic_budget_callout>: ) { POSIX_API_Control *api; uint32_t new_priority; api = the_thread->API_Extensions[ THREAD_API_POSIX ];
3000f4a4:	e59020fc 	ldr	r2, [r0, #252]	; 0xfc                         <== NOT EXECUTED
3000f4a8:	e592108c 	ldr	r1, [r2, #140]	; 0x8c                         <== NOT EXECUTED
3000f4ac:	e59f2030 	ldr	r2, [pc, #48]	; 3000f4e4 <_POSIX_Threads_Sporadic_budget_callout+0x40><== NOT EXECUTED
3000f4b0:	e5d2c000 	ldrb	ip, [r2]                                     <== NOT EXECUTED
   */                                                                 
  #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 ) {                            
3000f4b4:	e590201c 	ldr	r2, [r0, #28]                                 <== NOT EXECUTED
3000f4b8:	e061100c 	rsb	r1, r1, ip                                    <== NOT EXECUTED
3000f4bc:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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 */
3000f4c0:	e3e02000 	mvn	r2, #0                                        <== NOT EXECUTED
3000f4c4:	e5802078 	str	r2, [r0, #120]	; 0x78                         <== NOT EXECUTED
                                                                      
  new_priority = _POSIX_Priority_To_core(api->schedparam.sched_ss_low_priority);
  the_thread->real_priority = new_priority;                           
3000f4c8:	e5801018 	str	r1, [r0, #24]                                 <== NOT EXECUTED
   */                                                                 
  #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 ) {                            
3000f4cc:	112fff1e 	bxne	lr                                           <== 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 ) {              
3000f4d0:	e5903014 	ldr	r3, [r0, #20]                                 <== NOT EXECUTED
3000f4d4:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
3000f4d8:	212fff1e 	bxcs	lr                                           <== NOT EXECUTED
      _Thread_Change_priority( the_thread, new_priority, true );      
3000f4dc:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000f4e0:	eafff1e9 	b	3000bc8c <_Thread_Change_priority>              <== NOT EXECUTED
                                                                      

300117a4 <_POSIX_Threads_cancel_run>: #include <rtems/posix/threadsup.h> void _POSIX_Threads_cancel_run( Thread_Control *the_thread ) {
300117a4:	e92d4070 	push	{r4, r5, r6, lr}                             
  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 ];    
300117a8:	e59050fc 	ldr	r5, [r0, #252]	; 0xfc                         
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
300117ac:	e59530e4 	ldr	r3, [r5, #228]	; 0xe4                         
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
300117b0:	e28560e8 	add	r6, r5, #232	; 0xe8                           
300117b4:	e1530006 	cmp	r3, r6                                        
                                                                      
  thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];    
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
300117b8:	e3a03001 	mov	r3, #1                                        
300117bc:	e58530d8 	str	r3, [r5, #216]	; 0xd8                         
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
300117c0:	08bd8070 	popeq	{r4, r5, r6, pc}                            
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300117c4:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
300117c8:	e3813080 	orr	r3, r1, #128	; 0x80                           <== NOT EXECUTED
300117cc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    _ISR_Disable( level );                                            
      handler = (POSIX_Cancel_Handler_control *)                      
300117d0:	e59540ec 	ldr	r4, [r5, #236]	; 0xec                         <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
300117d4:	e894000c 	ldm	r4, {r2, r3}                                  <== NOT EXECUTED
  previous       = the_node->previous;                                
  next->previous = previous;                                          
300117d8:	e5823004 	str	r3, [r2, #4]                                  <== NOT EXECUTED
  previous->next = next;                                              
300117dc:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
300117e0:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
           _Chain_Tail( handler_stack )->previous;                    
      _Chain_Extract_unprotected( &handler->Node );                   
    _ISR_Enable( level );                                             
                                                                      
    (*handler->routine)( handler->arg );                              
300117e4:	e594000c 	ldr	r0, [r4, #12]                                 <== NOT EXECUTED
300117e8:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
300117ec:	e594f008 	ldr	pc, [r4, #8]                                  <== NOT EXECUTED
                                                                      
    _Workspace_Free( handler );                                       
300117f0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300117f4:	ebffeebd 	bl	3000d2f0 <_Workspace_Free>                     <== NOT EXECUTED
                                                                      
  handler_stack = &thread_support->Cancellation_Handlers;             
                                                                      
  thread_support->cancelability_state = PTHREAD_CANCEL_DISABLE;       
                                                                      
  while ( !_Chain_Is_empty( handler_stack ) ) {                       
300117f8:	e59530e4 	ldr	r3, [r5, #228]	; 0xe4                         <== NOT EXECUTED
300117fc:	e1530006 	cmp	r3, r6                                        <== NOT EXECUTED
30011800:	1affffef 	bne	300117c4 <_POSIX_Threads_cancel_run+0x20>     <== NOT EXECUTED
30011804:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

30010250 <_POSIX_Timer_Insert_helper>: Watchdog_Interval ticks, Objects_Id id, Watchdog_Service_routine_entry TSR, void *arg ) {
30010250:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
30010254:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
30010258:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
3001025c:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
30010260:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
  ISR_Level            level;                                         
                                                                      
  (void) _Watchdog_Remove( timer );                                   
30010264:	ebfff663 	bl	3000dbf8 <_Watchdog_Remove>                    <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30010268:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3001026c:	e3863080 	orr	r3, r6, #128	; 0x80                           <== NOT EXECUTED
30010270:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
                                                                      
    /*                                                                
     *  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 ) {                        
30010274:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
30010278:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3001027c:	0a000002 	beq	3001028c <_POSIX_Timer_Insert_helper+0x3c>    <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30010280:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      return false;                                                   
30010284:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30010288:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001028c:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
30010290:	e59d3018 	ldr	r3, [sp, #24]                                 <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
30010294:	e584801c 	str	r8, [r4, #28]                                 <== NOT EXECUTED
  the_watchdog->id        = id;                                       
30010298:	e5847020 	str	r7, [r4, #32]                                 <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
3001029c:	e5843024 	str	r3, [r4, #36]	; 0x24                          <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
300102a0:	e584500c 	str	r5, [r4, #12]                                 <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
300102a4:	e59f0010 	ldr	r0, [pc, #16]	; 300102bc <_POSIX_Timer_Insert_helper+0x6c><== NOT EXECUTED
300102a8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
300102ac:	ebfff5e2 	bl	3000da3c <_Watchdog_Insert>                    <== NOT EXECUTED
300102b0:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
     *  so we can atomically initialize it as in use.                 
     */                                                               
    _Watchdog_Initialize( timer, TSR, id, arg );                      
    _Watchdog_Insert_ticks( timer, ticks );                           
  _ISR_Enable( level );                                               
  return true;                                                        
300102b4:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
}                                                                     
300102b8:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

30009d60 <_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) {
30009d60:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
30009d64:	e5913068 	ldr	r3, [r1, #104]	; 0x68                         <== NOT EXECUTED
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
30009d68:	e5912054 	ldr	r2, [r1, #84]	; 0x54                          <== NOT EXECUTED
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
30009d6c:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
30009d70:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
 *  This is the operation that is run when a timer expires            
 */                                                                   
void _POSIX_Timer_TSR(                                                
  Objects_Id timer __attribute__((unused)),                           
  void *data)                                                         
{                                                                     
30009d74:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30009d78:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  bool                 activated;                                     
                                                                      
  ptimer = (POSIX_Timer_Control *)data;                               
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
30009d7c:	e5813068 	str	r3, [r1, #104]	; 0x68                         <== NOT EXECUTED
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
30009d80:	1a000004 	bne	30009d98 <_POSIX_Timer_TSR+0x38>              <== NOT EXECUTED
30009d84:	e5913058 	ldr	r3, [r1, #88]	; 0x58                          <== NOT EXECUTED
30009d88:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
                                                                      
    /* 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;                     
30009d8c:	03a03004 	moveq	r3, #4                                      <== NOT EXECUTED
30009d90:	05c1303c 	strbeq	r3, [r1, #60]	; 0x3c                       <== NOT EXECUTED
                                                                      
  /* Increment the number of expirations. */                          
  ptimer->overrun = ptimer->overrun + 1;                              
                                                                      
  /* The timer must be reprogrammed */                                
  if ( ( ptimer->timer_data.it_interval.tv_sec  != 0 ) ||             
30009d94:	0a00000d 	beq	30009dd0 <_POSIX_Timer_TSR+0x70>              <== NOT EXECUTED
       ( ptimer->timer_data.it_interval.tv_nsec != 0 ) ) {            
    activated = _POSIX_Timer_Insert_helper(                           
30009d98:	e5941064 	ldr	r1, [r4, #100]	; 0x64                         <== NOT EXECUTED
30009d9c:	e5942008 	ldr	r2, [r4, #8]                                  <== NOT EXECUTED
30009da0:	e59f3040 	ldr	r3, [pc, #64]	; 30009de8 <_POSIX_Timer_TSR+0x88><== NOT EXECUTED
30009da4:	e2840010 	add	r0, r4, #16                                   <== NOT EXECUTED
30009da8:	e58d4000 	str	r4, [sp]                                      <== NOT EXECUTED
30009dac:	eb001927 	bl	30010250 <_POSIX_Timer_Insert_helper>          <== NOT EXECUTED
      ptimer->ticks,                                                  
      ptimer->Object.id,                                              
      _POSIX_Timer_TSR,                                               
      ptimer                                                          
    );                                                                
    if ( !activated )                                                 
30009db0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009db4:	1a000001 	bne	30009dc0 <_POSIX_Timer_TSR+0x60>              <== NOT EXECUTED
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
}                                                                     
30009db8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009dbc:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    );                                                                
    if ( !activated )                                                 
      return;                                                         
                                                                      
    /* Store the time when the timer was started again */             
    _TOD_Get( &ptimer->time );                                        
30009dc0:	e284006c 	add	r0, r4, #108	; 0x6c                           <== NOT EXECUTED
30009dc4:	eb000581 	bl	3000b3d0 <_TOD_Get>                            <== NOT EXECUTED
                                                                      
    /* The state really did not change but just to be safe */         
    ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                     
30009dc8:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30009dcc:	e5c4303c 	strb	r3, [r4, #60]	; 0x3c                         <== 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 ) ) {
30009dd0:	e5940038 	ldr	r0, [r4, #56]	; 0x38                          <== NOT EXECUTED
30009dd4:	e5941044 	ldr	r1, [r4, #68]	; 0x44                          <== NOT EXECUTED
30009dd8:	eb0017ff 	bl	3000fddc <pthread_kill>                        <== NOT EXECUTED
  }                                                                   
                                                                      
  /* After the signal handler returns, the count of expirations of the
   * timer must be set to 0.                                          
   */                                                                 
  ptimer->overrun = 0;                                                
30009ddc:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
30009de0:	e5843068 	str	r3, [r4, #104]	; 0x68                         <== NOT EXECUTED
30009de4:	eafffff3 	b	30009db8 <_POSIX_Timer_TSR+0x58>                <== NOT EXECUTED
                                                                      

3000ef4c <_POSIX_signals_Abnormal_termination_handler>: sigset_t _POSIX_signals_Pending; void _POSIX_signals_Abnormal_termination_handler( int signo __attribute__((unused)) ) {
3000ef4c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  exit( 1 );                                                          
3000ef50:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000ef54:	eb000c4b 	bl	30012088 <exit>                                <== NOT EXECUTED
                                                                      

3000bb70 <_POSIX_signals_Alarm_TSR>: void _POSIX_signals_Alarm_TSR( Objects_Id id __attribute__((unused)), void *argument __attribute__((unused)) ) {
3000bb70:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  int status;                                                         
                                                                      
  status = kill( getpid(), SIGALRM );                                 
3000bb74:	ebfff41b 	bl	30008be8 <getpid>                              <== NOT EXECUTED
3000bb78:	e3a0100e 	mov	r1, #14                                       <== NOT EXECUTED
  /* XXX can't print from an ISR, should this be fatal? */            
}                                                                     
3000bb7c:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
  void           *argument __attribute__((unused))                    
)                                                                     
{                                                                     
  int status;                                                         
                                                                      
  status = kill( getpid(), SIGALRM );                                 
3000bb80:	ea00004c 	b	3000bcb8 <kill>                                 <== NOT EXECUTED
                                                                      

300118a0 <_POSIX_signals_Check_signal>: bool _POSIX_signals_Check_signal( POSIX_API_Control *api, int signo, bool is_global ) {
300118a0:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
300118a4:	e24dd040 	sub	sp, sp, #64	; 0x40                            <== NOT EXECUTED
300118a8:	e20230ff 	and	r3, r2, #255	; 0xff                           <== NOT EXECUTED
  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,   
300118ac:	e28d6034 	add	r6, sp, #52	; 0x34                            <== NOT EXECUTED
300118b0:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
300118b4:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
300118b8:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
bool    _POSIX_signals_Check_signal(                                  
  POSIX_API_Control  *api,                                            
  int                 signo,                                          
  bool                is_global                                       
)                                                                     
{                                                                     
300118bc:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
300118c0:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  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,   
300118c4:	eb000038 	bl	300119ac <_POSIX_signals_Clear_signals>        <== NOT EXECUTED
300118c8:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
300118cc:	0a00002b 	beq	30011980 <_POSIX_signals_Check_signal+0xe0>   <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
300118d0:	e59fa0cc 	ldr	sl, [pc, #204]	; 300119a4 <_POSIX_signals_Check_signal+0x104><== NOT EXECUTED
300118d4:	e0849084 	add	r9, r4, r4, lsl #1                            <== NOT EXECUTED
300118d8:	e1a09109 	lsl	r9, r9, #2                                    <== NOT EXECUTED
300118dc:	e08a8009 	add	r8, sl, r9                                    <== NOT EXECUTED
300118e0:	e598b008 	ldr	fp, [r8, #8]                                  <== NOT EXECUTED
300118e4:	e35b0001 	cmp	fp, #1                                        <== NOT EXECUTED
    return false;                                                     
300118e8:	03a03000 	moveq	r3, #0                                      <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   *  Just to prevent sending a signal which is currently being ignored.
   */                                                                 
  if ( _POSIX_signals_Vectors[ signo ].sa_handler == SIG_IGN )        
300118ec:	0a000023 	beq	30011980 <_POSIX_signals_Check_signal+0xe0>   <== NOT EXECUTED
  /*                                                                  
   *  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,  
300118f0:	e59f70b0 	ldr	r7, [pc, #176]	; 300119a8 <_POSIX_signals_Check_signal+0x108><== NOT EXECUTED
300118f4:	e28d200c 	add	r2, sp, #12                                   <== NOT EXECUTED
300118f8:	e597c004 	ldr	ip, [r7, #4]                                  <== NOT EXECUTED
300118fc:	e58d2004 	str	r2, [sp, #4]                                  <== NOT EXECUTED
    return false;                                                     
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
30011900:	e59530d0 	ldr	r3, [r5, #208]	; 0xd0                         <== NOT EXECUTED
  /*                                                                  
   *  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,  
30011904:	e59de004 	ldr	lr, [sp, #4]                                  <== NOT EXECUTED
30011908:	e28cc020 	add	ip, ip, #32                                   <== NOT EXECUTED
    return false;                                                     
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
3001190c:	e58d3008 	str	r3, [sp, #8]                                  <== NOT EXECUTED
  /*                                                                  
   *  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,  
30011910:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
30011914:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
30011918:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3001191c:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
30011920:	e89c0003 	ldm	ip, {r0, r1}                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
30011924:	e5983004 	ldr	r3, [r8, #4]                                  <== NOT EXECUTED
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
30011928:	e79a2009 	ldr	r2, [sl, r9]                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
3001192c:	e59dc008 	ldr	ip, [sp, #8]                                  <== NOT EXECUTED
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
30011930:	e3520002 	cmp	r2, #2                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Block the signals requested in sa_mask                          
   */                                                                 
  saved_signals_blocked = api->signals_blocked;                       
  api->signals_blocked |= _POSIX_signals_Vectors[ signo ].sa_mask;    
30011934:	e183300c 	orr	r3, r3, ip                                    <== NOT EXECUTED
30011938:	e58530d0 	str	r3, [r5, #208]	; 0xd0                         <== NOT EXECUTED
  /*                                                                  
   *  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,  
3001193c:	e88e0003 	stm	lr, {r0, r1}                                  <== NOT EXECUTED
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
30011940:	0a000011 	beq	3001198c <_POSIX_signals_Check_signal+0xec>   <== NOT EXECUTED
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
    default:                                                          
      (*_POSIX_signals_Vectors[ signo ].sa_handler)( signo );         
30011944:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30011948:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001194c:	e12fff1b 	bx	fp                                             <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  Restore the blocking information                                
   */                                                                 
  memcpy( &_Thread_Executing->Wait, &stored_thread_wait_information,  
30011950:	e597c004 	ldr	ip, [r7, #4]                                  <== NOT EXECUTED
30011954:	e59d4004 	ldr	r4, [sp, #4]                                  <== NOT EXECUTED
30011958:	e28cc020 	add	ip, ip, #32                                   <== NOT EXECUTED
3001195c:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
30011960:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
30011964:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
30011968:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
3001196c:	e8940003 	ldm	r4, {r0, r1}                                  <== NOT EXECUTED
30011970:	e88c0003 	stm	ip, {r0, r1}                                  <== NOT EXECUTED
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
30011974:	e59d2008 	ldr	r2, [sp, #8]                                  <== NOT EXECUTED
                                                                      
  return true;                                                        
30011978:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
          sizeof( Thread_Wait_information ));                         
                                                                      
  /*                                                                  
   *  Restore the previous set of blocked signals                     
   */                                                                 
  api->signals_blocked = saved_signals_blocked;                       
3001197c:	e58520d0 	str	r2, [r5, #208]	; 0xd0                         <== NOT EXECUTED
                                                                      
  return true;                                                        
}                                                                     
30011980:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
30011984:	e28dd040 	add	sp, sp, #64	; 0x40                            <== NOT EXECUTED
30011988:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
  /*                                                                  
   *  Here, the signal handler function executes                      
   */                                                                 
  switch ( _POSIX_signals_Vectors[ signo ].sa_flags ) {               
    case SA_SIGINFO:                                                  
      (*_POSIX_signals_Vectors[ signo ].sa_sigaction)(                
3001198c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30011990:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30011994:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
30011998:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001199c:	e12fff1b 	bx	fp                                             <== NOT EXECUTED
        signo,                                                        
        &siginfo_struct,                                              
        NULL        /* context is undefined per 1003.1b-1993, p. 66 */
      );                                                              
      break;                                                          
300119a0:	eaffffea 	b	30011950 <_POSIX_signals_Check_signal+0xb0>     <== NOT EXECUTED
                                                                      

30011ff4 <_POSIX_signals_Clear_process_signals>: static inline uint32_t arm_interrupt_disable( void ) { uint32_t arm_switch_reg; uint32_t level; __asm__ volatile (
30011ff4:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
30011ff8:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
30011ffc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  mask         = signo_to_mask( signo );                              
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
30012000:	e59f1050 	ldr	r1, [pc, #80]	; 30012058 <_POSIX_signals_Clear_process_signals+0x64><== NOT EXECUTED
30012004:	e0803080 	add	r3, r0, r0, lsl #1                            <== NOT EXECUTED
30012008:	e1a03103 	lsl	r3, r3, #2                                    <== NOT EXECUTED
3001200c:	e7911003 	ldr	r1, [r1, r3]                                  <== NOT EXECUTED
30012010:	e3510002 	cmp	r1, #2                                        <== NOT EXECUTED
30012014:	0a000007 	beq	30012038 <_POSIX_signals_Clear_process_signals+0x44><== NOT EXECUTED
      if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )     
       clear_signal = false;                                          
    }                                                                 
    if ( clear_signal ) {                                             
      _POSIX_signals_Pending &= ~mask;                                
30012018:	e59f303c 	ldr	r3, [pc, #60]	; 3001205c <_POSIX_signals_Clear_process_signals+0x68><== NOT EXECUTED
3001201c:	e3a0c001 	mov	ip, #1                                        <== NOT EXECUTED
30012020:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
30012024:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
30012028:	e1c1001c 	bic	r0, r1, ip, lsl r0                            <== NOT EXECUTED
3001202c:	e5830000 	str	r0, [r3]                                      <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30012030:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
30012034:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
30012038:	e59f1020 	ldr	r1, [pc, #32]	; 30012060 <_POSIX_signals_Clear_process_signals+0x6c><== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3001203c:	e283c004 	add	ip, r3, #4                                    <== NOT EXECUTED
                                                                      
  ISR_Level  level;                                                   
                                                                      
  _ISR_Disable( level );                                              
    if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {   
      if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )     
30012040:	e7913003 	ldr	r3, [r1, r3]                                  <== NOT EXECUTED
30012044:	e08c1001 	add	r1, ip, r1                                    <== NOT EXECUTED
30012048:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
3001204c:	0afffff1 	beq	30012018 <_POSIX_signals_Clear_process_signals+0x24><== NOT EXECUTED
30012050:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
    }                                                                 
    if ( clear_signal ) {                                             
      _POSIX_signals_Pending &= ~mask;                                
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
30012054:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300119ac <_POSIX_signals_Clear_signals>: int signo, siginfo_t *info, bool is_global, bool check_blocked ) {
300119ac:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
300119b0:	e5ddc018 	ldrb	ip, [sp, #24]                                <== NOT EXECUTED
300119b4:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
                                                                      
  /* 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 )                                                
300119b8:	e35c0000 	cmp	ip, #0                                        <== NOT EXECUTED
  int                 signo,                                          
  siginfo_t          *info,                                           
  bool                is_global,                                      
  bool                check_blocked                                   
)                                                                     
{                                                                     
300119bc:	e1a06002 	mov	r6, r2                                        <== NOT EXECUTED
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
300119c0:	e2411001 	sub	r1, r1, #1                                    <== NOT EXECUTED
300119c4:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
300119c8:	e1a01112 	lsl	r1, r2, r1                                    <== NOT EXECUTED
  /* 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 )                                                
    signals_blocked = ~api->signals_blocked;                          
300119cc:	159020d0 	ldrne	r2, [r0, #208]	; 0xd0                       <== NOT EXECUTED
  int                 signo,                                          
  siginfo_t          *info,                                           
  bool                is_global,                                      
  bool                check_blocked                                   
)                                                                     
{                                                                     
300119d0:	e20330ff 	and	r3, r3, #255	; 0xff                           <== NOT EXECUTED
  /* 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 )                                                
    signals_blocked = ~api->signals_blocked;                          
300119d4:	11e02002 	mvnne	r2, r2                                      <== NOT EXECUTED
  else                                                                
    signals_blocked = SIGNAL_ALL_MASK;                                
300119d8:	03e02000 	mvneq	r2, #0                                      <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300119dc:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
300119e0:	e385c080 	orr	ip, r5, #128	; 0x80                           <== NOT EXECUTED
300119e4:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
                                                                      
  /* XXX is this right for siginfo type signals? */                   
  /* XXX are we sure they can be cleared the same way? */             
                                                                      
  _ISR_Disable( level );                                              
    if ( is_global ) {                                                
300119e8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
300119ec:	0a00000f 	beq	30011a30 <_POSIX_signals_Clear_signals+0x84>  <== NOT EXECUTED
       if ( mask & (_POSIX_signals_Pending & signals_blocked) ) {     
300119f0:	e59f30c4 	ldr	r3, [pc, #196]	; 30011abc <_POSIX_signals_Clear_signals+0x110><== NOT EXECUTED
300119f4:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
300119f8:	e0011000 	and	r1, r1, r0                                    <== NOT EXECUTED
300119fc:	e0110002 	ands	r0, r1, r2                                   <== NOT EXECUTED
30011a00:	0a000008 	beq	30011a28 <_POSIX_signals_Clear_signals+0x7c>  <== NOT EXECUTED
         if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
30011a04:	e0843084 	add	r3, r4, r4, lsl #1                            <== NOT EXECUTED
30011a08:	e59f20b0 	ldr	r2, [pc, #176]	; 30011ac0 <_POSIX_signals_Clear_signals+0x114><== NOT EXECUTED
30011a0c:	e1a03103 	lsl	r3, r3, #2                                    <== NOT EXECUTED
30011a10:	e7922003 	ldr	r2, [r2, r3]                                  <== NOT EXECUTED
30011a14:	e3520002 	cmp	r2, #2                                        <== NOT EXECUTED
30011a18:	0a00000d 	beq	30011a54 <_POSIX_signals_Clear_signals+0xa8>  <== NOT EXECUTED
               &psiginfo->Node                                        
             );                                                       
           } else                                                     
             do_callout = false;                                      
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
30011a1c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30011a20:	eb000173 	bl	30011ff4 <_POSIX_signals_Clear_process_signals><== NOT EXECUTED
         do_callout = true;                                           
30011a24:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30011a28:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
        do_callout = true;                                            
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  return do_callout;                                                  
}                                                                     
30011a2c:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
         }                                                            
         _POSIX_signals_Clear_process_signals( signo );               
         do_callout = true;                                           
       }                                                              
    } else {                                                          
      if ( mask & (api->signals_pending & signals_blocked) ) {        
30011a30:	e590c0d4 	ldr	ip, [r0, #212]	; 0xd4                         <== NOT EXECUTED
30011a34:	e001400c 	and	r4, r1, ip                                    <== NOT EXECUTED
30011a38:	e1140002 	tst	r4, r2                                        <== NOT EXECUTED
        api->signals_pending &= ~mask;                                
30011a3c:	11cc1001 	bicne	r1, ip, r1                                  <== NOT EXECUTED
30011a40:	158010d4 	strne	r1, [r0, #212]	; 0xd4                       <== NOT EXECUTED
  bool                        do_callout;                             
  POSIX_signals_Siginfo_node *psiginfo;                               
                                                                      
  mask = signo_to_mask( signo );                                      
                                                                      
  do_callout = false;                                                 
30011a44:	01a00003 	moveq	r0, r3                                      <== NOT EXECUTED
         do_callout = true;                                           
       }                                                              
    } else {                                                          
      if ( mask & (api->signals_pending & signals_blocked) ) {        
        api->signals_pending &= ~mask;                                
        do_callout = true;                                            
30011a48:	13a00001 	movne	r0, #1                                      <== NOT EXECUTED
30011a4c:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
      }                                                               
    }                                                                 
  _ISR_Enable( level );                                               
  return do_callout;                                                  
}                                                                     
30011a50:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
30011a54:	e59f2068 	ldr	r2, [pc, #104]	; 30011ac4 <_POSIX_signals_Clear_signals+0x118><== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
30011a58:	e2831004 	add	r1, r3, #4                                    <== NOT EXECUTED
30011a5c:	e7927003 	ldr	r7, [r2, r3]                                  <== NOT EXECUTED
30011a60:	e0811002 	add	r1, r1, r2                                    <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
30011a64:	e1570001 	cmp	r7, r1                                        <== NOT EXECUTED
30011a68:	e082c003 	add	ip, r2, r3                                    <== NOT EXECUTED
30011a6c:	0a00000f 	beq	30011ab0 <_POSIX_signals_Clear_signals+0x104> <== NOT EXECUTED
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
30011a70:	e1a08007 	mov	r8, r7                                        <== NOT EXECUTED
30011a74:	e4981008 	ldr	r1, [r8], #8                                  <== NOT EXECUTED
    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 );             
30011a78:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
  head->next = new_first;                                             
30011a7c:	e7821003 	str	r1, [r2, r3]                                  <== NOT EXECUTED
  new_first->previous = head;                                         
30011a80:	e581c004 	str	ip, [r1, #4]                                  <== NOT EXECUTED
30011a84:	eb00015a 	bl	30011ff4 <_POSIX_signals_Clear_process_signals><== NOT EXECUTED
            *  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;                                  
30011a88:	e8980007 	ldm	r8, {r0, r1, r2}                              <== NOT EXECUTED
30011a8c:	e8860007 	stm	r6, {r0, r1, r2}                              <== NOT EXECUTED
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
30011a90:	e59f3030 	ldr	r3, [pc, #48]	; 30011ac8 <_POSIX_signals_Clear_signals+0x11c><== NOT EXECUTED
30011a94:	e5932008 	ldr	r2, [r3, #8]                                  <== NOT EXECUTED
                                                                      
  the_node->next = tail;                                              
30011a98:	e2831004 	add	r1, r3, #4                                    <== NOT EXECUTED
30011a9c:	e5871000 	str	r1, [r7]                                      <== NOT EXECUTED
  tail->previous = the_node;                                          
30011aa0:	e5837008 	str	r7, [r3, #8]                                  <== NOT EXECUTED
  old_last->next = the_node;                                          
30011aa4:	e5827000 	str	r7, [r2]                                      <== NOT EXECUTED
  the_node->previous = old_last;                                      
30011aa8:	e5872004 	str	r2, [r7, #4]                                  <== NOT EXECUTED
30011aac:	eaffffda 	b	30011a1c <_POSIX_signals_Clear_signals+0x70>    <== NOT EXECUTED
    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 );             
30011ab0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30011ab4:	eb00014e 	bl	30011ff4 <_POSIX_signals_Clear_process_signals><== NOT EXECUTED
30011ab8:	eaffffd7 	b	30011a1c <_POSIX_signals_Clear_signals+0x70>    <== NOT EXECUTED
                                                                      

3000a94c <_POSIX_signals_Get_lowest>: sigset_t set ) { int signo; for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {
3000a94c:	e3a0301b 	mov	r3, #27                                       <== NOT EXECUTED
3000a950:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
3000a954:	e2432001 	sub	r2, r3, #1                                    <== NOT EXECUTED
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
    if ( set & signo_to_mask( signo ) ) {                             
3000a958:	e0102211 	ands	r2, r0, r1, lsl r2                           <== NOT EXECUTED
3000a95c:	1a00000b 	bne	3000a990 <_POSIX_signals_Get_lowest+0x44>     <== NOT EXECUTED
  sigset_t   set                                                      
)                                                                     
{                                                                     
  int signo;                                                          
                                                                      
  for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {            
3000a960:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000a964:	e3530020 	cmp	r3, #32                                       <== NOT EXECUTED
3000a968:	1afffff9 	bne	3000a954 <_POSIX_signals_Get_lowest+0x8>      <== NOT EXECUTED
3000a96c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000a970:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000a974:	ea000002 	b	3000a984 <_POSIX_signals_Get_lowest+0x38>       <== NOT EXECUTED
   */                                                                 
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
3000a978:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000a97c:	e353001b 	cmp	r3, #27                                       <== NOT EXECUTED
3000a980:	0a000002 	beq	3000a990 <_POSIX_signals_Get_lowest+0x44>     <== NOT EXECUTED
#include <rtems/posix/psignal.h>                                      
#include <rtems/seterr.h>                                             
#include <rtems/posix/time.h>                                         
#include <rtems/score/isr.h>                                          
                                                                      
int _POSIX_signals_Get_lowest(                                        
3000a984:	e2432001 	sub	r2, r3, #1                                    <== NOT EXECUTED
                                                                      
  #if (SIGHUP != 1)                                                   
    #error "Assumption that SIGHUP==1 violated!!"                     
  #endif                                                              
  for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {        
    if ( set & signo_to_mask( signo ) ) {                             
3000a988:	e0102211 	ands	r2, r0, r1, lsl r2                           <== NOT EXECUTED
3000a98c:	0afffff9 	beq	3000a978 <_POSIX_signals_Get_lowest+0x2c>     <== NOT EXECUTED
   *  a return 0.  This routine will NOT be called unless a signal    
   *  is pending in the set passed in.                                
   */                                                                 
found_it:                                                             
  return signo;                                                       
}                                                                     
3000a990:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000a994:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ef58 <_POSIX_signals_Post_switch_extension>: */ void _POSIX_signals_Post_switch_extension( Thread_Control *the_thread ) {
3000ef58:	e92d4070 	push	{r4, r5, r6, lr}                             
  POSIX_API_Control  *api;                                            
  int                 signo;                                          
  ISR_Level           level;                                          
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
3000ef5c:	e59050fc 	ldr	r5, [r0, #252]	; 0xfc                         
                                                                      
  /*                                                                  
   * api may be NULL in case of a thread close in progress            
   */                                                                 
  if ( !api )                                                         
3000ef60:	e3550000 	cmp	r5, #0                                        
3000ef64:	08bd8070 	popeq	{r4, r5, r6, pc}                            
3000ef68:	e59f6094 	ldr	r6, [pc, #148]	; 3000f004 <_POSIX_signals_Post_switch_extension+0xac>
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000ef6c:	e10f3000 	mrs	r3, CPSR                                      
3000ef70:	e3832080 	orr	r2, r3, #128	; 0x80                           
3000ef74:	e129f002 	msr	CPSR_fc, r2                                   
   *  processed at all.  No point in doing this loop otherwise.       
   */                                                                 
  while (1) {                                                         
    _ISR_Disable( level );                                            
      if ( !(~api->signals_blocked &                                  
            (api->signals_pending | _POSIX_signals_Pending)) ) {      
3000ef78:	e5960000 	ldr	r0, [r6]                                      
3000ef7c:	e59520d4 	ldr	r2, [r5, #212]	; 0xd4                         
   *  The first thing done is to check there are any signals to be    
   *  processed at all.  No point in doing this loop otherwise.       
   */                                                                 
  while (1) {                                                         
    _ISR_Disable( level );                                            
      if ( !(~api->signals_blocked &                                  
3000ef80:	e59510d0 	ldr	r1, [r5, #208]	; 0xd0                         
3000ef84:	e1802002 	orr	r2, r0, r2                                    
3000ef88:	e1c22001 	bic	r2, r2, r1                                    
3000ef8c:	e3520000 	cmp	r2, #0                                        
3000ef90:	0a000019 	beq	3000effc <_POSIX_signals_Post_switch_extension+0xa4>
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000ef94:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
       _ISR_Enable( level );                                          
       break;                                                         
     }                                                                
    _ISR_Enable( level );                                             
                                                                      
    for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {          
3000ef98:	e3a0401b 	mov	r4, #27                                       <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, false );               
3000ef9c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000efa0:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000efa4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000efa8:	eb000a3c 	bl	300118a0 <_POSIX_signals_Check_signal>         <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, true );                
3000efac:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000efb0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000efb4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
       _ISR_Enable( level );                                          
       break;                                                         
     }                                                                
    _ISR_Enable( level );                                             
                                                                      
    for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {          
3000efb8:	e0844002 	add	r4, r4, r2                                    <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, false );               
      _POSIX_signals_Check_signal( api, signo, true );                
3000efbc:	eb000a37 	bl	300118a0 <_POSIX_signals_Check_signal>         <== NOT EXECUTED
       _ISR_Enable( level );                                          
       break;                                                         
     }                                                                
    _ISR_Enable( level );                                             
                                                                      
    for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {          
3000efc0:	e3540020 	cmp	r4, #32                                       <== NOT EXECUTED
3000efc4:	1afffff4 	bne	3000ef9c <_POSIX_signals_Post_switch_extension+0x44><== NOT EXECUTED
3000efc8:	e3a04001 	mov	r4, #1                                        <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, true );                
    }                                                                 
    /* Unfortunately - nothing like __SIGFIRSTNOTRT in newlib signal .h */
                                                                      
    for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {      
      _POSIX_signals_Check_signal( api, signo, false );               
3000efcc:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000efd0:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000efd4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000efd8:	eb000a30 	bl	300118a0 <_POSIX_signals_Check_signal>         <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, true );                
3000efdc:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000efe0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000efe4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, false );               
      _POSIX_signals_Check_signal( api, signo, true );                
    }                                                                 
    /* Unfortunately - nothing like __SIGFIRSTNOTRT in newlib signal .h */
                                                                      
    for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {      
3000efe8:	e0844002 	add	r4, r4, r2                                    <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, false );               
      _POSIX_signals_Check_signal( api, signo, true );                
3000efec:	eb000a2b 	bl	300118a0 <_POSIX_signals_Check_signal>         <== NOT EXECUTED
      _POSIX_signals_Check_signal( api, signo, false );               
      _POSIX_signals_Check_signal( api, signo, true );                
    }                                                                 
    /* Unfortunately - nothing like __SIGFIRSTNOTRT in newlib signal .h */
                                                                      
    for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) {      
3000eff0:	e354001b 	cmp	r4, #27                                       <== NOT EXECUTED
3000eff4:	1afffff4 	bne	3000efcc <_POSIX_signals_Post_switch_extension+0x74><== NOT EXECUTED
3000eff8:	eaffffdb 	b	3000ef6c <_POSIX_signals_Post_switch_extension+0x14><== NOT EXECUTED
3000effc:	e129f003 	msr	CPSR_fc, r3                                   
3000f000:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

300099a4 <_POSIX_signals_Ualarm_TSR>: void _POSIX_signals_Ualarm_TSR( Objects_Id id __attribute__((unused)), void *argument __attribute__((unused)) ) {
300099a4:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Watchdog_Reset(                            
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  (void) _Watchdog_Remove( the_watchdog );                            
300099a8:	e59f4020 	ldr	r4, [pc, #32]	; 300099d0 <_POSIX_signals_Ualarm_TSR+0x2c><== NOT EXECUTED
  /*                                                                  
   * Send a SIGALRM but if there is a problem, ignore it.             
   * It's OK, there isn't a way this should fail.                     
   */                                                                 
  (void) kill( getpid(), SIGALRM );                                   
300099ac:	ebfff372 	bl	3000677c <getpid>                              <== NOT EXECUTED
300099b0:	e3a0100e 	mov	r1, #14                                       <== NOT EXECUTED
300099b4:	ebffff79 	bl	300097a0 <kill>                                <== NOT EXECUTED
300099b8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300099bc:	eb000f7f 	bl	3000d7c0 <_Watchdog_Remove>                    <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
300099c0:	e59f000c 	ldr	r0, [pc, #12]	; 300099d4 <_POSIX_signals_Ualarm_TSR+0x30><== NOT EXECUTED
300099c4:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   * If the reset interval is non-zero, reschedule ourselves.         
   */                                                                 
  _Watchdog_Reset( &_POSIX_signals_Ualarm_timer );                    
}                                                                     
300099c8:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
300099cc:	ea000f0c 	b	3000d604 <_Watchdog_Insert>                     <== NOT EXECUTED
                                                                      

30026fbc <_POSIX_signals_Unblock_thread>: /* * Is the thread is specifically waiting for a signal? */ if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
30026fbc:	e590c010 	ldr	ip, [r0, #16]                                 <== NOT EXECUTED
30026fc0:	e59f3110 	ldr	r3, [pc, #272]	; 300270d8 <_POSIX_signals_Unblock_thread+0x11c><== NOT EXECUTED
bool _POSIX_signals_Unblock_thread(                                   
  Thread_Control  *the_thread,                                        
  int              signo,                                             
  siginfo_t       *info                                               
)                                                                     
{                                                                     
30026fc4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
30026fc8:	e59f7108 	ldr	r7, [pc, #264]	; 300270d8 <_POSIX_signals_Unblock_thread+0x11c><== NOT EXECUTED
30026fcc:	e00c3003 	and	r3, ip, r3                                    <== NOT EXECUTED
30026fd0:	e2416001 	sub	r6, r1, #1                                    <== NOT EXECUTED
30026fd4:	e3a05001 	mov	r5, #1                                        <== NOT EXECUTED
30026fd8:	e1530007 	cmp	r3, r7                                        <== NOT EXECUTED
bool _POSIX_signals_Unblock_thread(                                   
  Thread_Control  *the_thread,                                        
  int              signo,                                             
  siginfo_t       *info                                               
)                                                                     
{                                                                     
30026fdc:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
  sigset_t            mask;                                           
  siginfo_t          *the_info = NULL;                                
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
30026fe0:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         <== NOT EXECUTED
30026fe4:	e1a06615 	lsl	r6, r5, r6                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Is the thread is specifically waiting for a signal?             
   */                                                                 
                                                                      
  if ( _States_Is_interruptible_signal( the_thread->current_state ) ) {
30026fe8:	0a000017 	beq	3002704c <_POSIX_signals_Unblock_thread+0x90> <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  Thread is not waiting due to a sigwait.                         
   */                                                                 
  if ( ~api->signals_blocked & mask ) {                               
30026fec:	e59330d0 	ldr	r3, [r3, #208]	; 0xd0                         <== NOT EXECUTED
30026ff0:	e1d66003 	bics	r6, r6, r3                                   <== NOT EXECUTED
30026ff4:	0a000012 	beq	30027044 <_POSIX_signals_Unblock_thread+0x88> <== NOT EXECUTED
     *      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 ) ) {
30026ff8:	e21c6201 	ands	r6, ip, #268435456	; 0x10000000              <== NOT EXECUTED
30026ffc:	0a00000e 	beq	3002703c <_POSIX_signals_Unblock_thread+0x80> <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
30027000:	e59f50d4 	ldr	r5, [pc, #212]	; 300270dc <_POSIX_signals_Unblock_thread+0x120><== NOT EXECUTED
      the_thread->Wait.return_code = EINTR;                           
30027004:	e3a03004 	mov	r3, #4                                        <== NOT EXECUTED
30027008:	e00c5005 	and	r5, ip, r5                                    <== NOT EXECUTED
      /*                                                              
       *  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) )
3002700c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
     *        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 ) ) {
      the_thread->Wait.return_code = EINTR;                           
30027010:	e5803034 	str	r3, [r0, #52]	; 0x34                          <== NOT EXECUTED
      /*                                                              
       *  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) )
30027014:	1a00002c 	bne	300270cc <_POSIX_signals_Unblock_thread+0x110><== NOT EXECUTED
         _Thread_queue_Extract_with_proxy( the_thread );              
       else if ( _States_Is_delaying(the_thread->current_state) ) {   
30027018:	e21c0008 	ands	r0, ip, #8                                   <== NOT EXECUTED
3002701c:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
          (void) _Watchdog_Remove( &the_thread->Timer );              
30027020:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
30027024:	ebffadc3 	bl	30012738 <_Watchdog_Remove>                    <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
30027028:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3002702c:	e59f10ac 	ldr	r1, [pc, #172]	; 300270e0 <_POSIX_signals_Unblock_thread+0x124><== NOT EXECUTED
30027030:	ebffa8d9 	bl	3001139c <_Thread_Clear_state>                 <== NOT EXECUTED
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
30027034:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30027038:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
       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 ) {         
3002703c:	e35c0000 	cmp	ip, #0                                        <== NOT EXECUTED
30027040:	0a000016 	beq	300270a0 <_POSIX_signals_Unblock_thread+0xe4> <== NOT EXECUTED
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
30027044:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30027048:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
   *  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) ) {
3002704c:	e5900030 	ldr	r0, [r0, #48]	; 0x30                          <== NOT EXECUTED
30027050:	e1160000 	tst	r6, r0                                        <== NOT EXECUTED
30027054:	0a00000d 	beq	30027090 <_POSIX_signals_Unblock_thread+0xd4> <== NOT EXECUTED
      the_thread->Wait.return_code = EINTR;                           
30027058:	e3a03004 	mov	r3, #4                                        <== NOT EXECUTED
3002705c:	e5843034 	str	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
30027060:	e5943028 	ldr	r3, [r4, #40]	; 0x28                          <== NOT EXECUTED
                                                                      
      if ( !info ) {                                                  
30027064:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
        the_info->si_signo = signo;                                   
30027068:	05831000 	streq	r1, [r3]                                    <== NOT EXECUTED
        the_info->si_code = SI_USER;                                  
3002706c:	03a01001 	moveq	r1, #1                                      <== NOT EXECUTED
        the_info->si_value.sival_int = 0;                             
      } else {                                                        
        *the_info = *info;                                            
30027070:	18920007 	ldmne	r2, {r0, r1, r2}                            <== NOT EXECUTED
                                                                      
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
                                                                      
      if ( !info ) {                                                  
        the_info->si_signo = signo;                                   
        the_info->si_code = SI_USER;                                  
30027074:	05831004 	streq	r1, [r3, #4]                                <== NOT EXECUTED
        the_info->si_value.sival_int = 0;                             
      } else {                                                        
        *the_info = *info;                                            
30027078:	18830007 	stmne	r3, {r0, r1, r2}                            <== NOT EXECUTED
      the_info = (siginfo_t *) the_thread->Wait.return_argument;      
                                                                      
      if ( !info ) {                                                  
        the_info->si_signo = signo;                                   
        the_info->si_code = SI_USER;                                  
        the_info->si_value.sival_int = 0;                             
3002707c:	05832008 	streq	r2, [r3, #8]                                <== NOT EXECUTED
      } else {                                                        
        *the_info = *info;                                            
      }                                                               
                                                                      
      _Thread_queue_Extract_with_proxy( the_thread );                 
30027080:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30027084:	ebffab66 	bl	30011e24 <_Thread_queue_Extract_with_proxy>    <== NOT EXECUTED
      return true;                                                    
30027088:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3002708c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
   *  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) ) {
30027090:	e59300d0 	ldr	r0, [r3, #208]	; 0xd0                         <== NOT EXECUTED
30027094:	e1d60000 	bics	r0, r6, r0                                   <== NOT EXECUTED
30027098:	1affffee 	bne	30027058 <_POSIX_signals_Unblock_thread+0x9c> <== NOT EXECUTED
3002709c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
          (void) _Watchdog_Remove( &the_thread->Timer );              
          _Thread_Unblock( the_thread );                              
       }                                                              
                                                                      
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
300270a0:	e59f203c 	ldr	r2, [pc, #60]	; 300270e4 <_POSIX_signals_Unblock_thread+0x128><== NOT EXECUTED
300270a4:	e5920000 	ldr	r0, [r2]                                      <== NOT EXECUTED
300270a8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
300270ac:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
300270b0:	e5923004 	ldr	r3, [r2, #4]                                  <== NOT EXECUTED
300270b4:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
        _Thread_Dispatch_necessary = true;                            
300270b8:	05c25010 	strbeq	r5, [r2, #16]                              <== NOT EXECUTED
    }                                                                 
  }                                                                   
  return false;                                                       
300270bc:	01a0000c 	moveq	r0, ip                                      <== NOT EXECUTED
          (void) _Watchdog_Remove( &the_thread->Timer );              
          _Thread_Unblock( the_thread );                              
       }                                                              
                                                                      
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
300270c0:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
300270c4:	e1a0000c 	mov	r0, ip                                        <== NOT EXECUTED
}                                                                     
300270c8:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
      /*                                                              
       *  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 );              
300270cc:	ebffab54 	bl	30011e24 <_Thread_queue_Extract_with_proxy>    <== NOT EXECUTED
    } else if ( the_thread->current_state == STATES_READY ) {         
      if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
        _Thread_Dispatch_necessary = true;                            
    }                                                                 
  }                                                                   
  return false;                                                       
300270d0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
300270d4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000b994 <_Protected_heap_Extend>: bool _Protected_heap_Extend( Heap_Control *the_heap, void *starting_address, uintptr_t size ) {
3000b994:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  bool      extend_ok;                                                
  uintptr_t amount_extended;                                          
                                                                      
  _RTEMS_Lock_allocator();                                            
3000b998:	e59f4040 	ldr	r4, [pc, #64]	; 3000b9e0 <_Protected_heap_Extend+0x4c><== NOT EXECUTED
bool _Protected_heap_Extend(                                          
  Heap_Control *the_heap,                                             
  void         *starting_address,                                     
  uintptr_t     size                                                  
)                                                                     
{                                                                     
3000b99c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000b9a0:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000b9a4:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
3000b9a8:	e1a06002 	mov	r6, r2                                        <== NOT EXECUTED
  bool      extend_ok;                                                
  uintptr_t amount_extended;                                          
                                                                      
  _RTEMS_Lock_allocator();                                            
3000b9ac:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
3000b9b0:	ebfffb88 	bl	3000a7d8 <_API_Mutex_Lock>                     <== NOT EXECUTED
    extend_ok = _Heap_Extend(the_heap, starting_address, size, &amount_extended);
3000b9b4:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000b9b8:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
3000b9bc:	e1a0300d 	mov	r3, sp                                        <== NOT EXECUTED
3000b9c0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000b9c4:	eb001267 	bl	30010368 <_Heap_Extend>                        <== NOT EXECUTED
3000b9c8:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  _RTEMS_Unlock_allocator();                                          
3000b9cc:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
3000b9d0:	ebfffb9c 	bl	3000a848 <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return extend_ok;                                                   
}                                                                     
3000b9d4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000b9d8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000b9dc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000be24 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
3000be24:	e92d4070 	push	{r4, r5, r6, lr}                             
  if ( !the_heap )                                                    
3000be28:	e2505000 	subs	r5, r0, #0                                   
                                                                      
bool _Protected_heap_Get_information(                                 
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
3000be2c:	e1a06001 	mov	r6, r1                                        
  if ( !the_heap )                                                    
    return false;                                                     
3000be30:	01a00005 	moveq	r0, r5                                      
bool _Protected_heap_Get_information(                                 
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
  if ( !the_heap )                                                    
3000be34:	08bd8070 	popeq	{r4, r5, r6, pc}                            
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
3000be38:	e3510000 	cmp	r1, #0                                        
3000be3c:	0a000009 	beq	3000be68 <_Protected_heap_Get_information+0x44>
    return false;                                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
3000be40:	e59f4028 	ldr	r4, [pc, #40]	; 3000be70 <_Protected_heap_Get_information+0x4c>
3000be44:	e5940000 	ldr	r0, [r4]                                      
3000be48:	ebfffb77 	bl	3000ac2c <_API_Mutex_Lock>                     
    _Heap_Get_information( the_heap, the_info );                      
3000be4c:	e1a00005 	mov	r0, r5                                        
3000be50:	e1a01006 	mov	r1, r6                                        
3000be54:	eb00138a 	bl	30010c84 <_Heap_Get_information>               
  _RTEMS_Unlock_allocator();                                          
3000be58:	e5940000 	ldr	r0, [r4]                                      
3000be5c:	ebfffb8e 	bl	3000ac9c <_API_Mutex_Unlock>                   
                                                                      
  return true;                                                        
3000be60:	e3a00001 	mov	r0, #1                                        
3000be64:	e8bd8070 	pop	{r4, r5, r6, pc}                              
{                                                                     
  if ( !the_heap )                                                    
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
    return false;                                                     
3000be68:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
  _RTEMS_Lock_allocator();                                            
    _Heap_Get_information( the_heap, the_info );                      
  _RTEMS_Unlock_allocator();                                          
                                                                      
  return true;                                                        
}                                                                     
3000be6c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

30010dd0 <_Protected_heap_Walk>: * 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 ) {
30010dd0:	e59f3054 	ldr	r3, [pc, #84]	; 30010e2c <_Protected_heap_Walk+0x5c><== NOT EXECUTED
bool _Protected_heap_Walk(                                            
  Heap_Control *the_heap,                                             
  int           source,                                               
  bool          do_dump                                               
)                                                                     
{                                                                     
30010dd4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
   * 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 ) {                            
30010dd8:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
bool _Protected_heap_Walk(                                            
  Heap_Control *the_heap,                                             
  int           source,                                               
  bool          do_dump                                               
)                                                                     
{                                                                     
30010ddc:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
   * 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 ) {                            
30010de0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
bool _Protected_heap_Walk(                                            
  Heap_Control *the_heap,                                             
  int           source,                                               
  bool          do_dump                                               
)                                                                     
{                                                                     
30010de4:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
30010de8:	e20250ff 	and	r5, r2, #255	; 0xff                           <== NOT EXECUTED
   * 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 ) {                            
30010dec:	0a000002 	beq	30010dfc <_Protected_heap_Walk+0x2c>          <== NOT EXECUTED
    _RTEMS_Lock_allocator();                                          
      status = _Heap_Walk( the_heap, source, do_dump );               
    _RTEMS_Unlock_allocator();                                        
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
30010df0:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
  }                                                                   
  return status;                                                      
}                                                                     
30010df4:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          <== NOT EXECUTED
  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 );                 
30010df8:	eafffbda 	b	3000fd68 <_Heap_Walk>                           <== NOT EXECUTED
   * 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();                                          
30010dfc:	e59f402c 	ldr	r4, [pc, #44]	; 30010e30 <_Protected_heap_Walk+0x60><== NOT EXECUTED
30010e00:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30010e04:	ebfff7d1 	bl	3000ed50 <_API_Mutex_Lock>                     <== NOT EXECUTED
      status = _Heap_Walk( the_heap, source, do_dump );               
30010e08:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
30010e0c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30010e10:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
30010e14:	ebfffbd3 	bl	3000fd68 <_Heap_Walk>                          <== NOT EXECUTED
30010e18:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
    _RTEMS_Unlock_allocator();                                        
30010e1c:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30010e20:	ebfff7e6 	bl	3000edc0 <_API_Mutex_Unlock>                   <== NOT EXECUTED
  } else {                                                            
    status = _Heap_Walk( the_heap, source, do_dump );                 
  }                                                                   
  return status;                                                      
}                                                                     
30010e24:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30010e28:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000fab4 <_RTEMS_Tasks_Invoke_task_variable_dtor>: { void (*dtor)(void *); void *value; dtor = tvp->dtor; if (_Thread_Is_executing(the_thread)) {
3000fab4:	e59f303c 	ldr	r3, [pc, #60]	; 3000faf8 <_RTEMS_Tasks_Invoke_task_variable_dtor+0x44><== NOT EXECUTED
                                                                      
void _RTEMS_Tasks_Invoke_task_variable_dtor(                          
  Thread_Control        *the_thread,                                  
  rtems_task_variable_t *tvp                                          
)                                                                     
{                                                                     
3000fab8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  void (*dtor)(void *);                                               
  void *value;                                                        
                                                                      
  dtor = tvp->dtor;                                                   
  if (_Thread_Is_executing(the_thread)) {                             
3000fabc:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
                                                                      
void _RTEMS_Tasks_Invoke_task_variable_dtor(                          
  Thread_Control        *the_thread,                                  
  rtems_task_variable_t *tvp                                          
)                                                                     
{                                                                     
3000fac0:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  void (*dtor)(void *);                                               
  void *value;                                                        
                                                                      
  dtor = tvp->dtor;                                                   
  if (_Thread_Is_executing(the_thread)) {                             
3000fac4:	e1520000 	cmp	r2, r0                                        <== NOT EXECUTED
    value = *tvp->ptr;                                                
3000fac8:	05912004 	ldreq	r2, [r1, #4]                                <== NOT EXECUTED
)                                                                     
{                                                                     
  void (*dtor)(void *);                                               
  void *value;                                                        
                                                                      
  dtor = tvp->dtor;                                                   
3000facc:	e5913010 	ldr	r3, [r1, #16]                                 <== NOT EXECUTED
  if (_Thread_Is_executing(the_thread)) {                             
    value = *tvp->ptr;                                                
    *tvp->ptr = tvp->gval;                                            
3000fad0:	05911008 	ldreq	r1, [r1, #8]                                <== NOT EXECUTED
  void (*dtor)(void *);                                               
  void *value;                                                        
                                                                      
  dtor = tvp->dtor;                                                   
  if (_Thread_Is_executing(the_thread)) {                             
    value = *tvp->ptr;                                                
3000fad4:	05920000 	ldreq	r0, [r2]                                    <== NOT EXECUTED
    *tvp->ptr = tvp->gval;                                            
  } else {                                                            
    value = tvp->tval;                                                
3000fad8:	1594000c 	ldrne	r0, [r4, #12]                               <== NOT EXECUTED
  void *value;                                                        
                                                                      
  dtor = tvp->dtor;                                                   
  if (_Thread_Is_executing(the_thread)) {                             
    value = *tvp->ptr;                                                
    *tvp->ptr = tvp->gval;                                            
3000fadc:	05821000 	streq	r1, [r2]                                    <== NOT EXECUTED
  } else {                                                            
    value = tvp->tval;                                                
  }                                                                   
                                                                      
  if ( dtor )                                                         
3000fae0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    (*dtor)(value);                                                   
3000fae4:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
3000fae8:	112fff13 	bxne	r3                                           <== NOT EXECUTED
                                                                      
  _Workspace_Free(tvp);                                               
3000faec:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
}                                                                     
3000faf0:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( dtor )                                                         
    (*dtor)(value);                                                   
                                                                      
  _Workspace_Free(tvp);                                               
3000faf4:	eafff5fd 	b	3000d2f0 <_Workspace_Free>                      <== NOT EXECUTED
                                                                      

3000f980 <_RTEMS_tasks_Delete_extension>: void _RTEMS_tasks_Delete_extension( Thread_Control *executing, Thread_Control *deleted ) {
3000f980:	e92d4030 	push	{r4, r5, lr}                                 
3000f984:	e1a05001 	mov	r5, r1                                        
                                                                      
  /*                                                                  
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
3000f988:	e5911104 	ldr	r1, [r1, #260]	; 0x104                        
  deleted->task_variables = NULL;                                     
3000f98c:	e3a03000 	mov	r3, #0                                        
  while (tvp) {                                                       
3000f990:	e3510000 	cmp	r1, #0                                        
  /*                                                                  
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
3000f994:	e5853104 	str	r3, [r5, #260]	; 0x104                        
  while (tvp) {                                                       
3000f998:	1a000001 	bne	3000f9a4 <_RTEMS_tasks_Delete_extension+0x24> 
3000f99c:	ea000005 	b	3000f9b8 <_RTEMS_tasks_Delete_extension+0x38>   
    next = (rtems_task_variable_t *)tvp->next;                        
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
    tvp = next;                                                       
3000f9a0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
    next = (rtems_task_variable_t *)tvp->next;                        
3000f9a4:	e5914000 	ldr	r4, [r1]                                      <== NOT EXECUTED
    _RTEMS_Tasks_Invoke_task_variable_dtor( deleted, tvp );           
3000f9a8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f9ac:	eb000040 	bl	3000fab4 <_RTEMS_Tasks_Invoke_task_variable_dtor><== NOT EXECUTED
   *  Free per task variable memory                                   
   */                                                                 
                                                                      
  tvp = deleted->task_variables;                                      
  deleted->task_variables = NULL;                                     
  while (tvp) {                                                       
3000f9b0:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000f9b4:	1afffff9 	bne	3000f9a0 <_RTEMS_tasks_Delete_extension+0x20> <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Free API specific memory                                        
   */                                                                 
                                                                      
  (void) _Workspace_Free( deleted->API_Extensions[ THREAD_API_RTEMS ] );
3000f9b8:	e59500f8 	ldr	r0, [r5, #248]	; 0xf8                         
3000f9bc:	ebfff64b 	bl	3000d2f0 <_Workspace_Free>                     
  deleted->API_Extensions[ THREAD_API_RTEMS ] = NULL;                 
3000f9c0:	e3a03000 	mov	r3, #0                                        
3000f9c4:	e58530f8 	str	r3, [r5, #248]	; 0xf8                         
}                                                                     
3000f9c8:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

3000f874 <_RTEMS_tasks_Switch_extension>: /* * Per Task Variables */ tvp = executing->task_variables;
3000f874:	e5903104 	ldr	r3, [r0, #260]	; 0x104                        
  while (tvp) {                                                       
3000f878:	e3530000 	cmp	r3, #0                                        
3000f87c:	0a000007 	beq	3000f8a0 <_RTEMS_tasks_Switch_extension+0x2c> 
    tvp->tval = *tvp->ptr;                                            
3000f880:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
    *tvp->ptr = tvp->gval;                                            
3000f884:	e5930008 	ldr	r0, [r3, #8]                                  <== NOT EXECUTED
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  while (tvp) {                                                       
    tvp->tval = *tvp->ptr;                                            
3000f888:	e592c000 	ldr	ip, [r2]                                      <== NOT EXECUTED
3000f88c:	e583c00c 	str	ip, [r3, #12]                                 <== NOT EXECUTED
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
3000f890:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  while (tvp) {                                                       
    tvp->tval = *tvp->ptr;                                            
    *tvp->ptr = tvp->gval;                                            
3000f894:	e5820000 	str	r0, [r2]                                      <== NOT EXECUTED
  /*                                                                  
   *  Per Task Variables                                              
   */                                                                 
                                                                      
  tvp = executing->task_variables;                                    
  while (tvp) {                                                       
3000f898:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f89c:	1afffff7 	bne	3000f880 <_RTEMS_tasks_Switch_extension+0xc>  <== NOT EXECUTED
    tvp->tval = *tvp->ptr;                                            
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
3000f8a0:	e5913104 	ldr	r3, [r1, #260]	; 0x104                        
  while (tvp) {                                                       
3000f8a4:	e3530000 	cmp	r3, #0                                        
3000f8a8:	012fff1e 	bxeq	lr                                           
    tvp->gval = *tvp->ptr;                                            
3000f8ac:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
    *tvp->ptr = tvp->tval;                                            
3000f8b0:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  while (tvp) {                                                       
    tvp->gval = *tvp->ptr;                                            
3000f8b4:	e5920000 	ldr	r0, [r2]                                      <== NOT EXECUTED
3000f8b8:	e5830008 	str	r0, [r3, #8]                                  <== NOT EXECUTED
    *tvp->ptr = tvp->tval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
3000f8bc:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  while (tvp) {                                                       
    tvp->gval = *tvp->ptr;                                            
    *tvp->ptr = tvp->tval;                                            
3000f8c0:	e5821000 	str	r1, [r2]                                      <== NOT EXECUTED
    *tvp->ptr = tvp->gval;                                            
    tvp = (rtems_task_variable_t *)tvp->next;                         
  }                                                                   
                                                                      
  tvp = heir->task_variables;                                         
  while (tvp) {                                                       
3000f8c4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f8c8:	1afffff7 	bne	3000f8ac <_RTEMS_tasks_Switch_extension+0x38> <== NOT EXECUTED
3000f8cc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b140 <_Rate_monotonic_Timeout>: void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ) {
3000b140:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000b144:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000b148:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000b14c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000b150:	e59f0094 	ldr	r0, [pc, #148]	; 3000b1ec <_Rate_monotonic_Timeout+0xac><== NOT EXECUTED
3000b154:	eb0007a1 	bl	3000cfe0 <_Objects_Get>                        <== NOT EXECUTED
  /*                                                                  
   *  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 );                  
  switch ( location ) {                                               
3000b158:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000b15c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000b160:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b164:	1a000010 	bne	3000b1ac <_Rate_monotonic_Timeout+0x6c>       <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      the_thread = the_period->owner;                                 
3000b168:	e5900040 	ldr	r0, [r0, #64]	; 0x40                          <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_for_period (             
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_FOR_PERIOD);                   
3000b16c:	e5903010 	ldr	r3, [r0, #16]                                 <== NOT EXECUTED
      if ( _States_Is_waiting_for_period( the_thread->current_state ) &&
3000b170:	e3130901 	tst	r3, #16384	; 0x4000                           <== NOT EXECUTED
3000b174:	0a000003 	beq	3000b188 <_Rate_monotonic_Timeout+0x48>       <== NOT EXECUTED
3000b178:	e5902020 	ldr	r2, [r0, #32]                                 <== NOT EXECUTED
3000b17c:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
3000b180:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000b184:	0a000014 	beq	3000b1dc <_Rate_monotonic_Timeout+0x9c>       <== NOT EXECUTED
        _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 ) {
3000b188:	e5943038 	ldr	r3, [r4, #56]	; 0x38                          <== NOT EXECUTED
3000b18c:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, the_period->next_length );
      } else                                                          
        the_period->state = RATE_MONOTONIC_EXPIRED;                   
3000b190:	13a03004 	movne	r3, #4                                      <== NOT EXECUTED
3000b194:	15843038 	strne	r3, [r4, #56]	; 0x38                        <== NOT EXECUTED
        _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 ) {
3000b198:	0a000005 	beq	3000b1b4 <_Rate_monotonic_Timeout+0x74>       <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000b19c:	e59f304c 	ldr	r3, [pc, #76]	; 3000b1f0 <_Rate_monotonic_Timeout+0xb0><== NOT EXECUTED
3000b1a0:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000b1a4:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000b1a8:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
3000b1ac:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000b1b0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
        _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;    
3000b1b4:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
3000b1b8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
        _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;    
3000b1bc:	e5843038 	str	r3, [r4, #56]	; 0x38                          <== NOT EXECUTED
                                                                      
        _Rate_monotonic_Initiate_statistics( the_period );            
3000b1c0:	ebfffe54 	bl	3000ab18 <_Rate_monotonic_Initiate_statistics> <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000b1c4:	e594303c 	ldr	r3, [r4, #60]	; 0x3c                          <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000b1c8:	e59f0024 	ldr	r0, [pc, #36]	; 3000b1f4 <_Rate_monotonic_Timeout+0xb4><== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000b1cc:	e584301c 	str	r3, [r4, #28]                                 <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000b1d0:	e2841010 	add	r1, r4, #16                                   <== NOT EXECUTED
3000b1d4:	eb000eb1 	bl	3000eca0 <_Watchdog_Insert>                    <== NOT EXECUTED
3000b1d8:	eaffffef 	b	3000b19c <_Rate_monotonic_Timeout+0x5c>         <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
3000b1dc:	e59f1014 	ldr	r1, [pc, #20]	; 3000b1f8 <_Rate_monotonic_Timeout+0xb8><== NOT EXECUTED
3000b1e0:	eb0009fc 	bl	3000d9d8 <_Thread_Clear_state>                 <== NOT EXECUTED
      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 );            
3000b1e4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b1e8:	eafffff4 	b	3000b1c0 <_Rate_monotonic_Timeout+0x80>         <== NOT EXECUTED
                                                                      

3000bcd4 <_Scheduler_simple_Block>: #include <rtems/score/schedulersimple.h> void _Scheduler_simple_Block( Thread_Control *the_thread ) {
3000bcd4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_heir (                           
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Heir );                              
3000bcd8:	e59f5030 	ldr	r5, [pc, #48]	; 3000bd10 <_Scheduler_simple_Block+0x3c><== NOT EXECUTED
3000bcdc:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  _Scheduler_simple_Extract(the_thread);                              
3000bce0:	eb00000d 	bl	3000bd1c <_Scheduler_simple_Extract>           <== NOT EXECUTED
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
3000bce4:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
3000bce8:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000bcec:	0a000005 	beq	3000bd08 <_Scheduler_simple_Block+0x34>       <== NOT EXECUTED
    _Scheduler_simple_Schedule();                                     
                                                                      
  if ( _Thread_Is_executing( the_thread ) )                           
3000bcf0:	e5953004 	ldr	r3, [r5, #4]                                  <== NOT EXECUTED
3000bcf4:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
    _Thread_Dispatch_necessary = true;                                
3000bcf8:	059f3010 	ldreq	r3, [pc, #16]	; 3000bd10 <_Scheduler_simple_Block+0x3c><== NOT EXECUTED
3000bcfc:	03a02001 	moveq	r2, #1                                      <== NOT EXECUTED
3000bd00:	05c32010 	strbeq	r2, [r3, #16]                              <== NOT EXECUTED
3000bd04:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  _Scheduler_simple_Extract(the_thread);                              
                                                                      
  if ( _Thread_Is_heir( the_thread ) )                                
    _Scheduler_simple_Schedule();                                     
3000bd08:	eb000048 	bl	3000be30 <_Scheduler_simple_Schedule>          <== NOT EXECUTED
3000bd0c:	eafffff7 	b	3000bcf0 <_Scheduler_simple_Block+0x1c>         <== NOT EXECUTED
                                                                      

3000bd18 <_Scheduler_simple_Enqueue>: void _Scheduler_simple_Enqueue( Thread_Control *the_thread ) { _Scheduler_simple_Ready_queue_Enqueue( the_thread );
3000bd18:	ea000026 	b	3000bdb8 <_Scheduler_simple_Ready_queue_Enqueue><== NOT EXECUTED
                                                                      

3000bd14 <_Scheduler_simple_Enqueue_first>: void _Scheduler_simple_Enqueue_first( Thread_Control *the_thread ) { _Scheduler_simple_Ready_queue_Enqueue_first( the_thread );
3000bd14:	ea000014 	b	3000bd6c <_Scheduler_simple_Ready_queue_Enqueue_first><== NOT EXECUTED
                                                                      

3000bd1c <_Scheduler_simple_Extract>: ) { Chain_Node *next; Chain_Node *previous; next = the_node->next;
3000bd1c:	e890000c 	ldm	r0, {r2, r3}                                  <== NOT EXECUTED
  previous       = the_node->previous;                                
  next->previous = previous;                                          
3000bd20:	e5823004 	str	r3, [r2, #4]                                  <== NOT EXECUTED
  previous->next = next;                                              
3000bd24:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
void _Scheduler_simple_Extract(                                       
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
}                                                                     
3000bd28:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bd38 <_Scheduler_simple_Free>: */ void _Scheduler_simple_Free( Thread_Control *the_thread ) { }
3000bd38:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bdb8 <_Scheduler_simple_Ready_queue_Enqueue>: { Chain_Control *ready; Chain_Node *the_node; Thread_Control *current; ready = (Chain_Control *)_Scheduler.information;
3000bdb8:	e59f306c 	ldr	r3, [pc, #108]	; 3000be2c <_Scheduler_simple_Ready_queue_Enqueue+0x74>
#include <rtems/score/schedulersimple.h>                              
                                                                      
void _Scheduler_simple_Ready_queue_Enqueue(                           
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
3000bdbc:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 
  Chain_Control    *ready;                                            
  Chain_Node       *the_node;                                         
  Thread_Control   *current;                                          
                                                                      
  ready    = (Chain_Control *)_Scheduler.information;                 
3000bdc0:	e5931000 	ldr	r1, [r3]                                      
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
3000bdc4:	e1a0c001 	mov	ip, r1                                        
3000bdc8:	e49c3004 	ldr	r3, [ip], #4                                  
                                                                      
  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 ) {
3000bdcc:	e153000c 	cmp	r3, ip                                        
3000bdd0:	0a00000c 	beq	3000be08 <_Scheduler_simple_Ready_queue_Enqueue+0x50>
    current = (Thread_Control *) the_node;                            
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
3000bdd4:	e5904014 	ldr	r4, [r0, #20]                                 
3000bdd8:	e5932014 	ldr	r2, [r3, #20]                                 
  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;                            
3000bddc:	e1a01003 	mov	r1, r3                                        
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
3000bde0:	e1540002 	cmp	r4, r2                                        
3000bde4:	2a000004 	bcs	3000bdfc <_Scheduler_simple_Ready_queue_Enqueue+0x44>
3000bde8:	ea00000d 	b	3000be24 <_Scheduler_simple_Ready_queue_Enqueue+0x6c>
3000bdec:	e5932014 	ldr	r2, [r3, #20]                                 <== NOT EXECUTED
  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;                            
3000bdf0:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
                                                                      
    /* break when AT END OR PAST our priority */                      
    if ( the_thread->current_priority < current->current_priority ) { 
3000bdf4:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000bdf8:	8a000009 	bhi	3000be24 <_Scheduler_simple_Ready_queue_Enqueue+0x6c><== NOT EXECUTED
                                                                      
  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 ) {
3000bdfc:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
3000be00:	e153000c 	cmp	r3, ip                                        <== NOT EXECUTED
3000be04:	1afffff8 	bne	3000bdec <_Scheduler_simple_Ready_queue_Enqueue+0x34><== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
3000be08:	e5913000 	ldr	r3, [r1]                                      
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
3000be0c:	e5801004 	str	r1, [r0, #4]                                  
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
3000be10:	e5810000 	str	r0, [r1]                                      
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
3000be14:	e5830004 	str	r0, [r3, #4]                                  
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
3000be18:	e5803000 	str	r3, [r0]                                      
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
3000be1c:	e8bd0010 	pop	{r4}                                          
3000be20:	e12fff1e 	bx	lr                                             
  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;      
3000be24:	e5931004 	ldr	r1, [r3, #4]                                  
      break;                                                          
3000be28:	eafffff6 	b	3000be08 <_Scheduler_simple_Ready_queue_Enqueue+0x50>
                                                                      

3000bd6c <_Scheduler_simple_Ready_queue_Enqueue_first>: } } /* enqueue */ _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node ); }
3000bd6c:	e59f3040 	ldr	r3, [pc, #64]	; 3000bdb4 <_Scheduler_simple_Ready_queue_Enqueue_first+0x48><== NOT EXECUTED
   */                                                                 
  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 ) {
3000bd70:	e5901014 	ldr	r1, [r0, #20]                                 <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
3000bd74:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
3000bd78:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
   */                                                                 
  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 ) {
3000bd7c:	e5932014 	ldr	r2, [r3, #20]                                 <== NOT EXECUTED
3000bd80:	e1510002 	cmp	r1, r2                                        <== NOT EXECUTED
3000bd84:	9a000003 	bls	3000bd98 <_Scheduler_simple_Ready_queue_Enqueue_first+0x2c><== NOT EXECUTED
   * 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 ) {
3000bd88:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    current = (Thread_Control *) the_node;                            
                                                                      
    /* break when AT HEAD OF (or PAST) our priority */                
    if ( the_thread->current_priority <= current->current_priority ) {
3000bd8c:	e5932014 	ldr	r2, [r3, #20]                                 <== NOT EXECUTED
3000bd90:	e1520001 	cmp	r2, r1                                        <== NOT EXECUTED
3000bd94:	3afffffb 	bcc	3000bd88 <_Scheduler_simple_Ready_queue_Enqueue_first+0x1c><== NOT EXECUTED
      current = (Thread_Control *)current->Object.Node.previous;      
3000bd98:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
3000bd9c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
3000bda0:	e5803004 	str	r3, [r0, #4]                                  <== NOT EXECUTED
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
3000bda4:	e5830000 	str	r0, [r3]                                      <== NOT EXECUTED
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
3000bda8:	e5820004 	str	r0, [r2, #4]                                  <== NOT EXECUTED
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
3000bdac:	e5802000 	str	r2, [r0]                                      <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  /* enqueue */                                                       
  _Chain_Insert_unprotected( (Chain_Node *)current, &the_thread->Object.Node );
}                                                                     
3000bdb0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000be30 <_Scheduler_simple_Schedule>: #include <rtems/score/schedulersimple.h> void _Scheduler_simple_Schedule(void) { _Thread_Heir = (Thread_Control *) _Chain_First( (Chain_Control *) _Scheduler.information
3000be30:	e59f3010 	ldr	r3, [pc, #16]	; 3000be48 <_Scheduler_simple_Schedule+0x18><== NOT EXECUTED
  );                                                                  
}                                                                     
3000be34:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
#include <rtems/score/thread.h>                                       
#include <rtems/score/schedulersimple.h>                              
                                                                      
void _Scheduler_simple_Schedule(void)                                 
{                                                                     
  _Thread_Heir = (Thread_Control *) _Chain_First(                     
3000be38:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000be3c:	e59f3008 	ldr	r3, [pc, #8]	; 3000be4c <_Scheduler_simple_Schedule+0x1c><== NOT EXECUTED
3000be40:	e5832008 	str	r2, [r3, #8]                                  <== NOT EXECUTED
    (Chain_Control *) _Scheduler.information                          
  );                                                                  
}                                                                     
3000be44:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000be50 <_Scheduler_simple_Unblock>: #include <rtems/score/thread.h> void _Scheduler_simple_Unblock( Thread_Control *the_thread ) {
3000be50:	e92d4010 	push	{r4, lr}                                     
3000be54:	e1a04000 	mov	r4, r0                                        
  _Scheduler_simple_Ready_queue_Enqueue(the_thread);                  
3000be58:	ebffffd6 	bl	3000bdb8 <_Scheduler_simple_Ready_queue_Enqueue>
   *    a context switch.                                             
   *  Pseudo-ISR case:                                                
   *    Even if the thread isn't preemptible, if the new heir is      
   *    a pseudo-ISR system task, we need to do a context switch.     
   */                                                                 
  if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
3000be5c:	e59f3040 	ldr	r3, [pc, #64]	; 3000bea4 <_Scheduler_simple_Unblock+0x54>
3000be60:	e5942014 	ldr	r2, [r4, #20]                                 
3000be64:	e5931008 	ldr	r1, [r3, #8]                                  
3000be68:	e5911014 	ldr	r1, [r1, #20]                                 
3000be6c:	e1520001 	cmp	r2, r1                                        
3000be70:	28bd8010 	popcs	{r4, pc}                                    
    _Thread_Heir = the_thread;                                        
    if ( _Thread_Executing->is_preemptible ||                         
3000be74:	e5931004 	ldr	r1, [r3, #4]                                  
   *  Pseudo-ISR case:                                                
   *    Even if the thread isn't preemptible, if the new heir is      
   *    a pseudo-ISR system task, we need to do a context switch.     
   */                                                                 
  if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
    _Thread_Heir = the_thread;                                        
3000be78:	e5834008 	str	r4, [r3, #8]                                  
    if ( _Thread_Executing->is_preemptible ||                         
3000be7c:	e5d11074 	ldrb	r1, [r1, #116]	; 0x74                        
3000be80:	e3510000 	cmp	r1, #0                                        
3000be84:	0a000002 	beq	3000be94 <_Scheduler_simple_Unblock+0x44>     
        the_thread->current_priority == 0 )                           
      _Thread_Dispatch_necessary = true;                              
3000be88:	e3a02001 	mov	r2, #1                                        
3000be8c:	e5c32010 	strb	r2, [r3, #16]                                
3000be90:	e8bd8010 	pop	{r4, pc}                                      
   *    Even if the thread isn't preemptible, if the new heir is      
   *    a pseudo-ISR system task, we need to do a context switch.     
   */                                                                 
  if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
    _Thread_Heir = the_thread;                                        
    if ( _Thread_Executing->is_preemptible ||                         
3000be94:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
        the_thread->current_priority == 0 )                           
      _Thread_Dispatch_necessary = true;                              
3000be98:	03a02001 	moveq	r2, #1                                      <== NOT EXECUTED
3000be9c:	05c32010 	strbeq	r2, [r3, #16]                              <== NOT EXECUTED
3000bea0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000bea8 <_Scheduler_simple_Yield>: #include <rtems/score/scheduler.h> #include <rtems/score/thread.h> #include <rtems/score/schedulersimple.h> void _Scheduler_simple_Yield( void ) {
3000bea8:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  ISR_Level       level;                                              
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
3000beac:	e59f5048 	ldr	r5, [pc, #72]	; 3000befc <_Scheduler_simple_Yield+0x54><== NOT EXECUTED
3000beb0:	e5954004 	ldr	r4, [r5, #4]                                  <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000beb4:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3000beb8:	e3863080 	orr	r3, r6, #128	; 0x80                           <== NOT EXECUTED
3000bebc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
3000bec0:	e894000c 	ldm	r4, {r2, r3}                                  <== NOT EXECUTED
{                                                                     
  /* extract */                                                       
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  /* enqueue */                                                       
  _Scheduler_simple_Ready_queue_Enqueue( the_thread );                
3000bec4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  previous       = the_node->previous;                                
  next->previous = previous;                                          
3000bec8:	e5823004 	str	r3, [r2, #4]                                  <== NOT EXECUTED
  previous->next = next;                                              
3000becc:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
3000bed0:	ebffffb8 	bl	3000bdb8 <_Scheduler_simple_Ready_queue_Enqueue><== NOT EXECUTED
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000bed4:	e10f3000 	mrs	r3, CPSR                                      <== NOT EXECUTED
3000bed8:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
3000bedc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
                                                                      
    _Scheduler_simple_Ready_queue_Requeue(&_Scheduler, executing);    
                                                                      
    _ISR_Flash( level );                                              
                                                                      
    _Scheduler_simple_Schedule();                                     
3000bee0:	ebffffd2 	bl	3000be30 <_Scheduler_simple_Schedule>          <== NOT EXECUTED
                                                                      
    if ( !_Thread_Is_heir( executing ) )                              
3000bee4:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
3000bee8:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
      _Thread_Dispatch_necessary = true;                              
3000beec:	13a03001 	movne	r3, #1                                      <== NOT EXECUTED
3000bef0:	15c53010 	strbne	r3, [r5, #16]                              <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000bef4:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
                                                                      
  _ISR_Enable( level );                                               
}                                                                     
3000bef8:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000ad88 <_TOD_Get_uptime_as_timespec>: */ void _TOD_Get_uptime_as_timespec( struct timespec *uptime ) {
3000ad88:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000ad8c:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
3000ad90:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  Timestamp_Control uptime_ts;                                        
                                                                      
  /* assume time checked for NULL by caller */                        
  _TOD_Get_uptime( &uptime_ts );                                      
3000ad94:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000ad98:	eb001525 	bl	30010234 <_TOD_Get_uptime>                     <== NOT EXECUTED
  _Timestamp_To_timespec( &uptime_ts, uptime );                       
3000ad9c:	e89d000c 	ldm	sp, {r2, r3}                                  <== NOT EXECUTED
3000ada0:	e884000c 	stm	r4, {r2, r3}                                  <== NOT EXECUTED
}                                                                     
3000ada4:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000ada8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000c444 <_TOD_Set>: rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1;
3000c444:	e59f3068 	ldr	r3, [pc, #104]	; 3000c4b4 <_TOD_Set+0x70>     
 */                                                                   
                                                                      
void _TOD_Set(                                                        
  const struct timespec *time                                         
)                                                                     
{                                                                     
3000c448:	e92d4030 	push	{r4, r5, lr}                                 
3000c44c:	e5932000 	ldr	r2, [r3]                                      
3000c450:	e1a05000 	mov	r5, r0                                        
3000c454:	e2822001 	add	r2, r2, #1                                    
3000c458:	e5832000 	str	r2, [r3]                                      
  long seconds;                                                       
                                                                      
  _Thread_Disable_dispatch();                                         
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
3000c45c:	e59f4054 	ldr	r4, [pc, #84]	; 3000c4b8 <_TOD_Set+0x74>      
                                                                      
  if ( time->tv_sec < seconds )                                       
3000c460:	e5902000 	ldr	r2, [r0]                                      
  long seconds;                                                       
                                                                      
  _Thread_Disable_dispatch();                                         
  _TOD_Deactivate();                                                  
                                                                      
  seconds = _TOD_Seconds_since_epoch();                               
3000c464:	e5943000 	ldr	r3, [r4]                                      
                                                                      
  if ( time->tv_sec < seconds )                                       
3000c468:	e1530002 	cmp	r3, r2                                        
3000c46c:	ca00000b 	bgt	3000c4a0 <_TOD_Set+0x5c>                      
  Watchdog_Adjust_directions direction,                               
  Watchdog_Interval          units                                    
)                                                                     
{                                                                     
                                                                      
  _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units );     
3000c470:	e59f0044 	ldr	r0, [pc, #68]	; 3000c4bc <_TOD_Set+0x78>      
3000c474:	e3a01000 	mov	r1, #0                                        
3000c478:	e0632002 	rsb	r2, r3, r2                                    
3000c47c:	eb0009e8 	bl	3000ec24 <_Watchdog_Adjust>                    
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  else                                                                
    _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - seconds );
                                                                      
  /* POSIX format TOD (timespec) */                                   
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
3000c480:	e895000c 	ldm	r5, {r2, r3}                                  
3000c484:	e5843004 	str	r3, [r4, #4]                                  
  _TOD_Is_set = true;                                                 
3000c488:	e59f3030 	ldr	r3, [pc, #48]	; 3000c4c0 <_TOD_Set+0x7c>      
    _Watchdog_Adjust_seconds( WATCHDOG_BACKWARD, seconds - time->tv_sec );
  else                                                                
    _Watchdog_Adjust_seconds( WATCHDOG_FORWARD, time->tv_sec - seconds );
                                                                      
  /* POSIX format TOD (timespec) */                                   
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
3000c48c:	e5842000 	str	r2, [r4]                                      
  _TOD_Is_set = true;                                                 
3000c490:	e3a02001 	mov	r2, #1                                        
3000c494:	e5c32000 	strb	r2, [r3]                                     
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
}                                                                     
3000c498:	e8bd4030 	pop	{r4, r5, lr}                                  
  _Timestamp_Set( &_TOD_Now, time->tv_sec, time->tv_nsec );           
  _TOD_Is_set = true;                                                 
                                                                      
  _TOD_Activate();                                                    
                                                                      
  _Thread_Enable_dispatch();                                          
3000c49c:	ea000613 	b	3000dcf0 <_Thread_Enable_dispatch>              
3000c4a0:	e59f0014 	ldr	r0, [pc, #20]	; 3000c4bc <_TOD_Set+0x78>      <== NOT EXECUTED
3000c4a4:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c4a8:	e0622003 	rsb	r2, r2, r3                                    <== NOT EXECUTED
3000c4ac:	eb0009dc 	bl	3000ec24 <_Watchdog_Adjust>                    <== NOT EXECUTED
3000c4b0:	eafffff2 	b	3000c480 <_TOD_Set+0x3c>                        <== NOT EXECUTED
                                                                      

3000a9e8 <_TOD_Tickle_ticks>: * * Output parameters: NONE */ void _TOD_Tickle_ticks( void ) {
3000a9e8:	e92d4010 	push	{r4, lr}                                     
  Timestamp_Control tick;                                             
  uint32_t          seconds;                                          
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
3000a9ec:	e59f2064 	ldr	r2, [pc, #100]	; 3000aa58 <_TOD_Tickle_ticks+0x70>
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
3000a9f0:	e59f3064 	ldr	r3, [pc, #100]	; 3000aa5c <_TOD_Tickle_ticks+0x74>
{                                                                     
  Timestamp_Control tick;                                             
  uint32_t          seconds;                                          
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
3000a9f4:	e592100c 	ldr	r1, [r2, #12]                                 
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
3000a9f8:	e5932000 	ldr	r2, [r3]                                      
{                                                                     
  Timestamp_Control tick;                                             
  uint32_t          seconds;                                          
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
3000a9fc:	e061c281 	rsb	ip, r1, r1, lsl #5                            
 *                                                                    
 *  Output parameters: NONE                                           
 */                                                                   
                                                                      
void _TOD_Tickle_ticks( void )                                        
{                                                                     
3000aa00:	e24dd008 	sub	sp, sp, #8                                    
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
3000aa04:	e2822001 	add	r2, r2, #1                                    
{                                                                     
  Timestamp_Control tick;                                             
  uint32_t          seconds;                                          
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
3000aa08:	e081c10c 	add	ip, r1, ip, lsl #2                            
3000aa0c:	e1a0c18c 	lsl	ip, ip, #3                                    
3000aa10:	e3a0e000 	mov	lr, #0                                        
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
                                                                      
  /* Update the timespec format uptime */                             
  _Timestamp_Add_to( &_TOD_Uptime, &tick );                           
3000aa14:	e1a0100d 	mov	r1, sp                                        
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
3000aa18:	e5832000 	str	r2, [r3]                                      
                                                                      
  /* Update the timespec format uptime */                             
  _Timestamp_Add_to( &_TOD_Uptime, &tick );                           
3000aa1c:	e59f003c 	ldr	r0, [pc, #60]	; 3000aa60 <_TOD_Tickle_ticks+0x78>
{                                                                     
  Timestamp_Control tick;                                             
  uint32_t          seconds;                                          
                                                                      
  /* Convert the tick quantum to a timestamp */                       
  _Timestamp_Set( &tick, 0, rtems_configuration_get_nanoseconds_per_tick() );
3000aa20:	e58de000 	str	lr, [sp]                                      
3000aa24:	e58dc004 	str	ip, [sp, #4]                                  
                                                                      
  /* Update the counter of ticks since boot */                        
  _Watchdog_Ticks_since_boot += 1;                                    
                                                                      
  /* Update the timespec format uptime */                             
  _Timestamp_Add_to( &_TOD_Uptime, &tick );                           
3000aa28:	eb000874 	bl	3000cc00 <_Timespec_Add_to>                    
  /* we do not care how much the uptime changed */                    
                                                                      
  /* Update the timespec format TOD */                                
  seconds = _Timestamp_Add_to_at_tick( &_TOD_Now, &tick );            
3000aa2c:	e59f0030 	ldr	r0, [pc, #48]	; 3000aa64 <_TOD_Tickle_ticks+0x7c>
3000aa30:	e1a0100d 	mov	r1, sp                                        
3000aa34:	eb000871 	bl	3000cc00 <_Timespec_Add_to>                    
  while ( seconds ) {                                                 
3000aa38:	e2504000 	subs	r4, r0, #0                                   
3000aa3c:	0a000003 	beq	3000aa50 <_TOD_Tickle_ticks+0x68>             
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void )            
{                                                                     
                                                                      
  _Watchdog_Tickle( &_Watchdog_Seconds_chain );                       
3000aa40:	e59f0020 	ldr	r0, [pc, #32]	; 3000aa68 <_TOD_Tickle_ticks+0x80><== NOT EXECUTED
3000aa44:	eb0009e2 	bl	3000d1d4 <_Watchdog_Tickle>                    <== NOT EXECUTED
3000aa48:	e2544001 	subs	r4, r4, #1                                   <== NOT EXECUTED
3000aa4c:	1afffffb 	bne	3000aa40 <_TOD_Tickle_ticks+0x58>             <== NOT EXECUTED
    _Watchdog_Tickle_seconds();                                       
    seconds--;                                                        
  }                                                                   
}                                                                     
3000aa50:	e28dd008 	add	sp, sp, #8                                    
3000aa54:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

3000abe0 <_TOD_Validate>: { uint32_t days_in_month; uint32_t ticks_per_second; ticks_per_second = TOD_MICROSECONDS_PER_SECOND / rtems_configuration_get_microseconds_per_tick();
3000abe0:	e59f30b0 	ldr	r3, [pc, #176]	; 3000ac98 <_TOD_Validate+0xb8>
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
  const rtems_time_of_day *the_tod                                    
)                                                                     
{                                                                     
3000abe4:	e92d4010 	push	{r4, lr}                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
3000abe8:	e2504000 	subs	r4, r0, #0                                   
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
3000abec:	e593100c 	ldr	r1, [r3, #12]                                 
      (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;                                                    
3000abf0:	01a00004 	moveq	r0, r4                                      
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
3000abf4:	08bd8010 	popeq	{r4, pc}                                    
)                                                                     
{                                                                     
  uint32_t   days_in_month;                                           
  uint32_t   ticks_per_second;                                        
                                                                      
  ticks_per_second = TOD_MICROSECONDS_PER_SECOND /                    
3000abf8:	e59f009c 	ldr	r0, [pc, #156]	; 3000ac9c <_TOD_Validate+0xbc>
3000abfc:	eb004a2c 	bl	3001d4b4 <__aeabi_uidiv>                       
	    rtems_configuration_get_microseconds_per_tick();                 
  if ((!the_tod)                                  ||                  
3000ac00:	e5943018 	ldr	r3, [r4, #24]                                 
3000ac04:	e1500003 	cmp	r0, r3                                        
3000ac08:	9a00001e 	bls	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->ticks  >= ticks_per_second)       ||                  
3000ac0c:	e5943014 	ldr	r3, [r4, #20]                                 
3000ac10:	e353003b 	cmp	r3, #59	; 0x3b                                
3000ac14:	8a00001b 	bhi	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->second >= TOD_SECONDS_PER_MINUTE) ||                  
3000ac18:	e5943010 	ldr	r3, [r4, #16]                                 
3000ac1c:	e353003b 	cmp	r3, #59	; 0x3b                                
3000ac20:	8a000018 	bhi	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->minute >= TOD_MINUTES_PER_HOUR)   ||                  
3000ac24:	e594300c 	ldr	r3, [r4, #12]                                 
3000ac28:	e3530017 	cmp	r3, #23                                       
3000ac2c:	8a000015 	bhi	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->hour   >= TOD_HOURS_PER_DAY)      ||                  
      (the_tod->month  == 0)                      ||                  
3000ac30:	e5940004 	ldr	r0, [r4, #4]                                  
	    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)      ||                  
3000ac34:	e3500000 	cmp	r0, #0                                        
3000ac38:	08bd8010 	popeq	{r4, pc}                                    
      (the_tod->month  == 0)                      ||                  
3000ac3c:	e350000c 	cmp	r0, #12                                       
3000ac40:	8a000010 	bhi	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->month  >  TOD_MONTHS_PER_YEAR)    ||                  
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
3000ac44:	e5943000 	ldr	r3, [r4]                                      
      (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)    ||                  
3000ac48:	e59f2050 	ldr	r2, [pc, #80]	; 3000aca0 <_TOD_Validate+0xc0> 
3000ac4c:	e1530002 	cmp	r3, r2                                        
3000ac50:	9a00000c 	bls	3000ac88 <_TOD_Validate+0xa8>                 
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
3000ac54:	e5944008 	ldr	r4, [r4, #8]                                  
      (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)          ||                  
3000ac58:	e3540000 	cmp	r4, #0                                        
3000ac5c:	0a00000b 	beq	3000ac90 <_TOD_Validate+0xb0>                 
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
3000ac60:	e3130003 	tst	r3, #3                                        
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
3000ac64:	059f3038 	ldreq	r3, [pc, #56]	; 3000aca4 <_TOD_Validate+0xc4>
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
3000ac68:	159f3034 	ldrne	r3, [pc, #52]	; 3000aca4 <_TOD_Validate+0xc4>
      (the_tod->year   <  TOD_BASE_YEAR)          ||                  
      (the_tod->day    == 0) )                                        
     return false;                                                    
                                                                      
  if ( (the_tod->year % 4) == 0 )                                     
    days_in_month = _TOD_Days_per_month[ 1 ][ the_tod->month ];       
3000ac6c:	0280000d 	addeq	r0, r0, #13                                 
3000ac70:	07930100 	ldreq	r0, [r3, r0, lsl #2]                        
  else                                                                
    days_in_month = _TOD_Days_per_month[ 0 ][ the_tod->month ];       
3000ac74:	17930100 	ldrne	r0, [r3, r0, lsl #2]                        
 *    false - if the the_tod is invalid                               
 *                                                                    
 *  NOTE: This routine only works for leap-years through 2099.        
 */                                                                   
                                                                      
bool _TOD_Validate(                                                   
3000ac78:	e1500004 	cmp	r0, r4                                        
3000ac7c:	33a00000 	movcc	r0, #0                                      
3000ac80:	23a00001 	movcs	r0, #1                                      
3000ac84:	e8bd8010 	pop	{r4, pc}                                      
      (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;                                                    
3000ac88:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000ac8c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
3000ac90:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
  if ( the_tod->day > days_in_month )                                 
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
3000ac94:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000bc8c <_Thread_Change_priority>: void _Thread_Change_priority( Thread_Control *the_thread, Priority_Control new_priority, bool prepend_it ) {
3000bc8c:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
3000bc90:	e1a04000 	mov	r4, r0                                        
3000bc94:	e1a07001 	mov	r7, r1                                        
3000bc98:	e20260ff 	and	r6, r2, #255	; 0xff                           
  States_Control state, original_state;                               
                                                                      
  /*                                                                  
   * Save original state                                              
   */                                                                 
  original_state = the_thread->current_state;                         
3000bc9c:	e5905010 	ldr	r5, [r0, #16]                                 
  /*                                                                  
   * 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 );                                
3000bca0:	eb000351 	bl	3000c9ec <_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 )                  
3000bca4:	e5943014 	ldr	r3, [r4, #20]                                 
3000bca8:	e1530007 	cmp	r3, r7                                        
    _Thread_Set_priority( the_thread, new_priority );                 
3000bcac:	11a00004 	movne	r0, r4                                      
3000bcb0:	11a01007 	movne	r1, r7                                      
3000bcb4:	1b000333 	blne	3000c988 <_Thread_Set_priority>              
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000bcb8:	e10f7000 	mrs	r7, CPSR                                      
3000bcbc:	e3873080 	orr	r3, r7, #128	; 0x80                           
3000bcc0:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  /*                                                                  
   *  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;                                  
3000bcc4:	e5943010 	ldr	r3, [r4, #16]                                 
  if ( state != STATES_TRANSIENT ) {                                  
3000bcc8:	e3530004 	cmp	r3, #4                                        
3000bccc:	0a00000b 	beq	3000bd00 <_Thread_Change_priority+0x74>       
    /* Only clear the transient state if it wasn't set already */     
    if ( ! _States_Is_transient( original_state ) )                   
3000bcd0:	e3150004 	tst	r5, #4                                        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE States_Control _States_Clear (                   
  States_Control states_to_clear,                                     
  States_Control current_state                                        
)                                                                     
{                                                                     
   return (current_state & ~states_to_clear);                         
3000bcd4:	03c32004 	biceq	r2, r3, #4                                  <== NOT EXECUTED
      the_thread->current_state = _States_Clear( STATES_TRANSIENT, state );
3000bcd8:	05842010 	streq	r2, [r4, #16]                               <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000bcdc:	e129f007 	msr	CPSR_fc, r7                                   <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
3000bce0:	e59f2098 	ldr	r2, [pc, #152]	; 3000bd80 <_Thread_Change_priority+0xf4><== NOT EXECUTED
3000bce4:	e0032002 	and	r2, r3, r2                                    <== NOT EXECUTED
    _ISR_Enable( level );                                             
    if ( _States_Is_waiting_on_thread_queue( state ) ) {              
3000bce8:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000bcec:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
      _Thread_queue_Requeue( the_thread->Wait.queue, the_thread );    
3000bcf0:	e5940044 	ldr	r0, [r4, #68]	; 0x44                          <== NOT EXECUTED
3000bcf4:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
                                                                      
  if ( !_Thread_Is_executing_also_the_heir() &&                       
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
  _ISR_Enable( level );                                               
}                                                                     
3000bcf8:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          <== NOT EXECUTED
    /* 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 );    
3000bcfc:	ea0002f5 	b	3000c8d8 <_Thread_queue_Requeue>                <== NOT EXECUTED
    }                                                                 
    return;                                                           
  }                                                                   
                                                                      
  /* Only clear the transient state if it wasn't set already */       
  if ( ! _States_Is_transient( original_state ) ) {                   
3000bd00:	e2155004 	ands	r5, r5, #4                                   
3000bd04:	159f5078 	ldrne	r5, [pc, #120]	; 3000bd84 <_Thread_Change_priority+0xf8>
3000bd08:	0a00000f 	beq	3000bd4c <_Thread_Change_priority+0xc0>       
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000bd0c:	e10f3000 	mrs	r3, CPSR                                      
3000bd10:	e129f007 	msr	CPSR_fc, r7                                   
3000bd14:	e129f003 	msr	CPSR_fc, r3                                   
 *  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();                                   
3000bd18:	e1a0e00f 	mov	lr, pc                                        
3000bd1c:	e595f008 	ldr	pc, [r5, #8]                                  
 *  is also the heir thread, and false otherwise.                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing_also_the_heir( void )  
{                                                                     
  return ( _Thread_Executing == _Thread_Heir );                       
3000bd20:	e59f3060 	ldr	r3, [pc, #96]	; 3000bd88 <_Thread_Change_priority+0xfc>
3000bd24:	e5932004 	ldr	r2, [r3, #4]                                  
   *  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() &&                       
3000bd28:	e5931008 	ldr	r1, [r3, #8]                                  
3000bd2c:	e1520001 	cmp	r2, r1                                        
3000bd30:	0a000003 	beq	3000bd44 <_Thread_Change_priority+0xb8>       
3000bd34:	e5d22074 	ldrb	r2, [r2, #116]	; 0x74                        
3000bd38:	e3520000 	cmp	r2, #0                                        
       _Thread_Executing->is_preemptible )                            
    _Thread_Dispatch_necessary = true;                                
3000bd3c:	13a02001 	movne	r2, #1                                      
3000bd40:	15c32010 	strbne	r2, [r3, #16]                              
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000bd44:	e129f007 	msr	CPSR_fc, r7                                   
3000bd48:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
     *  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 );
                                                                      
    if ( prepend_it )                                                 
3000bd4c:	e3560000 	cmp	r6, #0                                        
     *  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 );
3000bd50:	e5845010 	str	r5, [r4, #16]                                 
                                                                      
    if ( prepend_it )                                                 
3000bd54:	0a000004 	beq	3000bd6c <_Thread_Change_priority+0xe0>       
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(                   
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue_first( the_thread );                  
3000bd58:	e59f5024 	ldr	r5, [pc, #36]	; 3000bd84 <_Thread_Change_priority+0xf8>
3000bd5c:	e1a00004 	mov	r0, r4                                        
3000bd60:	e1a0e00f 	mov	lr, pc                                        
3000bd64:	e595f028 	ldr	pc, [r5, #40]	; 0x28                          
3000bd68:	eaffffe7 	b	3000bd0c <_Thread_Change_priority+0x80>         
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(                         
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  _Scheduler.Operations.enqueue( the_thread );                        
3000bd6c:	e59f5010 	ldr	r5, [pc, #16]	; 3000bd84 <_Thread_Change_priority+0xf8>
3000bd70:	e1a00004 	mov	r0, r4                                        
3000bd74:	e1a0e00f 	mov	lr, pc                                        
3000bd78:	e595f024 	ldr	pc, [r5, #36]	; 0x24                          
3000bd7c:	eaffffe2 	b	3000bd0c <_Thread_Change_priority+0x80>         
                                                                      

3000bdd8 <_Thread_Close>: RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id( Objects_Information *information, Objects_Control *the_object ) { _Objects_Set_local_object(
3000bdd8:	e1d120b8 	ldrh	r2, [r1, #8]                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000bddc:	e590301c 	ldr	r3, [r0, #28]                                 
                                                                      
void _Thread_Close(                                                   
  Objects_Information  *information,                                  
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
3000bde0:	e92d4070 	push	{r4, r5, r6, lr}                             
3000bde4:	e1a04001 	mov	r4, r1                                        
3000bde8:	e3a01000 	mov	r1, #0                                        
3000bdec:	e7831102 	str	r1, [r3, r2, lsl #2]                          
3000bdf0:	e1a05000 	mov	r5, r0                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000bdf4:	e59f608c 	ldr	r6, [pc, #140]	; 3000be88 <_Thread_Close+0xb0>
   *  disappear and set a transient state on it.  So we temporarily   
   *  unnest dispatching.                                             
   */                                                                 
  _Thread_Unnest_dispatch();                                          
                                                                      
  _User_extensions_Thread_delete( the_thread );                       
3000bdf8:	e1a00004 	mov	r0, r4                                        
3000bdfc:	e5963000 	ldr	r3, [r6]                                      
3000be00:	e2433001 	sub	r3, r3, #1                                    
3000be04:	e5863000 	str	r3, [r6]                                      
3000be08:	eb000421 	bl	3000ce94 <_User_extensions_Thread_delete>      
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000be0c:	e5963000 	ldr	r3, [r6]                                      
3000be10:	e2833001 	add	r3, r3, #1                                    
3000be14:	e5863000 	str	r3, [r6]                                      
  /*                                                                  
   *  Now we are in a dispatching critical section again and we       
   *  can take the thread OUT of the published set.  It is invalid    
   *  to use this thread's Id OR name after this call.                
   */                                                                 
  _Objects_Close( information, &the_thread->Object );                 
3000be18:	e1a01004 	mov	r1, r4                                        
3000be1c:	e1a00005 	mov	r0, r5                                        
3000be20:	ebfffc4f 	bl	3000af64 <_Objects_Close>                      
                                                                      
  /*                                                                  
   *  By setting the dormant state, the thread will not be considered 
   *  for scheduling when we remove any blocking states.              
   */                                                                 
  _Thread_Set_state( the_thread, STATES_DORMANT );                    
3000be24:	e1a00004 	mov	r0, r4                                        
3000be28:	e3a01001 	mov	r1, #1                                        
3000be2c:	eb0002dc 	bl	3000c9a4 <_Thread_Set_state>                   
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
3000be30:	e1a00004 	mov	r0, r4                                        
3000be34:	eb000276 	bl	3000c814 <_Thread_queue_Extract_with_proxy>    
3000be38:	e3500000 	cmp	r0, #0                                        
3000be3c:	1a000002 	bne	3000be4c <_Thread_Close+0x74>                 
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
3000be40:	e5943050 	ldr	r3, [r4, #80]	; 0x50                          
3000be44:	e3530002 	cmp	r3, #2                                        
3000be48:	0a00000b 	beq	3000be7c <_Thread_Close+0xa4>                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Free(                            
  Thread_Control    *the_thread                                       
)                                                                     
{                                                                     
  return _Scheduler.Operations.free( the_thread );                    
3000be4c:	e59f3038 	ldr	r3, [pc, #56]	; 3000be8c <_Thread_Close+0xb4> 
3000be50:	e1a00004 	mov	r0, r4                                        
3000be54:	e1a0e00f 	mov	lr, pc                                        
3000be58:	e593f01c 	ldr	pc, [r3, #28]                                 
  /*                                                                  
   *  Free the rest of the memory associated with this task           
   *  and set the associated pointers to NULL for safety.             
   */                                                                 
  _Thread_Stack_Free( the_thread );                                   
  the_thread->Start.stack = NULL;                                     
3000be5c:	e3a05000 	mov	r5, #0                                        
                                                                      
  /*                                                                  
   *  Free the rest of the memory associated with this task           
   *  and set the associated pointers to NULL for safety.             
   */                                                                 
  _Thread_Stack_Free( the_thread );                                   
3000be60:	e1a00004 	mov	r0, r4                                        
3000be64:	eb00030a 	bl	3000ca94 <_Thread_Stack_Free>                  
  the_thread->Start.stack = NULL;                                     
3000be68:	e58450c0 	str	r5, [r4, #192]	; 0xc0                         
                                                                      
  _Workspace_Free( the_thread->extensions );                          
3000be6c:	e5940100 	ldr	r0, [r4, #256]	; 0x100                        
3000be70:	eb00051e 	bl	3000d2f0 <_Workspace_Free>                     
  the_thread->extensions = NULL;                                      
3000be74:	e5845100 	str	r5, [r4, #256]	; 0x100                        
}                                                                     
3000be78:	e8bd8070 	pop	{r4, r5, r6, pc}                              
   */                                                                 
  _Thread_Set_state( the_thread, STATES_DORMANT );                    
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
      (void) _Watchdog_Remove( &the_thread->Timer );                  
3000be7c:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
3000be80:	eb0004a8 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
3000be84:	eafffff0 	b	3000be4c <_Thread_Close+0x74>                   <== NOT EXECUTED
                                                                      

3000bf68 <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored __attribute__((unused)) ) {
3000bf68:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
3000bf6c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000bf70:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000bf74:	eb00006b 	bl	3000c128 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000bf78:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000bf7c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bf80:	1a000005 	bne	3000bf9c <_Thread_Delay_ended+0x34>           <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_Clear_state(                                            
3000bf84:	e59f1018 	ldr	r1, [pc, #24]	; 3000bfa4 <_Thread_Delay_ended+0x3c><== NOT EXECUTED
3000bf88:	ebffff7f 	bl	3000bd8c <_Thread_Clear_state>                 <== NOT EXECUTED
3000bf8c:	e59f3014 	ldr	r3, [pc, #20]	; 3000bfa8 <_Thread_Delay_ended+0x40><== NOT EXECUTED
3000bf90:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000bf94:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000bf98:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
          | STATES_INTERRUPTIBLE_BY_SIGNAL                            
      );                                                              
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
3000bf9c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000bfa0:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000bfac <_Thread_Dispatch>: * dispatch thread * no dispatch thread */ void _Thread_Dispatch( void ) {
3000bfac:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
3000bfb0:	e59f7138 	ldr	r7, [pc, #312]	; 3000c0f0 <_Thread_Dispatch+0x144>
 *    dispatch thread                                                 
 *    no dispatch thread                                              
 */                                                                   
                                                                      
void _Thread_Dispatch( void )                                         
{                                                                     
3000bfb4:	e24dd010 	sub	sp, sp, #16                                   
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
3000bfb8:	e5975004 	ldr	r5, [r7, #4]                                  
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000bfbc:	e10f2000 	mrs	r2, CPSR                                      
3000bfc0:	e3823080 	orr	r3, r2, #128	; 0x80                           
3000bfc4:	e129f003 	msr	CPSR_fc, r3                                   
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
3000bfc8:	e5d71010 	ldrb	r1, [r7, #16]                                
3000bfcc:	e3510000 	cmp	r1, #0                                        
3000bfd0:	0a000043 	beq	3000c0e4 <_Thread_Dispatch+0x138>             
    heir = _Thread_Heir;                                              
3000bfd4:	e5974008 	ldr	r4, [r7, #8]                                  
    _Thread_Dispatch_disable_level = 1;                               
3000bfd8:	e59f9114 	ldr	r9, [pc, #276]	; 3000c0f4 <_Thread_Dispatch+0x148>
3000bfdc:	e3a00001 	mov	r0, #1                                        
    _Thread_Dispatch_necessary = false;                               
3000bfe0:	e3a01000 	mov	r1, #0                                        
    /*                                                                
     *  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 )                                          
3000bfe4:	e1550004 	cmp	r5, r4                                        
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
3000bfe8:	e5890000 	str	r0, [r9]                                      
    _Thread_Dispatch_necessary = false;                               
    _Thread_Executing = heir;                                         
3000bfec:	e5874004 	str	r4, [r7, #4]                                  
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
    _Thread_Dispatch_necessary = false;                               
3000bff0:	e5c71010 	strb	r1, [r7, #16]                                
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
3000bff4:	01a03002 	moveq	r3, r2                                      
    /*                                                                
     *  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 )                                          
3000bff8:	0a000033 	beq	3000c0cc <_Thread_Dispatch+0x120>             
3000bffc:	e28da008 	add	sl, sp, #8                                    
3000c000:	e1a0800d 	mov	r8, sp                                        
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
3000c004:	e1a06007 	mov	r6, r7                                        
3000c008:	ea000007 	b	3000c02c <_Thread_Dispatch+0x80>                
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
3000c00c:	e5964008 	ldr	r4, [r6, #8]                                  <== NOT EXECUTED
    _Thread_Dispatch_disable_level = 1;                               
3000c010:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
    _Thread_Dispatch_necessary = false;                               
3000c014:	e3a0b000 	mov	fp, #0                                        <== NOT EXECUTED
    /*                                                                
     *  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 )                                          
3000c018:	e1540005 	cmp	r4, r5                                        <== NOT EXECUTED
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
    heir = _Thread_Heir;                                              
    _Thread_Dispatch_disable_level = 1;                               
3000c01c:	e5891000 	str	r1, [r9]                                      <== NOT EXECUTED
    _Thread_Dispatch_necessary = false;                               
3000c020:	e5c6b010 	strb	fp, [r6, #16]                                <== NOT EXECUTED
    _Thread_Executing = heir;                                         
3000c024:	e5864004 	str	r4, [r6, #4]                                  <== NOT EXECUTED
    /*                                                                
     *  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 )                                          
3000c028:	0a000027 	beq	3000c0cc <_Thread_Dispatch+0x120>             <== NOT EXECUTED
     */                                                               
#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 )
3000c02c:	e594307c 	ldr	r3, [r4, #124]	; 0x7c                         
3000c030:	e3530001 	cmp	r3, #1                                        
      heir->cpu_time_budget = _Thread_Ticks_per_timeslice;            
3000c034:	059fc0bc 	ldreq	ip, [pc, #188]	; 3000c0f8 <_Thread_Dispatch+0x14c>
3000c038:	059c3000 	ldreq	r3, [ip]                                    
3000c03c:	05843078 	streq	r3, [r4, #120]	; 0x78                       
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000c040:	e129f002 	msr	CPSR_fc, r2                                   
    _ISR_Enable( level );                                             
                                                                      
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      {                                                               
        Timestamp_Control uptime, ran;                                
        _TOD_Get_uptime( &uptime );                                   
3000c044:	e1a0000a 	mov	r0, sl                                        
3000c048:	eb000f4b 	bl	3000fd7c <_TOD_Get_uptime>                     
        _Timestamp_Subtract(                                          
3000c04c:	e1a0200d 	mov	r2, sp                                        
3000c050:	e1a0100a 	mov	r1, sl                                        
3000c054:	e59f00a0 	ldr	r0, [pc, #160]	; 3000c0fc <_Thread_Dispatch+0x150>
3000c058:	eb0002ff 	bl	3000cc5c <_Timespec_Subtract>                  
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
3000c05c:	e1a0100d 	mov	r1, sp                                        
3000c060:	e2850084 	add	r0, r5, #132	; 0x84                           
3000c064:	eb0002e5 	bl	3000cc00 <_Timespec_Add_to>                    
        _Thread_Time_of_last_context_switch = uptime;                 
3000c068:	e28dc008 	add	ip, sp, #8                                    
3000c06c:	e89c1800 	ldm	ip, {fp, ip}                                  
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
3000c070:	e59f2088 	ldr	r2, [pc, #136]	; 3000c100 <_Thread_Dispatch+0x154>
      executing->libc_reent = *_Thread_libc_reent;                    
      *_Thread_libc_reent = heir->libc_reent;                         
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
3000c074:	e1a00005 	mov	r0, r5                                        
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
3000c078:	e5923000 	ldr	r3, [r2]                                      
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
        _Thread_Time_of_last_context_switch = uptime;                 
3000c07c:	e59f2078 	ldr	r2, [pc, #120]	; 3000c0fc <_Thread_Dispatch+0x150>
    #endif                                                            
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
3000c080:	e3530000 	cmp	r3, #0                                        
          &_Thread_Time_of_last_context_switch,                       
          &uptime,                                                    
          &ran                                                        
        );                                                            
        _Timestamp_Add_to( &executing->cpu_time_used, &ran );         
        _Thread_Time_of_last_context_switch = uptime;                 
3000c084:	e8821800 	stm	r2, {fp, ip}                                  
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
      executing->libc_reent = *_Thread_libc_reent;                    
3000c088:	15932000 	ldrne	r2, [r3]                                    
      *_Thread_libc_reent = heir->libc_reent;                         
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
3000c08c:	e1a01004 	mov	r1, r4                                        
                                                                      
    /*                                                                
     * Switch libc's task specific data.                              
     */                                                               
    if ( _Thread_libc_reent ) {                                       
      executing->libc_reent = *_Thread_libc_reent;                    
3000c090:	158520f4 	strne	r2, [r5, #244]	; 0xf4                       
      *_Thread_libc_reent = heir->libc_reent;                         
3000c094:	159420f4 	ldrne	r2, [r4, #244]	; 0xf4                       
3000c098:	15832000 	strne	r2, [r3]                                    
    }                                                                 
                                                                      
    _User_extensions_Thread_switch( executing, heir );                
3000c09c:	eb0003a2 	bl	3000cf2c <_User_extensions_Thread_switch>      
    if ( executing->fp_context != NULL )                              
      _Context_Save_fp( &executing->fp_context );                     
#endif                                                                
#endif                                                                
                                                                      
    _Context_Switch( &executing->Registers, &heir->Registers );       
3000c0a0:	e28500c4 	add	r0, r5, #196	; 0xc4                           
3000c0a4:	e28410c4 	add	r1, r4, #196	; 0xc4                           
3000c0a8:	eb000570 	bl	3000d670 <_CPU_Context_switch>                 
    if ( executing->fp_context != NULL )                              
      _Context_Restore_fp( &executing->fp_context );                  
#endif                                                                
#endif                                                                
                                                                      
    executing = _Thread_Executing;                                    
3000c0ac:	e5975004 	ldr	r5, [r7, #4]                                  
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000c0b0:	e10f3000 	mrs	r3, CPSR                                      
3000c0b4:	e3832080 	orr	r2, r3, #128	; 0x80                           
3000c0b8:	e129f002 	msr	CPSR_fc, r2                                   
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
  while ( _Thread_Dispatch_necessary == true ) {                      
3000c0bc:	e5d71010 	ldrb	r1, [r7, #16]                                
3000c0c0:	e1a02003 	mov	r2, r3                                        
3000c0c4:	e3510000 	cmp	r1, #0                                        
3000c0c8:	1affffcf 	bne	3000c00c <_Thread_Dispatch+0x60>              
                                                                      
    _ISR_Disable( level );                                            
  }                                                                   
                                                                      
post_switch:                                                          
  _Thread_Dispatch_disable_level = 0;                                 
3000c0cc:	e3a01000 	mov	r1, #0                                        
3000c0d0:	e5891000 	str	r1, [r9]                                      
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000c0d4:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  _API_extensions_Run_postswitch();                                   
3000c0d8:	ebfff8be 	bl	3000a3d8 <_API_extensions_Run_postswitch>      
}                                                                     
3000c0dc:	e28dd010 	add	sp, sp, #16                                   
3000c0e0:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
  Thread_Control   *executing;                                        
  Thread_Control   *heir;                                             
  ISR_Level         level;                                            
                                                                      
  executing   = _Thread_Executing;                                    
  _ISR_Disable( level );                                              
3000c0e4:	e1a03002 	mov	r3, r2                                        
3000c0e8:	e59f9004 	ldr	r9, [pc, #4]	; 3000c0f4 <_Thread_Dispatch+0x148>
3000c0ec:	eafffff6 	b	3000c0cc <_Thread_Dispatch+0x120>               
                                                                      

3000c128 <_Thread_Get>: 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 ) ) {
3000c128:	e2503000 	subs	r3, r0, #0                                   
 */                                                                   
Thread_Control *_Thread_Get (                                         
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
3000c12c:	e1a02001 	mov	r2, r1                                        
  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 ) ) {           
3000c130:	0a000014 	beq	3000c188 <_Thread_Get+0x60>                   
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
3000c134:	e1a01c23 	lsr	r1, r3, #24                                   
3000c138:	e2011007 	and	r1, r1, #7                                    
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
3000c13c:	e2410001 	sub	r0, r1, #1                                    
3000c140:	e3500002 	cmp	r0, #2                                        
3000c144:	8a00000b 	bhi	3000c178 <_Thread_Get+0x50>                   
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (uint32_t)                                                   
3000c148:	e1a0cda3 	lsr	ip, r3, #27                                   
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
3000c14c:	e35c0001 	cmp	ip, #1                                        
3000c150:	1a000008 	bne	3000c178 <_Thread_Get+0x50>                   
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  api_information = _Objects_Information_table[ the_api ];            
3000c154:	e59f0054 	ldr	r0, [pc, #84]	; 3000c1b0 <_Thread_Get+0x88>   
3000c158:	e7900101 	ldr	r0, [r0, r1, lsl #2]                          
   *  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 ) {                                           
3000c15c:	e3500000 	cmp	r0, #0                                        
3000c160:	0a000010 	beq	3000c1a8 <_Thread_Get+0x80>                   
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
3000c164:	e5900004 	ldr	r0, [r0, #4]                                  
  if ( !information ) {                                               
3000c168:	e3500000 	cmp	r0, #0                                        
3000c16c:	0a00000d 	beq	3000c1a8 <_Thread_Get+0x80>                   
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
3000c170:	e1a01003 	mov	r1, r3                                        
3000c174:	eafffc86 	b	3000b394 <_Objects_Get>                         
    goto done;                                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
    *location = OBJECTS_ERROR;                                        
3000c178:	e3a03001 	mov	r3, #1                                        
3000c17c:	e5823000 	str	r3, [r2]                                      
{                                                                     
  uint32_t             the_api;                                       
  uint32_t             the_class;                                     
  Objects_Information **api_information;                              
  Objects_Information *information;                                   
  Thread_Control      *tp = (Thread_Control *) 0;                     
3000c180:	e3a00000 	mov	r0, #0                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
3000c184:	e12fff1e 	bx	lr                                             
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000c188:	e59f1024 	ldr	r1, [pc, #36]	; 3000c1b4 <_Thread_Get+0x8c>   
3000c18c:	e5910000 	ldr	r0, [r1]                                      
3000c190:	e2800001 	add	r0, r0, #1                                    
3000c194:	e5810000 	str	r0, [r1]                                      
  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;                                        
3000c198:	e5823000 	str	r3, [r2]                                      
    tp = _Thread_Executing;                                           
3000c19c:	e59f3014 	ldr	r3, [pc, #20]	; 3000c1b8 <_Thread_Get+0x90>   
3000c1a0:	e5930004 	ldr	r0, [r3, #4]                                  
    goto done;                                                        
3000c1a4:	e12fff1e 	bx	lr                                             
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
  if ( !information ) {                                               
    *location = OBJECTS_ERROR;                                        
3000c1a8:	e582c000 	str	ip, [r2]                                      <== NOT EXECUTED
    goto done;                                                        
3000c1ac:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000c398 <_Thread_Handler_initialization>: uint32_t maximum_internal_threads; #if defined(RTEMS_MULTIPROCESSING) uint32_t maximum_proxies; #endif ticks_per_timeslice = Configuration.ticks_per_timeslice;
3000c398:	e59f2088 	ldr	r2, [pc, #136]	; 3000c428 <_Thread_Handler_initialization+0x90>
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler_initialization(void)                             
{                                                                     
3000c39c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  #endif                                                              
  /*                                                                  
   * BOTH stacks hooks must be set or both must be NULL.              
   * Do not allow mixture.                                            
   */                                                                 
    if ( !( (!Configuration.stack_allocate_hook)                      
3000c3a0:	e592c020 	ldr	ip, [r2, #32]                                 
            == (!Configuration.stack_free_hook) ) )                   
3000c3a4:	e5923024 	ldr	r3, [r2, #36]	; 0x24                          
  #endif                                                              
  /*                                                                  
   * BOTH stacks hooks must be set or both must be NULL.              
   * Do not allow mixture.                                            
   */                                                                 
    if ( !( (!Configuration.stack_allocate_hook)                      
3000c3a8:	e27cc001 	rsbs	ip, ip, #1                                   
3000c3ac:	33a0c000 	movcc	ip, #0                                      
3000c3b0:	e3530000 	cmp	r3, #0                                        
3000c3b4:	022cc001 	eoreq	ip, ip, #1                                  
3000c3b8:	e35c0000 	cmp	ip, #0                                        
  uint32_t     maximum_internal_threads;                              
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t   maximum_proxies;                                       
  #endif                                                              
                                                                      
  ticks_per_timeslice = Configuration.ticks_per_timeslice;            
3000c3bc:	e5923010 	ldr	r3, [r2, #16]                                 
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler_initialization(void)                             
{                                                                     
3000c3c0:	e24dd00c 	sub	sp, sp, #12                                   
  #if defined(RTEMS_MULTIPROCESSING)                                  
    uint32_t   maximum_proxies;                                       
  #endif                                                              
                                                                      
  ticks_per_timeslice = Configuration.ticks_per_timeslice;            
  maximum_extensions  = Configuration.maximum_extensions;             
3000c3c4:	e5922008 	ldr	r2, [r2, #8]                                  
  #endif                                                              
  /*                                                                  
   * BOTH stacks hooks must be set or both must be NULL.              
   * Do not allow mixture.                                            
   */                                                                 
    if ( !( (!Configuration.stack_allocate_hook)                      
3000c3c8:	1a000012 	bne	3000c418 <_Thread_Handler_initialization+0x80>
      INTERNAL_ERROR_CORE,                                            
      true,                                                           
      INTERNAL_ERROR_BAD_STACK_HOOK                                   
    );                                                                
                                                                      
  _Thread_Dispatch_necessary = false;                                 
3000c3cc:	e59fe058 	ldr	lr, [pc, #88]	; 3000c42c <_Thread_Handler_initialization+0x94>
  _Thread_Heir              = NULL;                                   
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
  _Thread_Allocated_fp      = NULL;                                   
#endif                                                                
                                                                      
  _Thread_Maximum_extensions = maximum_extensions;                    
3000c3d0:	e59f0058 	ldr	r0, [pc, #88]	; 3000c430 <_Thread_Handler_initialization+0x98>
      true,                                                           
      INTERNAL_ERROR_BAD_STACK_HOOK                                   
    );                                                                
                                                                      
  _Thread_Dispatch_necessary = false;                                 
  _Thread_Executing         = NULL;                                   
3000c3d4:	e58ec004 	str	ip, [lr, #4]                                  
  _Thread_Heir              = NULL;                                   
3000c3d8:	e58ec008 	str	ip, [lr, #8]                                  
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
  _Thread_Allocated_fp      = NULL;                                   
#endif                                                                
                                                                      
  _Thread_Maximum_extensions = maximum_extensions;                    
3000c3dc:	e5802000 	str	r2, [r0]                                      
                                                                      
  _Thread_Ticks_per_timeslice  = ticks_per_timeslice;                 
3000c3e0:	e59f204c 	ldr	r2, [pc, #76]	; 3000c434 <_Thread_Handler_initialization+0x9c>
  #if defined(RTEMS_MULTIPROCESSING)                                  
    if ( _System_state_Is_multiprocessing )                           
      maximum_internal_threads += 1;                                  
  #endif                                                              
                                                                      
  _Objects_Initialize_information(                                    
3000c3e4:	e3a01001 	mov	r1, #1                                        
  _Thread_Allocated_fp      = NULL;                                   
#endif                                                                
                                                                      
  _Thread_Maximum_extensions = maximum_extensions;                    
                                                                      
  _Thread_Ticks_per_timeslice  = ticks_per_timeslice;                 
3000c3e8:	e5823000 	str	r3, [r2]                                      
  #if defined(RTEMS_MULTIPROCESSING)                                  
    if ( _System_state_Is_multiprocessing )                           
      maximum_internal_threads += 1;                                  
  #endif                                                              
                                                                      
  _Objects_Initialize_information(                                    
3000c3ec:	e3a03f42 	mov	r3, #264	; 0x108                              
3000c3f0:	e88d1008 	stm	sp, {r3, ip}                                  
3000c3f4:	e59f003c 	ldr	r0, [pc, #60]	; 3000c438 <_Thread_Handler_initialization+0xa0>
      INTERNAL_ERROR_CORE,                                            
      true,                                                           
      INTERNAL_ERROR_BAD_STACK_HOOK                                   
    );                                                                
                                                                      
  _Thread_Dispatch_necessary = false;                                 
3000c3f8:	e5cec010 	strb	ip, [lr, #16]                                
  #if defined(RTEMS_MULTIPROCESSING)                                  
    if ( _System_state_Is_multiprocessing )                           
      maximum_internal_threads += 1;                                  
  #endif                                                              
                                                                      
  _Objects_Initialize_information(                                    
3000c3fc:	e1a02001 	mov	r2, r1                                        
3000c400:	e3a0c008 	mov	ip, #8                                        
3000c404:	e1a03001 	mov	r3, r1                                        
3000c408:	e58dc008 	str	ip, [sp, #8]                                  
3000c40c:	ebfffc00 	bl	3000b414 <_Objects_Initialize_information>     
      false,                      /* true if this is a global object class */
      NULL                        /* Proxy extraction support callout */
    #endif                                                            
  );                                                                  
                                                                      
}                                                                     
3000c410:	e28dd00c 	add	sp, sp, #12                                   
3000c414:	e8bd8000 	pop	{pc}                                          
   * BOTH stacks hooks must be set or both must be NULL.              
   * Do not allow mixture.                                            
   */                                                                 
    if ( !( (!Configuration.stack_allocate_hook)                      
            == (!Configuration.stack_free_hook) ) )                   
    _Internal_error_Occurred(                                         
3000c418:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c41c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c420:	e3a0200e 	mov	r2, #14                                       <== NOT EXECUTED
3000c424:	ebfffa91 	bl	3000ae70 <_Internal_error_Occurred>            <== NOT EXECUTED
                                                                      

30011338 <_Thread_Reset>: void _Thread_Reset( Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) {
30011338:	e92d4030 	push	{r4, r5, lr}                                 
  the_thread->resource_count   = 0;                                   
  the_thread->is_preemptible   = the_thread->Start.is_preemptible;    
  the_thread->budget_algorithm = the_thread->Start.budget_algorithm;  
3001133c:	e590c0a4 	ldr	ip, [r0, #164]	; 0xa4                         
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
  the_thread->resource_count   = 0;                                   
  the_thread->is_preemptible   = the_thread->Start.is_preemptible;    
30011340:	e5d0e0a0 	ldrb	lr, [r0, #160]	; 0xa0                        
  the_thread->budget_algorithm = the_thread->Start.budget_algorithm;  
  the_thread->budget_callout   = the_thread->Start.budget_callout;    
30011344:	e59030a8 	ldr	r3, [r0, #168]	; 0xa8                         
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
  the_thread->resource_count   = 0;                                   
30011348:	e3a05000 	mov	r5, #0                                        
3001134c:	e580501c 	str	r5, [r0, #28]                                 
  the_thread->is_preemptible   = the_thread->Start.is_preemptible;    
30011350:	e5c0e074 	strb	lr, [r0, #116]	; 0x74                        
  the_thread->budget_algorithm = the_thread->Start.budget_algorithm;  
30011354:	e580c07c 	str	ip, [r0, #124]	; 0x7c                         
  the_thread->budget_callout   = the_thread->Start.budget_callout;    
30011358:	e5803080 	str	r3, [r0, #128]	; 0x80                         
                                                                      
  the_thread->Start.pointer_argument = pointer_argument;              
3001135c:	e5801098 	str	r1, [r0, #152]	; 0x98                         
  the_thread->Start.numeric_argument = numeric_argument;              
30011360:	e580209c 	str	r2, [r0, #156]	; 0x9c                         
void _Thread_Reset(                                                   
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
30011364:	e1a04000 	mov	r4, r0                                        
  the_thread->budget_callout   = the_thread->Start.budget_callout;    
                                                                      
  the_thread->Start.pointer_argument = pointer_argument;              
  the_thread->Start.numeric_argument = numeric_argument;              
                                                                      
  if ( !_Thread_queue_Extract_with_proxy( the_thread ) ) {            
30011368:	ebfff06e 	bl	3000d528 <_Thread_queue_Extract_with_proxy>    
3001136c:	e1500005 	cmp	r0, r5                                        
30011370:	1a000002 	bne	30011380 <_Thread_Reset+0x48>                 
                                                                      
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
30011374:	e5943050 	ldr	r3, [r4, #80]	; 0x50                          
30011378:	e3530002 	cmp	r3, #2                                        
3001137c:	0a000007 	beq	300113a0 <_Thread_Reset+0x68>                 
      (void) _Watchdog_Remove( &the_thread->Timer );                  
  }                                                                   
                                                                      
  if ( the_thread->current_priority != the_thread->Start.initial_priority ) {
30011380:	e59410b0 	ldr	r1, [r4, #176]	; 0xb0                         
30011384:	e5943014 	ldr	r3, [r4, #20]                                 
30011388:	e1530001 	cmp	r3, r1                                        
3001138c:	08bd8030 	popeq	{r4, r5, pc}                                
    the_thread->real_priority = the_thread->Start.initial_priority;   
    _Thread_Set_priority( the_thread, the_thread->Start.initial_priority );
30011390:	e1a00004 	mov	r0, r4                                        
    if ( _Watchdog_Is_active( &the_thread->Timer ) )                  
      (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;   
30011394:	e5841018 	str	r1, [r4, #24]                                 
    _Thread_Set_priority( the_thread, the_thread->Start.initial_priority );
  }                                                                   
}                                                                     
30011398:	e8bd4030 	pop	{r4, r5, lr}                                  
      (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 );
3001139c:	eafff0da 	b	3000d70c <_Thread_Set_priority>                 
  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 );                  
300113a0:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
300113a4:	ebfff2d3 	bl	3000def8 <_Watchdog_Remove>                    <== NOT EXECUTED
300113a8:	eafffff4 	b	30011380 <_Thread_Reset+0x48>                   <== NOT EXECUTED
                                                                      

3000cb14 <_Thread_Start>: */ RTEMS_INLINE_ROUTINE bool _States_Is_dormant ( States_Control the_states ) { return (the_states & STATES_DORMANT);
3000cb14:	e590c010 	ldr	ip, [r0, #16]                                 
  Thread_Start_types         the_prototype,                           
  void                      *entry_point,                             
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
3000cb18:	e92d4010 	push	{r4, lr}                                     
  if ( _States_Is_dormant( the_thread->current_state ) ) {            
3000cb1c:	e21cc001 	ands	ip, ip, #1                                   
  Thread_Start_types         the_prototype,                           
  void                      *entry_point,                             
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
3000cb20:	e1a04000 	mov	r4, r0                                        
  if ( _States_Is_dormant( the_thread->current_state ) ) {            
3000cb24:	1a000001 	bne	3000cb30 <_Thread_Start+0x1c>                 
    _User_extensions_Thread_start( the_thread );                      
                                                                      
    return true;                                                      
  }                                                                   
                                                                      
  return false;                                                       
3000cb28:	e1a0000c 	mov	r0, ip                                        <== NOT EXECUTED
}                                                                     
3000cb2c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  if ( _States_Is_dormant( the_thread->current_state ) ) {            
                                                                      
    the_thread->Start.entry_point      = (Thread_Entry) entry_point;  
                                                                      
    the_thread->Start.prototype        = the_prototype;               
    the_thread->Start.pointer_argument = pointer_argument;            
3000cb30:	e5803098 	str	r3, [r0, #152]	; 0x98                         
    the_thread->Start.numeric_argument = numeric_argument;            
3000cb34:	e59d3008 	ldr	r3, [sp, #8]                                  
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
  if ( _States_Is_dormant( the_thread->current_state ) ) {            
                                                                      
    the_thread->Start.entry_point      = (Thread_Entry) entry_point;  
3000cb38:	e5802090 	str	r2, [r0, #144]	; 0x90                         
                                                                      
    the_thread->Start.prototype        = the_prototype;               
3000cb3c:	e5801094 	str	r1, [r0, #148]	; 0x94                         
    the_thread->Start.pointer_argument = pointer_argument;            
    the_thread->Start.numeric_argument = numeric_argument;            
3000cb40:	e580309c 	str	r3, [r0, #156]	; 0x9c                         
                                                                      
    _Thread_Load_environment( the_thread );                           
3000cb44:	eb000daf 	bl	30010208 <_Thread_Load_environment>            
                                                                      
    _Thread_Ready( the_thread );                                      
3000cb48:	e1a00004 	mov	r0, r4                                        
3000cb4c:	eb000e50 	bl	30010494 <_Thread_Ready>                       
                                                                      
    _User_extensions_Thread_start( the_thread );                      
3000cb50:	e1a00004 	mov	r0, r4                                        
3000cb54:	eb0000e1 	bl	3000cee0 <_User_extensions_Thread_start>       
                                                                      
    return true;                                                      
3000cb58:	e3a00001 	mov	r0, #1                                        
3000cb5c:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

3000cb60 <_Thread_Tickle_timeslice>: void _Thread_Tickle_timeslice( void ) { Thread_Control *executing; executing = _Thread_Executing;
3000cb60:	e59f308c 	ldr	r3, [pc, #140]	; 3000cbf4 <_Thread_Tickle_timeslice+0x94>
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Tickle_timeslice( void )                                 
{                                                                     
3000cb64:	e92d4010 	push	{r4, lr}                                     
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
3000cb68:	e5934004 	ldr	r4, [r3, #4]                                  
  /*                                                                  
   *  If the thread is not preemptible or is not ready, then          
   *  just return.                                                    
   */                                                                 
                                                                      
  if ( !executing->is_preemptible )                                   
3000cb6c:	e5d43074 	ldrb	r3, [r4, #116]	; 0x74                        
3000cb70:	e3530000 	cmp	r3, #0                                        
3000cb74:	08bd8010 	popeq	{r4, pc}                                    
    return;                                                           
                                                                      
  if ( !_States_Is_ready( executing->current_state ) )                
3000cb78:	e5943010 	ldr	r3, [r4, #16]                                 
3000cb7c:	e3530000 	cmp	r3, #0                                        
3000cb80:	18bd8010 	popne	{r4, pc}                                    
                                                                      
  /*                                                                  
   *  The cpu budget algorithm determines what happens next.          
   */                                                                 
                                                                      
  switch ( executing->budget_algorithm ) {                            
3000cb84:	e594307c 	ldr	r3, [r4, #124]	; 0x7c                         
3000cb88:	e3530001 	cmp	r3, #1                                        
3000cb8c:	38bd8010 	popcc	{r4, pc}                                    
3000cb90:	e3530002 	cmp	r3, #2                                        <== NOT EXECUTED
3000cb94:	9a00000a 	bls	3000cbc4 <_Thread_Tickle_timeslice+0x64>      <== NOT EXECUTED
3000cb98:	e3530003 	cmp	r3, #3                                        <== NOT EXECUTED
3000cb9c:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
      }                                                               
      break;                                                          
                                                                      
    #if defined(RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT)          
      case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                       
	if ( --executing->cpu_time_budget == 0 )                             
3000cba0:	e5943078 	ldr	r3, [r4, #120]	; 0x78                         <== NOT EXECUTED
3000cba4:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
3000cba8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000cbac:	e5843078 	str	r3, [r4, #120]	; 0x78                         <== NOT EXECUTED
3000cbb0:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
	  (*executing->budget_callout)( executing );                         
3000cbb4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cbb8:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000cbbc:	e594f080 	ldr	pc, [r4, #128]	; 0x80                         <== NOT EXECUTED
3000cbc0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
    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 ) {               
3000cbc4:	e5943078 	ldr	r3, [r4, #120]	; 0x78                         <== NOT EXECUTED
3000cbc8:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
3000cbcc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000cbd0:	e5843078 	str	r3, [r4, #120]	; 0x78                         <== NOT EXECUTED
3000cbd4:	c8bd8010 	popgt	{r4, pc}                                    <== NOT EXECUTED
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
3000cbd8:	e59f3018 	ldr	r3, [pc, #24]	; 3000cbf8 <_Thread_Tickle_timeslice+0x98><== NOT EXECUTED
3000cbdc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000cbe0:	e593f00c 	ldr	pc, [r3, #12]                                 <== NOT EXECUTED
         *  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;     
3000cbe4:	e59f3010 	ldr	r3, [pc, #16]	; 3000cbfc <_Thread_Tickle_timeslice+0x9c><== NOT EXECUTED
3000cbe8:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
3000cbec:	e5843078 	str	r3, [r4, #120]	; 0x78                         <== NOT EXECUTED
3000cbf0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000bc34 <_Thread_blocking_operation_Cancel>: Thread_blocking_operation_States sync_state __attribute__((unused)), #endif Thread_Control *the_thread, ISR_Level level ) {
3000bc34:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
3000bc38:	e5913050 	ldr	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
  Thread_blocking_operation_States  sync_state __attribute__((unused)),
#endif                                                                
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
3000bc3c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
3000bc40:	e3530002 	cmp	r3, #2                                        <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
3000bc44:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000bc48:	e5813044 	str	r3, [r1, #68]	; 0x44                          <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If the sync state is timed out, this is very likely not needed. 
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
3000bc4c:	0a000005 	beq	3000bc68 <_Thread_blocking_operation_Cancel+0x34><== NOT EXECUTED
3000bc50:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
3000bc54:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000bc58:	e59f1028 	ldr	r1, [pc, #40]	; 3000bc88 <_Thread_blocking_operation_Cancel+0x54><== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
3000bc5c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000bc60:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
3000bc64:	ea000048 	b	3000bd8c <_Thread_Clear_state>                  <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
3000bc68:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
3000bc6c:	e5813050 	str	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
3000bc70:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
   *  But better safe than sorry when it comes to critical sections.  
   */                                                                 
  if ( _Watchdog_Is_active( &the_thread->Timer ) ) {                  
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    (void) _Watchdog_Remove( &the_thread->Timer );                    
3000bc74:	e2810048 	add	r0, r1, #72	; 0x48                            <== NOT EXECUTED
3000bc78:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
3000bc7c:	eb000529 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
3000bc80:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
3000bc84:	eafffff2 	b	3000bc54 <_Thread_blocking_operation_Cancel+0x20><== NOT EXECUTED
                                                                      

30010258 <_Thread_queue_Dequeue_fifo>: */ Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue ) {
30010258:	e92d4030 	push	{r4, r5, lr}                                 
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001025c:	e10f2000 	mrs	r2, CPSR                                      
30010260:	e3823080 	orr	r3, r2, #128	; 0x80                           
30010264:	e129f003 	msr	CPSR_fc, r3                                   
    return the_thread;                                                
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  return NULL;                                                        
}                                                                     
30010268:	e1a03000 	mov	r3, r0                                        
3001026c:	e4934004 	ldr	r4, [r3], #4                                  
{                                                                     
  ISR_Level              level;                                       
  Thread_Control *the_thread;                                         
                                                                      
  _ISR_Disable( level );                                              
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) {         
30010270:	e1540003 	cmp	r4, r3                                        
30010274:	0a000018 	beq	300102dc <_Thread_queue_Dequeue_fifo+0x84>    
                                                                      
    the_thread = (Thread_Control *)                                   
       _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo );
                                                                      
    the_thread->Wait.queue = NULL;                                    
    if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {               
30010278:	e5941050 	ldr	r1, [r4, #80]	; 0x50                          
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
3001027c:	e5943000 	ldr	r3, [r4]                                      
30010280:	e3510002 	cmp	r1, #2                                        
                                                                      
  head->next = new_first;                                             
30010284:	e5803000 	str	r3, [r0]                                      
  new_first->previous = head;                                         
30010288:	e5830004 	str	r0, [r3, #4]                                  
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) {         
                                                                      
    the_thread = (Thread_Control *)                                   
       _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo );
                                                                      
    the_thread->Wait.queue = NULL;                                    
3001028c:	e3a03000 	mov	r3, #0                                        
  Thread_Control *the_thread;                                         
                                                                      
  _ISR_Disable( level );                                              
  if ( !_Chain_Is_empty( &the_thread_queue->Queues.Fifo ) ) {         
                                                                      
    the_thread = (Thread_Control *)                                   
30010290:	e1a05004 	mov	r5, r4                                        
       _Chain_Get_first_unprotected( &the_thread_queue->Queues.Fifo );
                                                                      
    the_thread->Wait.queue = NULL;                                    
30010294:	e5843044 	str	r3, [r4, #68]	; 0x44                          
    if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {               
30010298:	0a000005 	beq	300102b4 <_Thread_queue_Dequeue_fifo+0x5c>    
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001029c:	e129f002 	msr	CPSR_fc, r2                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
300102a0:	e59f1040 	ldr	r1, [pc, #64]	; 300102e8 <_Thread_queue_Dequeue_fifo+0x90>
300102a4:	e1a00004 	mov	r0, r4                                        
300102a8:	ebffeeb7 	bl	3000bd8c <_Thread_Clear_state>                 
    return the_thread;                                                
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  return NULL;                                                        
}                                                                     
300102ac:	e1a00005 	mov	r0, r5                                        
300102b0:	e8bd8030 	pop	{r4, r5, pc}                                  
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
300102b4:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
300102b8:	e5843050 	str	r3, [r4, #80]	; 0x50                          <== NOT EXECUTED
300102bc:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
      _Thread_Unblock( the_thread );                                  
    } else {                                                          
      _Watchdog_Deactivate( &the_thread->Timer );                     
      _ISR_Enable( level );                                           
      (void) _Watchdog_Remove( &the_thread->Timer );                  
300102c0:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
300102c4:	ebfff397 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
300102c8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300102cc:	e59f1014 	ldr	r1, [pc, #20]	; 300102e8 <_Thread_queue_Dequeue_fifo+0x90><== NOT EXECUTED
300102d0:	ebffeead 	bl	3000bd8c <_Thread_Clear_state>                 <== NOT EXECUTED
    return the_thread;                                                
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  return NULL;                                                        
}                                                                     
300102d4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
300102d8:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
300102dc:	e129f002 	msr	CPSR_fc, r2                                   
                                                                      
    return the_thread;                                                
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
  return NULL;                                                        
300102e0:	e3a05000 	mov	r5, #0                                        
300102e4:	eafffff0 	b	300102ac <_Thread_queue_Dequeue_fifo+0x54>      
                                                                      

3000c4ac <_Thread_queue_Dequeue_priority>: */ Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue ) {
3000c4ac:	e92d4030 	push	{r4, r5, lr}                                 
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000c4b0:	e10fc000 	mrs	ip, CPSR                                      
3000c4b4:	e38c3080 	orr	r3, ip, #128	; 0x80                           
3000c4b8:	e129f003 	msr	CPSR_fc, r3                                   
  Chain_Node     *new_second_node;                                    
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
3000c4bc:	e3a02000 	mov	r2, #0                                        
  for( index=0 ;                                                      
3000c4c0:	e1a03002 	mov	r3, r2                                        
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3000c4c4:	e0831083 	add	r1, r3, r3, lsl #1                            
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
3000c4c8:	e7904002 	ldr	r4, [r0, r2]                                  
3000c4cc:	e0801101 	add	r1, r0, r1, lsl #2                            
3000c4d0:	e2811004 	add	r1, r1, #4                                    
                                                                      
  _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 ] ) ) {
3000c4d4:	e1540001 	cmp	r4, r1                                        
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
3000c4d8:	e2833001 	add	r3, r3, #1                                    
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) ) {
3000c4dc:	1a000006 	bne	3000c4fc <_Thread_queue_Dequeue_priority+0x50>
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
3000c4e0:	e3530004 	cmp	r3, #4                                        
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
3000c4e4:	e282200c 	add	r2, r2, #12                                   
  Chain_Node     *last_node;                                          
  Chain_Node     *next_node;                                          
  Chain_Node     *previous_node;                                      
                                                                      
  _ISR_Disable( level );                                              
  for( index=0 ;                                                      
3000c4e8:	1afffff5 	bne	3000c4c4 <_Thread_queue_Dequeue_priority+0x18>
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000c4ec:	e129f00c 	msr	CPSR_fc, ip                                   
                                                                      
  /*                                                                  
   * We did not find a thread to unblock.                             
   */                                                                 
  _ISR_Enable( level );                                               
  return NULL;                                                        
3000c4f0:	e3a05000 	mov	r5, #0                                        
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
3000c4f4:	e1a00005 	mov	r0, r5                                        
3000c4f8:	e8bd8030 	pop	{r4, r5, pc}                                  
3000c4fc:	e5943038 	ldr	r3, [r4, #56]	; 0x38                          
3000c500:	e284203c 	add	r2, r4, #60	; 0x3c                            
  new_first_node   = _Chain_First( &the_thread->Wait.Block2n );       
  new_first_thread = (Thread_Control *) new_first_node;               
  next_node        = the_thread->Object.Node.next;                    
  previous_node    = the_thread->Object.Node.previous;                
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
3000c504:	e1530002 	cmp	r3, r2                                        
   */                                                                 
  _ISR_Enable( level );                                               
  return NULL;                                                        
                                                                      
dequeue:                                                              
  the_thread->Wait.queue = NULL;                                      
3000c508:	e3a02000 	mov	r2, #0                                        
3000c50c:	e5842044 	str	r2, [r4, #68]	; 0x44                          
  _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(                   
3000c510:	e1a05004 	mov	r5, r4                                        
                                                                      
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;                    
3000c514:	e5942000 	ldr	r2, [r4]                                      
  previous_node    = the_thread->Object.Node.previous;                
3000c518:	e5941004 	ldr	r1, [r4, #4]                                  
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
3000c51c:	0a000020 	beq	3000c5a4 <_Thread_queue_Dequeue_priority+0xf8>
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
  return( the_thread );                                               
}                                                                     
3000c520:	e5940040 	ldr	r0, [r4, #64]	; 0x40                          <== NOT EXECUTED
  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;                           
3000c524:	e593e000 	ldr	lr, [r3]                                      <== NOT EXECUTED
                                                                      
    previous_node->next      = new_first_node;                        
    next_node->previous      = new_first_node;                        
3000c528:	e5823004 	str	r3, [r2, #4]                                  <== NOT EXECUTED
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
    last_node       = _Chain_Last( &the_thread->Wait.Block2n );       
    new_second_node = new_first_node->next;                           
                                                                      
    previous_node->next      = new_first_node;                        
3000c52c:	e5813000 	str	r3, [r1]                                      <== NOT EXECUTED
    next_node->previous      = new_first_node;                        
    new_first_node->next     = next_node;                             
    new_first_node->previous = previous_node;                         
3000c530:	e5831004 	str	r1, [r3, #4]                                  <== NOT EXECUTED
    last_node       = _Chain_Last( &the_thread->Wait.Block2n );       
    new_second_node = new_first_node->next;                           
                                                                      
    previous_node->next      = new_first_node;                        
    next_node->previous      = new_first_node;                        
    new_first_node->next     = next_node;                             
3000c534:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
    new_first_node->previous = previous_node;                         
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
3000c538:	e5941038 	ldr	r1, [r4, #56]	; 0x38                          <== NOT EXECUTED
3000c53c:	e5942040 	ldr	r2, [r4, #64]	; 0x40                          <== NOT EXECUTED
3000c540:	e1510002 	cmp	r1, r2                                        <== NOT EXECUTED
3000c544:	0a000005 	beq	3000c560 <_Thread_queue_Dequeue_priority+0xb4><== NOT EXECUTED
                                                /* > two threads on 2-n */
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
3000c548:	e2831038 	add	r1, r3, #56	; 0x38                            <== NOT EXECUTED
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
3000c54c:	e283203c 	add	r2, r3, #60	; 0x3c                            <== NOT EXECUTED
                                                                      
      new_second_node->previous = head;                               
3000c550:	e58e1004 	str	r1, [lr, #4]                                  <== NOT EXECUTED
      head->next = new_second_node;                                   
3000c554:	e583e038 	str	lr, [r3, #56]	; 0x38                          <== NOT EXECUTED
      tail->previous = last_node;                                     
3000c558:	e5830040 	str	r0, [r3, #64]	; 0x40                          <== NOT EXECUTED
      last_node->next = tail;                                         
3000c55c:	e5802000 	str	r2, [r0]                                      <== NOT EXECUTED
  } else {                                                            
    previous_node->next = next_node;                                  
    next_node->previous = previous_node;                              
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
3000c560:	e5943050 	ldr	r3, [r4, #80]	; 0x50                          
3000c564:	e3530002 	cmp	r3, #2                                        
3000c568:	0a000004 	beq	3000c580 <_Thread_queue_Dequeue_priority+0xd4>
3000c56c:	e129f00c 	msr	CPSR_fc, ip                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
3000c570:	e59f1038 	ldr	r1, [pc, #56]	; 3000c5b0 <_Thread_queue_Dequeue_priority+0x104>
3000c574:	e1a00004 	mov	r0, r4                                        
3000c578:	ebfffe03 	bl	3000bd8c <_Thread_Clear_state>                 
3000c57c:	eaffffdc 	b	3000c4f4 <_Thread_queue_Dequeue_priority+0x48>  
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
3000c580:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
3000c584:	e5843050 	str	r3, [r4, #80]	; 0x50                          <== NOT EXECUTED
3000c588:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
    _Thread_Unblock( the_thread );                                    
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    (void) _Watchdog_Remove( &the_thread->Timer );                    
3000c58c:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
3000c590:	eb0002e4 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
3000c594:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c598:	e59f1010 	ldr	r1, [pc, #16]	; 3000c5b0 <_Thread_queue_Dequeue_priority+0x104><== NOT EXECUTED
3000c59c:	ebfffdfa 	bl	3000bd8c <_Thread_Clear_state>                 <== NOT EXECUTED
3000c5a0:	eaffffd3 	b	3000c4f4 <_Thread_queue_Dequeue_priority+0x48>  <== NOT EXECUTED
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
3000c5a4:	e5812000 	str	r2, [r1]                                      
    next_node->previous = previous_node;                              
3000c5a8:	e5821004 	str	r1, [r2, #4]                                  
3000c5ac:	eaffffeb 	b	3000c560 <_Thread_queue_Dequeue_priority+0xb4>  
                                                                      

3000c660 <_Thread_queue_Enqueue_priority>: Priority_Control priority; States_Control block_state; _Chain_Initialize_empty( &the_thread->Wait.Block2n ); priority = the_thread->current_priority;
3000c660:	e5913014 	ldr	r3, [r1, #20]                                 
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
3000c664:	e92d05f0 	push	{r4, r5, r6, r7, r8, sl}                     
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 );                        
3000c668:	e281403c 	add	r4, r1, #60	; 0x3c                            
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
3000c66c:	e281c038 	add	ip, r1, #56	; 0x38                            
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3000c670:	e5814038 	str	r4, [r1, #56]	; 0x38                          
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
  block_state  = the_thread_queue->state;                             
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
3000c674:	e3130020 	tst	r3, #32                                       
  head->previous = NULL;                                              
3000c678:	e3a04000 	mov	r4, #0                                        
3000c67c:	e581403c 	str	r4, [r1, #60]	; 0x3c                          
  tail->previous = head;                                              
3000c680:	e581c040 	str	ip, [r1, #64]	; 0x40                          
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (         
  Priority_Control the_priority                                       
)                                                                     
{                                                                     
  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);      
3000c684:	e1a07323 	lsr	r7, r3, #6                                    
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
  header_index = _Thread_queue_Header_number( priority );             
  header       = &the_thread_queue->Queues.Priority[ header_index ];  
  block_state  = the_thread_queue->state;                             
3000c688:	e5905038 	ldr	r5, [r0, #56]	; 0x38                          
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
3000c68c:	1a00001e 	bne	3000c70c <_Thread_queue_Enqueue_priority+0xac>
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
3000c690:	e0877087 	add	r7, r7, r7, lsl #1                            
3000c694:	e1a0c107 	lsl	ip, r7, #2                                    
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
3000c698:	e28c7004 	add	r7, ip, #4                                    
3000c69c:	e080a00c 	add	sl, r0, ip                                    
3000c6a0:	e0807007 	add	r7, r0, r7                                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000c6a4:	e10f8000 	mrs	r8, CPSR                                      
3000c6a8:	e388c080 	orr	ip, r8, #128	; 0x80                           
3000c6ac:	e129f00c 	msr	CPSR_fc, ip                                   
3000c6b0:	e59ac000 	ldr	ip, [sl]                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
3000c6b4:	e15c0007 	cmp	ip, r7                                        
3000c6b8:	1a000009 	bne	3000c6e4 <_Thread_queue_Enqueue_priority+0x84>
3000c6bc:	ea000051 	b	3000c808 <_Thread_queue_Enqueue_priority+0x1a8> 
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000c6c0:	e10f6000 	mrs	r6, CPSR                                      
3000c6c4:	e129f008 	msr	CPSR_fc, r8                                   
3000c6c8:	e129f006 	msr	CPSR_fc, r6                                   
RTEMS_INLINE_ROUTINE bool _States_Are_set (                           
  States_Control the_states,                                          
  States_Control mask                                                 
)                                                                     
{                                                                     
   return ( (the_states & mask) != STATES_READY);                     
3000c6cc:	e59c6010 	ldr	r6, [ip, #16]                                 
    search_priority = search_thread->current_priority;                
    if ( priority <= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
3000c6d0:	e1150006 	tst	r5, r6                                        
3000c6d4:	0a000034 	beq	3000c7ac <_Thread_queue_Enqueue_priority+0x14c>
      _ISR_Enable( level );                                           
      goto restart_forward_search;                                    
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
3000c6d8:	e59cc000 	ldr	ip, [ip]                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_First( header );          
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
3000c6dc:	e15c0007 	cmp	ip, r7                                        
3000c6e0:	0a000002 	beq	3000c6f0 <_Thread_queue_Enqueue_priority+0x90>
    search_priority = search_thread->current_priority;                
3000c6e4:	e59c4014 	ldr	r4, [ip, #20]                                 
    if ( priority <= search_priority )                                
3000c6e8:	e1530004 	cmp	r3, r4                                        
3000c6ec:	8afffff3 	bhi	3000c6c0 <_Thread_queue_Enqueue_priority+0x60>
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
3000c6f0:	e5905030 	ldr	r5, [r0, #48]	; 0x30                          
3000c6f4:	e3550001 	cmp	r5, #1                                        
3000c6f8:	0a00002d 	beq	3000c7b4 <_Thread_queue_Enqueue_priority+0x154>
   *  For example, the blocking thread could have been given          
   *  the mutex by an ISR or timed out.                               
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
3000c6fc:	e5828000 	str	r8, [r2]                                      <== NOT EXECUTED
  return the_thread_queue->sync_state;                                
}                                                                     
3000c700:	e1a00005 	mov	r0, r5                                        
3000c704:	e8bd05f0 	pop	{r4, r5, r6, r7, r8, sl}                      
3000c708:	e12fff1e 	bx	lr                                             
3000c70c:	e0877087 	add	r7, r7, r7, lsl #1                            
3000c710:	e59fa0f8 	ldr	sl, [pc, #248]	; 3000c810 <_Thread_queue_Enqueue_priority+0x1b0>
3000c714:	e0807107 	add	r7, r0, r7, lsl #2                            
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
3000c718:	e5da4000 	ldrb	r4, [sl]                                     
3000c71c:	e2844001 	add	r4, r4, #1                                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000c720:	e10f8000 	mrs	r8, CPSR                                      
3000c724:	e388c080 	orr	ip, r8, #128	; 0x80                           
3000c728:	e129f00c 	msr	CPSR_fc, ip                                   
   *                                                                  
   *  WARNING! Returning with interrupts disabled!                    
   */                                                                 
  *level_p = level;                                                   
  return the_thread_queue->sync_state;                                
}                                                                     
3000c72c:	e597c008 	ldr	ip, [r7, #8]                                  
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_Last( header );           
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
3000c730:	e15c0007 	cmp	ip, r7                                        
3000c734:	1a000009 	bne	3000c760 <_Thread_queue_Enqueue_priority+0x100>
3000c738:	ea00000b 	b	3000c76c <_Thread_queue_Enqueue_priority+0x10c> 
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000c73c:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3000c740:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
3000c744:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
3000c748:	e59c6010 	ldr	r6, [ip, #16]                                 <== NOT EXECUTED
    search_priority = search_thread->current_priority;                
    if ( priority >= search_priority )                                
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
3000c74c:	e1150006 	tst	r5, r6                                        <== NOT EXECUTED
3000c750:	0a000013 	beq	3000c7a4 <_Thread_queue_Enqueue_priority+0x144><== NOT EXECUTED
      _ISR_Enable( level );                                           
      goto restart_reverse_search;                                    
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
3000c754:	e59cc004 	ldr	ip, [ip, #4]                                  <== NOT EXECUTED
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) _Chain_Last( header );           
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
3000c758:	e15c0007 	cmp	ip, r7                                        <== NOT EXECUTED
3000c75c:	0a000002 	beq	3000c76c <_Thread_queue_Enqueue_priority+0x10c><== NOT EXECUTED
    search_priority = search_thread->current_priority;                
3000c760:	e59c4014 	ldr	r4, [ip, #20]                                 
    if ( priority >= search_priority )                                
3000c764:	e1530004 	cmp	r3, r4                                        
3000c768:	3afffff3 	bcc	3000c73c <_Thread_queue_Enqueue_priority+0xdc>
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
3000c76c:	e5905030 	ldr	r5, [r0, #48]	; 0x30                          
3000c770:	e3550001 	cmp	r5, #1                                        
3000c774:	1affffe0 	bne	3000c6fc <_Thread_queue_Enqueue_priority+0x9c>
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
                                                                      
  if ( priority == search_priority )                                  
3000c778:	e1530004 	cmp	r3, r4                                        
                                                                      
  if ( the_thread_queue->sync_state !=                                
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
3000c77c:	e3a03000 	mov	r3, #0                                        
3000c780:	e5803030 	str	r3, [r0, #48]	; 0x30                          
                                                                      
  if ( priority == search_priority )                                  
3000c784:	0a000016 	beq	3000c7e4 <_Thread_queue_Enqueue_priority+0x184>
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
3000c788:	e59c3000 	ldr	r3, [ip]                                      
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
3000c78c:	e8811008 	stm	r1, {r3, ip}                                  
  search_node->next       = the_node;                                 
  next_node->previous    = the_node;                                  
3000c790:	e5831004 	str	r1, [r3, #4]                                  
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
3000c794:	e58c1000 	str	r1, [ip]                                      
  next_node->previous    = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
3000c798:	e5810044 	str	r0, [r1, #68]	; 0x44                          
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000c79c:	e129f008 	msr	CPSR_fc, r8                                   
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
3000c7a0:	eaffffd6 	b	3000c700 <_Thread_queue_Enqueue_priority+0xa0>  
3000c7a4:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
3000c7a8:	eaffffda 	b	3000c718 <_Thread_queue_Enqueue_priority+0xb8>  <== NOT EXECUTED
3000c7ac:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
3000c7b0:	eaffffbb 	b	3000c6a4 <_Thread_queue_Enqueue_priority+0x44>  <== NOT EXECUTED
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
                                                                      
  if ( priority == search_priority )                                  
3000c7b4:	e1530004 	cmp	r3, r4                                        
                                                                      
  if ( the_thread_queue->sync_state !=                                
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
3000c7b8:	e3a03000 	mov	r3, #0                                        
3000c7bc:	e5803030 	str	r3, [r0, #48]	; 0x30                          
                                                                      
  if ( priority == search_priority )                                  
3000c7c0:	0a000007 	beq	3000c7e4 <_Thread_queue_Enqueue_priority+0x184>
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
3000c7c4:	e59c3004 	ldr	r3, [ip, #4]                                  
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
3000c7c8:	e581c000 	str	ip, [r1]                                      
  the_node->previous     = previous_node;                             
3000c7cc:	e5813004 	str	r3, [r1, #4]                                  
  previous_node->next    = the_node;                                  
3000c7d0:	e5831000 	str	r1, [r3]                                      
  search_node->previous  = the_node;                                  
3000c7d4:	e58c1004 	str	r1, [ip, #4]                                  
  the_thread->Wait.queue = the_thread_queue;                          
3000c7d8:	e5810044 	str	r0, [r1, #68]	; 0x44                          
3000c7dc:	e129f008 	msr	CPSR_fc, r8                                   
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
3000c7e0:	eaffffc6 	b	3000c700 <_Thread_queue_Enqueue_priority+0xa0>  
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
  previous_node = search_node->previous;                              
3000c7e4:	e59c3040 	ldr	r3, [ip, #64]	; 0x40                          <== NOT EXECUTED
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
equal_priority:               /* add at end of priority group */      
  search_node   = _Chain_Tail( &search_thread->Wait.Block2n );        
3000c7e8:	e28c203c 	add	r2, ip, #60	; 0x3c                            <== NOT EXECUTED
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
3000c7ec:	e881000c 	stm	r1, {r2, r3}                                  <== NOT EXECUTED
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
3000c7f0:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
  search_node->previous  = the_node;                                  
3000c7f4:	e58c1040 	str	r1, [ip, #64]	; 0x40                          <== NOT EXECUTED
  the_thread->Wait.queue = the_thread_queue;                          
3000c7f8:	e5810044 	str	r0, [r1, #68]	; 0x44                          <== NOT EXECUTED
3000c7fc:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
3000c800:	e3a05001 	mov	r5, #1                                        <== NOT EXECUTED
3000c804:	eaffffbd 	b	3000c700 <_Thread_queue_Enqueue_priority+0xa0>  <== NOT EXECUTED
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
3000c808:	e3e04000 	mvn	r4, #0                                        
3000c80c:	eaffffb7 	b	3000c6f0 <_Thread_queue_Enqueue_priority+0x90>  
                                                                      

30011f28 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue __attribute__((unused)), Thread_Control *the_thread ) {
30011f28:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
30011f2c:	e24dd004 	sub	sp, sp, #4                                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30011f30:	e10f0000 	mrs	r0, CPSR                                      
30011f34:	e3803080 	orr	r3, r0, #128	; 0x80                           
30011f38:	e129f003 	msr	CPSR_fc, r3                                   
30011f3c:	e59f3070 	ldr	r3, [pc, #112]	; 30011fb4 <_Thread_queue_Extract_fifo+0x8c>
30011f40:	e5912010 	ldr	r2, [r1, #16]                                 
30011f44:	e0023003 	and	r3, r2, r3                                    
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
30011f48:	e3530000 	cmp	r3, #0                                        
30011f4c:	0a00000d 	beq	30011f88 <_Thread_queue_Extract_fifo+0x60>    
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
30011f50:	e591c050 	ldr	ip, [r1, #80]	; 0x50                          
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
30011f54:	e891000c 	ldm	r1, {r2, r3}                                  
30011f58:	e35c0002 	cmp	ip, #2                                        
  next->previous = previous;                                          
30011f5c:	e5823004 	str	r3, [r2, #4]                                  
  previous->next = next;                                              
30011f60:	e5832000 	str	r2, [r3]                                      
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
30011f64:	e3a03000 	mov	r3, #0                                        
30011f68:	e5813044 	str	r3, [r1, #68]	; 0x44                          
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
30011f6c:	0a000008 	beq	30011f94 <_Thread_queue_Extract_fifo+0x6c>    
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30011f70:	e129f000 	msr	CPSR_fc, r0                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
30011f74:	e1a00001 	mov	r0, r1                                        
30011f78:	e59f1038 	ldr	r1, [pc, #56]	; 30011fb8 <_Thread_queue_Extract_fifo+0x90>
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
30011f7c:	e28dd004 	add	sp, sp, #4                                    
30011f80:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    
30011f84:	eaffe780 	b	3000bd8c <_Thread_Clear_state>                  
30011f88:	e129f000 	msr	CPSR_fc, r0                                   
30011f8c:	e28dd004 	add	sp, sp, #4                                    
30011f90:	e8bd8000 	pop	{pc}                                          
30011f94:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30011f98:	e5813050 	str	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
30011f9c:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    _ISR_Enable( level );                                             
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    (void) _Watchdog_Remove( &the_thread->Timer );                    
30011fa0:	e2810048 	add	r0, r1, #72	; 0x48                            <== NOT EXECUTED
30011fa4:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
30011fa8:	ebffec5e 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
30011fac:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
30011fb0:	eaffffef 	b	30011f74 <_Thread_queue_Extract_fifo+0x4c>      <== NOT EXECUTED
                                                                      

3001035c <_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 ) {
3001035c:	e92d4070 	push	{r4, r5, r6, lr}                             
30010360:	e20220ff 	and	r2, r2, #255	; 0xff                           
30010364:	e24dd004 	sub	sp, sp, #4                                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30010368:	e10fc000 	mrs	ip, CPSR                                      
3001036c:	e38c3080 	orr	r3, ip, #128	; 0x80                           
30010370:	e129f003 	msr	CPSR_fc, r3                                   
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_waiting_on_thread_queue (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_WAITING_ON_THREAD_QUEUE);              
30010374:	e59f30c4 	ldr	r3, [pc, #196]	; 30010440 <_Thread_queue_Extract_priority_helper+0xe4>
30010378:	e5910010 	ldr	r0, [r1, #16]                                 
3001037c:	e0003003 	and	r3, r0, r3                                    
  Chain_Node     *new_second_node;                                    
  Chain_Node     *last_node;                                          
                                                                      
  the_node = (Chain_Node *) the_thread;                               
  _ISR_Disable( level );                                              
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
30010380:	e3530000 	cmp	r3, #0                                        
30010384:	0a000023 	beq	30010418 <_Thread_queue_Extract_priority_helper+0xbc>
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
30010388:	e5913038 	ldr	r3, [r1, #56]	; 0x38                          <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3001038c:	e281003c 	add	r0, r1, #60	; 0x3c                            <== NOT EXECUTED
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
30010390:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
  /*                                                                  
   *  The thread was actually waiting on a thread queue so let's remove it.
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
30010394:	e8910011 	ldm	r1, {r0, r4}                                  <== NOT EXECUTED
      head->next = new_second_node;                                   
      tail->previous = last_node;                                     
      last_node->next = tail;                                         
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
30010398:	05840000 	streq	r0, [r4]                                    <== NOT EXECUTED
    next_node->previous = previous_node;                              
3001039c:	05804004 	streq	r4, [r0, #4]                                <== NOT EXECUTED
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
300103a0:	0a00000e 	beq	300103e0 <_Thread_queue_Extract_priority_helper+0x84><== NOT EXECUTED
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
300103a4:	e5915040 	ldr	r5, [r1, #64]	; 0x40                          <== NOT EXECUTED
                                                                      
  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;                          
300103a8:	e5936000 	ldr	r6, [r3]                                      <== NOT EXECUTED
                                                                      
    previous_node->next      = new_first_node;                        
    next_node->previous      = new_first_node;                        
300103ac:	e5803004 	str	r3, [r0, #4]                                  <== NOT EXECUTED
    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;                          
                                                                      
    previous_node->next      = new_first_node;                        
300103b0:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
    next_node->previous      = new_first_node;                        
    new_first_node->next     = next_node;                             
    new_first_node->previous = previous_node;                         
300103b4:	e8830011 	stm	r3, {r0, r4}                                  <== NOT EXECUTED
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
300103b8:	e5914038 	ldr	r4, [r1, #56]	; 0x38                          <== NOT EXECUTED
300103bc:	e5910040 	ldr	r0, [r1, #64]	; 0x40                          <== NOT EXECUTED
300103c0:	e1540000 	cmp	r4, r0                                        <== NOT EXECUTED
300103c4:	0a000005 	beq	300103e0 <_Thread_queue_Extract_priority_helper+0x84><== NOT EXECUTED
                                        /* > two threads on 2-n */    
      head = _Chain_Head( &new_first_thread->Wait.Block2n );          
300103c8:	e2834038 	add	r4, r3, #56	; 0x38                            <== NOT EXECUTED
      tail = _Chain_Tail( &new_first_thread->Wait.Block2n );          
300103cc:	e283003c 	add	r0, r3, #60	; 0x3c                            <== NOT EXECUTED
                                                                      
      new_second_node->previous = head;                               
300103d0:	e5864004 	str	r4, [r6, #4]                                  <== NOT EXECUTED
      head->next = new_second_node;                                   
300103d4:	e5836038 	str	r6, [r3, #56]	; 0x38                          <== NOT EXECUTED
      tail->previous = last_node;                                     
300103d8:	e5835040 	str	r5, [r3, #64]	; 0x40                          <== NOT EXECUTED
      last_node->next = tail;                                         
300103dc:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If we are not supposed to touch timers or the thread's state, return.
   */                                                                 
                                                                      
  if ( requeuing ) {                                                  
300103e0:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
300103e4:	1a000008 	bne	3001040c <_Thread_queue_Extract_priority_helper+0xb0><== NOT EXECUTED
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
300103e8:	e5913050 	ldr	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
300103ec:	e3530002 	cmp	r3, #2                                        <== NOT EXECUTED
300103f0:	0a00000a 	beq	30010420 <_Thread_queue_Extract_priority_helper+0xc4><== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
300103f4:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
300103f8:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
300103fc:	e59f1040 	ldr	r1, [pc, #64]	; 30010444 <_Thread_queue_Extract_priority_helper+0xe8><== NOT EXECUTED
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
30010400:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30010404:	e8bd4070 	pop	{r4, r5, r6, lr}                              <== NOT EXECUTED
30010408:	eaffee5f 	b	3000bd8c <_Thread_Clear_state>                  <== NOT EXECUTED
3001040c:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
30010410:	e28dd004 	add	sp, sp, #4                                    
30010414:	e8bd8070 	pop	{r4, r5, r6, pc}                              
30010418:	e129f00c 	msr	CPSR_fc, ip                                   
3001041c:	eafffffb 	b	30010410 <_Thread_queue_Extract_priority_helper+0xb4>
30010420:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30010424:	e5813050 	str	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
30010428:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    _ISR_Enable( level );                                             
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    (void) _Watchdog_Remove( &the_thread->Timer );                    
3001042c:	e2810048 	add	r0, r1, #72	; 0x48                            <== NOT EXECUTED
30010430:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
30010434:	ebfff33b 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
30010438:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
3001043c:	eaffffed 	b	300103f8 <_Thread_queue_Extract_priority_helper+0x9c><== NOT EXECUTED
                                                                      

3000eaf8 <_Thread_queue_First_priority>: */ Thread_Control *_Thread_queue_First_priority ( Thread_queue_Control *the_thread_queue ) {
3000eaf8:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
  uint32_t   index;                                                   
                                                                      
  for( index=0 ;                                                      
3000eafc:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3000eb00:	e082c082 	add	ip, r2, r2, lsl #1                            <== NOT EXECUTED
      return (Thread_Control *) _Chain_First(                         
        &the_thread_queue->Queues.Priority[ index ]                   
      );                                                              
  }                                                                   
  return NULL;                                                        
}                                                                     
3000eb04:	e7901003 	ldr	r1, [r0, r3]                                  <== NOT EXECUTED
3000eb08:	e080c10c 	add	ip, r0, ip, lsl #2                            <== NOT EXECUTED
3000eb0c:	e28cc004 	add	ip, ip, #4                                    <== NOT EXECUTED
  uint32_t   index;                                                   
                                                                      
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) )
3000eb10:	e151000c 	cmp	r1, ip                                        <== NOT EXECUTED
{                                                                     
  uint32_t   index;                                                   
                                                                      
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
3000eb14:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) )
3000eb18:	1a000004 	bne	3000eb30 <_Thread_queue_First_priority+0x38>  <== NOT EXECUTED
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  uint32_t   index;                                                   
                                                                      
  for( index=0 ;                                                      
3000eb1c:	e3520004 	cmp	r2, #4                                        <== NOT EXECUTED
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
3000eb20:	e283300c 	add	r3, r3, #12                                   <== NOT EXECUTED
  Thread_queue_Control *the_thread_queue                              
)                                                                     
{                                                                     
  uint32_t   index;                                                   
                                                                      
  for( index=0 ;                                                      
3000eb24:	1afffff5 	bne	3000eb00 <_Thread_queue_First_priority+0x8>   <== NOT EXECUTED
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) )
      return (Thread_Control *) _Chain_First(                         
        &the_thread_queue->Queues.Priority[ index ]                   
      );                                                              
  }                                                                   
  return NULL;                                                        
3000eb28:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000eb2c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      
  for( index=0 ;                                                      
       index < TASK_QUEUE_DATA_NUMBER_OF_PRIORITY_HEADERS ;           
       index++ ) {                                                    
    if ( !_Chain_Is_empty( &the_thread_queue->Queues.Priority[ index ] ) )
      return (Thread_Control *) _Chain_First(                         
3000eb30:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000eb34:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30010448 <_Thread_queue_Process_timeout>: #include <rtems/score/tqdata.h> void _Thread_queue_Process_timeout( Thread_Control *the_thread ) {
30010448:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;    
3001044c:	e5900044 	ldr	r0, [r0, #68]	; 0x44                          <== NOT EXECUTED
   *  If it is not satisfied, then it is "nothing happened" and       
   *  this is the "timeout" transition.  After a request is satisfied,
   *  a timeout is not allowed to occur.                              
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
30010450:	e5903030 	ldr	r3, [r0, #48]	; 0x30                          <== NOT EXECUTED
30010454:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30010458:	0a000003 	beq	3001046c <_Thread_queue_Process_timeout+0x24> <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
3001045c:	e59f202c 	ldr	r2, [pc, #44]	; 30010490 <_Thread_queue_Process_timeout+0x48><== NOT EXECUTED
30010460:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
30010464:	e1510002 	cmp	r1, r2                                        <== NOT EXECUTED
30010468:	0a000002 	beq	30010478 <_Thread_queue_Process_timeout+0x30> <== NOT EXECUTED
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
    }                                                                 
  } else {                                                            
    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
3001046c:	e590303c 	ldr	r3, [r0, #60]	; 0x3c                          <== NOT EXECUTED
30010470:	e5813034 	str	r3, [r1, #52]	; 0x34                          <== NOT EXECUTED
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
30010474:	eaffffb2 	b	30010344 <_Thread_queue_Extract>                <== NOT EXECUTED
   *  a timeout is not allowed to occur.                              
   */                                                                 
                                                                      
  if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SYNCHRONIZED &&
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
30010478:	e3530003 	cmp	r3, #3                                        <== NOT EXECUTED
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
3001047c:	1590303c 	ldrne	r3, [r0, #60]	; 0x3c                        <== NOT EXECUTED
30010480:	15813034 	strne	r3, [r1, #52]	; 0x34                        <== NOT EXECUTED
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
30010484:	13a03002 	movne	r3, #2                                      <== NOT EXECUTED
30010488:	15803030 	strne	r3, [r0, #48]	; 0x30                        <== NOT EXECUTED
3001048c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000c8d8 <_Thread_queue_Requeue>: void _Thread_queue_Requeue( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
3000c8d8:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  /*                                                                  
   * Just in case the thread really wasn't blocked on a thread queue  
   * when we get here.                                                
   */                                                                 
  if ( !the_thread_queue )                                            
3000c8dc:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
                                                                      
void _Thread_queue_Requeue(                                           
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread                                    
)                                                                     
{                                                                     
3000c8e0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000c8e4:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  /*                                                                  
   * Just in case the thread really wasn't blocked on a thread queue  
   * when we get here.                                                
   */                                                                 
  if ( !the_thread_queue )                                            
3000c8e8:	0a000002 	beq	3000c8f8 <_Thread_queue_Requeue+0x20>         <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ) {
3000c8ec:	e5943034 	ldr	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
3000c8f0:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000c8f4:	0a000001 	beq	3000c900 <_Thread_queue_Requeue+0x28>         <== NOT EXECUTED
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
    }                                                                 
    _ISR_Enable( level );                                             
  }                                                                   
}                                                                     
3000c8f8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c8fc:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000c900:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3000c904:	e3862080 	orr	r2, r6, #128	; 0x80                           <== NOT EXECUTED
3000c908:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
3000c90c:	e59f2034 	ldr	r2, [pc, #52]	; 3000c948 <_Thread_queue_Requeue+0x70><== NOT EXECUTED
3000c910:	e591c010 	ldr	ip, [r1, #16]                                 <== NOT EXECUTED
3000c914:	e00c2002 	and	r2, ip, r2                                    <== NOT EXECUTED
    Thread_queue_Control *tq = the_thread_queue;                      
    ISR_Level             level;                                      
    ISR_Level             level_ignored;                              
                                                                      
    _ISR_Disable( level );                                            
    if ( _States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
3000c918:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000c91c:	1a000001 	bne	3000c928 <_Thread_queue_Requeue+0x50>         <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000c920:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
3000c924:	eafffff3 	b	3000c8f8 <_Thread_queue_Requeue+0x20>           <== NOT EXECUTED
      _Thread_queue_Enter_critical_section( tq );                     
      _Thread_queue_Extract_priority_helper( tq, the_thread, true );  
3000c928:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
                                                                      
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;
3000c92c:	e5843030 	str	r3, [r4, #48]	; 0x30                          <== NOT EXECUTED
3000c930:	eb000e89 	bl	3001035c <_Thread_queue_Extract_priority_helper><== NOT EXECUTED
      (void) _Thread_queue_Enqueue_priority( tq, the_thread, &level_ignored );
3000c934:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c938:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000c93c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000c940:	ebffff46 	bl	3000c660 <_Thread_queue_Enqueue_priority>      <== NOT EXECUTED
3000c944:	eafffff5 	b	3000c920 <_Thread_queue_Requeue+0x48>           <== NOT EXECUTED
                                                                      

3000c94c <_Thread_queue_Timeout>: void _Thread_queue_Timeout( Objects_Id id, void *ignored __attribute__((unused)) ) {
3000c94c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
3000c950:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Thread_Control       *the_thread;                                   
  Objects_Locations     location;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000c954:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000c958:	ebfffdf2 	bl	3000c128 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000c95c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000c960:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000c964:	1a000004 	bne	3000c97c <_Thread_queue_Timeout+0x30>         <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
      break;                                                          
    case OBJECTS_LOCAL:                                               
      _Thread_queue_Process_timeout( the_thread );                    
3000c968:	eb000eb6 	bl	30010448 <_Thread_queue_Process_timeout>       <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
3000c96c:	e59f3010 	ldr	r3, [pc, #16]	; 3000c984 <_Thread_queue_Timeout+0x38><== NOT EXECUTED
3000c970:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000c974:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000c978:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
3000c97c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c980:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3001a5b8 <_Timer_server_Body>: * @a arg points to the corresponding timer server control block. */ static rtems_task _Timer_server_Body( rtems_task_argument arg ) {
3001a5b8:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
3001a5bc:	e24dd024 	sub	sp, sp, #36	; 0x24                            <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001a5c0:	e28d1018 	add	r1, sp, #24                                   <== NOT EXECUTED
3001a5c4:	e28d700c 	add	r7, sp, #12                                   <== NOT EXECUTED
3001a5c8:	e281b004 	add	fp, r1, #4                                    <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3001a5cc:	e58d1020 	str	r1, [sp, #32]                                 <== NOT EXECUTED
3001a5d0:	e2801008 	add	r1, r0, #8                                    <== NOT EXECUTED
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
3001a5d4:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001a5d8:	e2872004 	add	r2, r7, #4                                    <== NOT EXECUTED
3001a5dc:	e58d1004 	str	r1, [sp, #4]                                  <== NOT EXECUTED
3001a5e0:	e59fa1c4 	ldr	sl, [pc, #452]	; 3001a7ac <_Timer_server_Body+0x1f4><== NOT EXECUTED
3001a5e4:	e2801040 	add	r1, r0, #64	; 0x40                            <== NOT EXECUTED
3001a5e8:	e59f91c0 	ldr	r9, [pc, #448]	; 3001a7b0 <_Timer_server_Body+0x1f8><== NOT EXECUTED
3001a5ec:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3001a5f0:	e58db018 	str	fp, [sp, #24]                                 <== NOT EXECUTED
  head->previous = NULL;                                              
3001a5f4:	e58d301c 	str	r3, [sp, #28]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001a5f8:	e58d200c 	str	r2, [sp, #12]                                 <== NOT EXECUTED
  head->previous = NULL;                                              
3001a5fc:	e58d3010 	str	r3, [sp, #16]                                 <== NOT EXECUTED
  tail->previous = head;                                              
3001a600:	e58d7014 	str	r7, [sp, #20]                                 <== NOT EXECUTED
3001a604:	e2806030 	add	r6, r0, #48	; 0x30                            <== NOT EXECUTED
3001a608:	e2808068 	add	r8, r0, #104	; 0x68                           <== NOT EXECUTED
3001a60c:	e58d1008 	str	r1, [sp, #8]                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE const Chain_Node *_Chain_Immutable_tail(         
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return &the_chain->Tail.Node;                                       
3001a610:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
{                                                                     
  /*                                                                  
   *  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;                                    
3001a614:	e28d2018 	add	r2, sp, #24                                   <== NOT EXECUTED
3001a618:	e5842078 	str	r2, [r4, #120]	; 0x78                         <== NOT EXECUTED
static void _Timer_server_Process_interval_watchdogs(                 
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = _Watchdog_Ticks_since_boot;            
3001a61c:	e59a3000 	ldr	r3, [sl]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
3001a620:	e594103c 	ldr	r1, [r4, #60]	; 0x3c                          <== NOT EXECUTED
                                                                      
  watchdogs->last_snapshot = snapshot;                                
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
3001a624:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3001a628:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
  /*                                                                  
   *  We assume adequate unsigned arithmetic here.                    
   */                                                                 
  Watchdog_Interval delta = snapshot - watchdogs->last_snapshot;      
                                                                      
  watchdogs->last_snapshot = snapshot;                                
3001a62c:	e584303c 	str	r3, [r4, #60]	; 0x3c                          <== NOT EXECUTED
                                                                      
  _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );  
3001a630:	e0611003 	rsb	r1, r1, r3                                    <== NOT EXECUTED
3001a634:	eb0011b8 	bl	3001ed1c <_Watchdog_Adjust_to_chain>           <== NOT EXECUTED
static void _Timer_server_Process_tod_watchdogs(                      
  Timer_server_Watchdogs *watchdogs,                                  
  Chain_Control *fire_chain                                           
)                                                                     
{                                                                     
  Watchdog_Interval snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
3001a638:	e5995000 	ldr	r5, [r9]                                      <== NOT EXECUTED
  Watchdog_Interval last_snapshot = watchdogs->last_snapshot;         
3001a63c:	e5942074 	ldr	r2, [r4, #116]	; 0x74                         <== NOT EXECUTED
  /*                                                                  
   *  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 ) {                                   
3001a640:	e1550002 	cmp	r5, r2                                        <== NOT EXECUTED
3001a644:	8a000022 	bhi	3001a6d4 <_Timer_server_Body+0x11c>           <== NOT EXECUTED
     *  TOD has been set forward.                                     
     */                                                               
    delta = snapshot - last_snapshot;                                 
    _Watchdog_Adjust_to_chain( &watchdogs->Chain, delta, fire_chain );
                                                                      
  } else if ( snapshot < last_snapshot ) {                            
3001a648:	3a000018 	bcc	3001a6b0 <_Timer_server_Body+0xf8>            <== NOT EXECUTED
      */                                                              
     delta = last_snapshot - snapshot;                                
     _Watchdog_Adjust( &watchdogs->Chain, WATCHDOG_BACKWARD, delta ); 
  }                                                                   
                                                                      
  watchdogs->last_snapshot = snapshot;                                
3001a64c:	e5845074 	str	r5, [r4, #116]	; 0x74                         <== NOT EXECUTED
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
3001a650:	e5940078 	ldr	r0, [r4, #120]	; 0x78                         <== NOT EXECUTED
3001a654:	eb0002d4 	bl	3001b1ac <_Chain_Get>                          <== NOT EXECUTED
                                                                      
    if ( timer == NULL ) {                                            
3001a658:	e2501000 	subs	r1, r0, #0                                   <== NOT EXECUTED
3001a65c:	0a00000b 	beq	3001a690 <_Timer_server_Body+0xd8>            <== NOT EXECUTED
static void _Timer_server_Insert_timer(                               
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
3001a660:	e5913038 	ldr	r3, [r1, #56]	; 0x38                          <== NOT EXECUTED
3001a664:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3001a668:	0a000015 	beq	3001a6c4 <_Timer_server_Body+0x10c>           <== NOT EXECUTED
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
  } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) {       
3001a66c:	e3530003 	cmp	r3, #3                                        <== NOT EXECUTED
3001a670:	1afffff6 	bne	3001a650 <_Timer_server_Body+0x98>            <== NOT EXECUTED
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
3001a674:	e2811010 	add	r1, r1, #16                                   <== NOT EXECUTED
3001a678:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3001a67c:	eb0011d1 	bl	3001edc8 <_Watchdog_Insert>                    <== NOT EXECUTED
}                                                                     
                                                                      
static void _Timer_server_Process_insertions( Timer_server_Control *ts )
{                                                                     
  while ( true ) {                                                    
    Timer_Control *timer = (Timer_Control *) _Chain_Get( ts->insert_chain );
3001a680:	e5940078 	ldr	r0, [r4, #120]	; 0x78                         <== NOT EXECUTED
3001a684:	eb0002c8 	bl	3001b1ac <_Chain_Get>                          <== NOT EXECUTED
                                                                      
    if ( timer == NULL ) {                                            
3001a688:	e2501000 	subs	r1, r0, #0                                   <== NOT EXECUTED
3001a68c:	1afffff3 	bne	3001a660 <_Timer_server_Body+0xa8>            <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a690:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3001a694:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3001a698:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
     *  body loop.                                                    
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
    if ( _Chain_Is_empty( insert_chain ) ) {                          
3001a69c:	e59d3018 	ldr	r3, [sp, #24]                                 <== NOT EXECUTED
3001a6a0:	e153000b 	cmp	r3, fp                                        <== NOT EXECUTED
3001a6a4:	0a00000f 	beq	3001a6e8 <_Timer_server_Body+0x130>           <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a6a8:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
3001a6ac:	eaffffda 	b	3001a61c <_Timer_server_Body+0x64>              <== NOT EXECUTED
     /*                                                               
      *  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 ); 
3001a6b0:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3001a6b4:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3001a6b8:	e0652002 	rsb	r2, r5, r2                                    <== NOT EXECUTED
3001a6bc:	eb001165 	bl	3001ec58 <_Watchdog_Adjust>                    <== NOT EXECUTED
3001a6c0:	eaffffe1 	b	3001a64c <_Timer_server_Body+0x94>              <== 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 );
3001a6c4:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3001a6c8:	e2811010 	add	r1, r1, #16                                   <== NOT EXECUTED
3001a6cc:	eb0011bd 	bl	3001edc8 <_Watchdog_Insert>                    <== NOT EXECUTED
3001a6d0:	eaffffde 	b	3001a650 <_Timer_server_Body+0x98>              <== 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 );
3001a6d4:	e0621005 	rsb	r1, r2, r5                                    <== NOT EXECUTED
3001a6d8:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3001a6dc:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3001a6e0:	eb00118d 	bl	3001ed1c <_Watchdog_Adjust_to_chain>           <== NOT EXECUTED
3001a6e4:	eaffffd8 	b	3001a64c <_Timer_server_Body+0x94>              <== NOT EXECUTED
     */                                                               
    _Timer_server_Process_insertions( ts );                           
                                                                      
    _ISR_Disable( level );                                            
    if ( _Chain_Is_empty( insert_chain ) ) {                          
      ts->insert_chain = NULL;                                        
3001a6e8:	e5841078 	str	r1, [r4, #120]	; 0x78                         <== NOT EXECUTED
3001a6ec:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
  _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 ) ) {                          
3001a6f0:	e59d300c 	ldr	r3, [sp, #12]                                 <== NOT EXECUTED
3001a6f4:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
3001a6f8:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
3001a6fc:	0a000015 	beq	3001a758 <_Timer_server_Body+0x1a0>           <== NOT EXECUTED
3001a700:	e1a05004 	mov	r5, r4                                        <== NOT EXECUTED
3001a704:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
3001a708:	ea000009 	b	3001a734 <_Timer_server_Body+0x17c>             <== NOT EXECUTED
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
3001a70c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
                                                                      
  head->next = new_first;                                             
  new_first->previous = head;                                         
3001a710:	e5827004 	str	r7, [r2, #4]                                  <== NOT EXECUTED
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *old_first = head->next;                                 
  Chain_Node *new_first = old_first->next;                            
                                                                      
  head->next = new_first;                                             
3001a714:	e58d200c 	str	r2, [sp, #12]                                 <== NOT EXECUTED
         *  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;                        
3001a718:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3001a71c:	e5832008 	str	r2, [r3, #8]                                  <== NOT EXECUTED
3001a720:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
        /*                                                            
         *  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 );    
3001a724:	e5930020 	ldr	r0, [r3, #32]                                 <== NOT EXECUTED
3001a728:	e5931024 	ldr	r1, [r3, #36]	; 0x24                          <== NOT EXECUTED
3001a72c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001a730:	e593f01c 	ldr	pc, [r3, #28]                                 <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a734:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
3001a738:	e3813080 	orr	r3, r1, #128	; 0x80                           <== NOT EXECUTED
3001a73c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001a740:	e59d300c 	ldr	r3, [sp, #12]                                 <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
3001a744:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
3001a748:	1affffef 	bne	3001a70c <_Timer_server_Body+0x154>           <== NOT EXECUTED
3001a74c:	e1a04005 	mov	r4, r5                                        <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a750:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
3001a754:	eaffffae 	b	3001a614 <_Timer_server_Body+0x5c>              <== NOT EXECUTED
3001a758:	e59f1054 	ldr	r1, [pc, #84]	; 3001a7b4 <_Timer_server_Body+0x1fc><== NOT EXECUTED
         *  the active flag of the timer server is true.              
         */                                                           
        (*watchdog->routine)( watchdog->id, watchdog->user_data );    
      }                                                               
    } else {                                                          
      ts->active = false;                                             
3001a75c:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3001a760:	e5c4307c 	strb	r3, [r4, #124]	; 0x7c                        <== NOT EXECUTED
3001a764:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
3001a768:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3001a76c:	e5813000 	str	r3, [r1]                                      <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Block until there is something to do.                       
       */                                                             
      _Thread_Disable_dispatch();                                     
        _Thread_Set_state( ts->thread, STATES_DELAYING );             
3001a770:	e3a01008 	mov	r1, #8                                        <== NOT EXECUTED
3001a774:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
3001a778:	eb000f95 	bl	3001e5d4 <_Thread_Set_state>                   <== NOT EXECUTED
        _Timer_server_Reset_interval_system_watchdog( ts );           
3001a77c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001a780:	ebffff60 	bl	3001a508 <_Timer_server_Reset_interval_system_watchdog><== NOT EXECUTED
        _Timer_server_Reset_tod_system_watchdog( ts );                
3001a784:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001a788:	ebffff74 	bl	3001a560 <_Timer_server_Reset_tod_system_watchdog><== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3001a78c:	eb000d4c 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
      ts->active = true;                                              
3001a790:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3001a794:	e5c4207c 	strb	r2, [r4, #124]	; 0x7c                        <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
3001a798:	e59d0004 	ldr	r0, [sp, #4]                                  <== NOT EXECUTED
3001a79c:	eb0011f8 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
3001a7a0:	e59d0008 	ldr	r0, [sp, #8]                                  <== NOT EXECUTED
3001a7a4:	eb0011f6 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
3001a7a8:	eaffff99 	b	3001a614 <_Timer_server_Body+0x5c>              <== NOT EXECUTED
                                                                      

3001a508 <_Timer_server_Reset_interval_system_watchdog>: } static void _Timer_server_Reset_interval_system_watchdog( Timer_server_Control *ts ) {
3001a508:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
3001a50c:	e2805008 	add	r5, r0, #8                                    <== NOT EXECUTED
}                                                                     
                                                                      
static void _Timer_server_Reset_interval_system_watchdog(             
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
3001a510:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_interval_system_watchdog(              
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog );        
3001a514:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3001a518:	eb001299 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a51c:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
3001a520:	e3813080 	orr	r3, r1, #128	; 0x80                           <== NOT EXECUTED
3001a524:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001a528:	e5943030 	ldr	r3, [r4, #48]	; 0x30                          <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3001a52c:	e2842034 	add	r2, r4, #52	; 0x34                            <== NOT EXECUTED
  ISR_Level level;                                                    
                                                                      
  _Timer_server_Stop_interval_system_watchdog( ts );                  
                                                                      
  _ISR_Disable( level );                                              
  if ( !_Chain_Is_empty( &ts->Interval_watchdogs.Chain ) ) {          
3001a530:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
3001a534:	0a000006 	beq	3001a554 <_Timer_server_Reset_interval_system_watchdog+0x4c><== NOT EXECUTED
    Watchdog_Interval delta_interval =                                
3001a538:	e5933010 	ldr	r3, [r3, #16]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a53c:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3001a540:	e59f0014 	ldr	r0, [pc, #20]	; 3001a55c <_Timer_server_Reset_interval_system_watchdog+0x54><== NOT EXECUTED
3001a544:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3001a548:	e5843014 	str	r3, [r4, #20]                                 <== NOT EXECUTED
      delta_interval                                                  
    );                                                                
  } else {                                                            
    _ISR_Enable( level );                                             
  }                                                                   
}                                                                     
3001a54c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3001a550:	ea00121c 	b	3001edc8 <_Watchdog_Insert>                     <== NOT EXECUTED
3001a554:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
3001a558:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3001a560 <_Timer_server_Reset_tod_system_watchdog>: } static void _Timer_server_Reset_tod_system_watchdog( Timer_server_Control *ts ) {
3001a560:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
3001a564:	e2805040 	add	r5, r0, #64	; 0x40                            <== NOT EXECUTED
}                                                                     
                                                                      
static void _Timer_server_Reset_tod_system_watchdog(                  
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
3001a568:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
static void _Timer_server_Stop_tod_system_watchdog(                   
  Timer_server_Control *ts                                            
)                                                                     
{                                                                     
  _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog );             
3001a56c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3001a570:	eb001283 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a574:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
3001a578:	e3813080 	orr	r3, r1, #128	; 0x80                           <== NOT EXECUTED
3001a57c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001a580:	e5943068 	ldr	r3, [r4, #104]	; 0x68                         <== NOT EXECUTED
3001a584:	e284206c 	add	r2, r4, #108	; 0x6c                           <== NOT EXECUTED
  ISR_Level level;                                                    
                                                                      
  _Timer_server_Stop_tod_system_watchdog( ts );                       
                                                                      
  _ISR_Disable( level );                                              
  if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {               
3001a588:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
3001a58c:	0a000006 	beq	3001a5ac <_Timer_server_Reset_tod_system_watchdog+0x4c><== NOT EXECUTED
    Watchdog_Interval delta_interval =                                
3001a590:	e5933010 	ldr	r3, [r3, #16]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a594:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3001a598:	e59f0014 	ldr	r0, [pc, #20]	; 3001a5b4 <_Timer_server_Reset_tod_system_watchdog+0x54><== NOT EXECUTED
3001a59c:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3001a5a0:	e584304c 	str	r3, [r4, #76]	; 0x4c                          <== NOT EXECUTED
      delta_interval                                                  
    );                                                                
  } else {                                                            
    _ISR_Enable( level );                                             
  }                                                                   
}                                                                     
3001a5a4:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3001a5a8:	ea001206 	b	3001edc8 <_Watchdog_Insert>                     <== NOT EXECUTED
3001a5ac:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
3001a5b0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3001a7b8 <_Timer_server_Schedule_operation_method>: static void _Timer_server_Schedule_operation_method( Timer_server_Control *ts, Timer_Control *timer ) { if ( ts->insert_chain == NULL ) {
3001a7b8:	e5902078 	ldr	r2, [r0, #120]	; 0x78                         <== NOT EXECUTED
                                                                      
static void _Timer_server_Schedule_operation_method(                  
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
3001a7bc:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  if ( ts->insert_chain == NULL ) {                                   
3001a7c0:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
                                                                      
static void _Timer_server_Schedule_operation_method(                  
  Timer_server_Control *ts,                                           
  Timer_Control *timer                                                
)                                                                     
{                                                                     
3001a7c4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3001a7c8:	e1a03001 	mov	r3, r1                                        <== NOT EXECUTED
  if ( ts->insert_chain == NULL ) {                                   
3001a7cc:	0a000002 	beq	3001a7dc <_Timer_server_Schedule_operation_method+0x24><== 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 );           
3001a7d0:	e5900078 	ldr	r0, [r0, #120]	; 0x78                         <== NOT EXECUTED
  }                                                                   
}                                                                     
3001a7d4:	e8bd4030 	pop	{r4, r5, lr}                                  <== 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 );           
3001a7d8:	ea000260 	b	3001b160 <_Chain_Append>                        <== NOT EXECUTED
3001a7dc:	e59f1104 	ldr	r1, [pc, #260]	; 3001a8e8 <_Timer_server_Schedule_operation_method+0x130><== NOT EXECUTED
3001a7e0:	e5910000 	ldr	r0, [r1]                                      <== NOT EXECUTED
3001a7e4:	e2800001 	add	r0, r0, #1                                    <== NOT EXECUTED
3001a7e8:	e5810000 	str	r0, [r1]                                      <== NOT EXECUTED
   *  being inserted.  This could result in an integer overflow.      
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) {                 
3001a7ec:	e5931038 	ldr	r1, [r3, #56]	; 0x38                          <== NOT EXECUTED
3001a7f0:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
3001a7f4:	0a000021 	beq	3001a880 <_Timer_server_Schedule_operation_method+0xc8><== NOT EXECUTED
    _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 ) {       
3001a7f8:	e3510003 	cmp	r1, #3                                        <== NOT EXECUTED
3001a7fc:	0a000001 	beq	3001a808 <_Timer_server_Schedule_operation_method+0x50><== NOT EXECUTED
     *  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 );           
  }                                                                   
}                                                                     
3001a800:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    if ( !ts->active ) {                                              
      _Timer_server_Reset_tod_system_watchdog( ts );                  
    }                                                                 
  }                                                                   
                                                                      
  _Thread_Enable_dispatch();                                          
3001a804:	ea000d2e 	b	3001dcc4 <_Thread_Enable_dispatch>              <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a808:	e10fe000 	mrs	lr, CPSR                                      <== NOT EXECUTED
3001a80c:	e38e1080 	orr	r1, lr, #128	; 0x80                           <== NOT EXECUTED
3001a810:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001a814:	e5941068 	ldr	r1, [r4, #104]	; 0x68                         <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3001a818:	e284006c 	add	r0, r4, #108	; 0x6c                           <== NOT EXECUTED
     *  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 ) ) {             
3001a81c:	e1510000 	cmp	r1, r0                                        <== NOT EXECUTED
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
3001a820:	e59f00c4 	ldr	r0, [pc, #196]	; 3001a8ec <_Timer_server_Schedule_operation_method+0x134><== NOT EXECUTED
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
3001a824:	e594c074 	ldr	ip, [r4, #116]	; 0x74                         <== NOT EXECUTED
    /*                                                                
     *  We have to advance the last known seconds value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
3001a828:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
3001a82c:	0a000008 	beq	3001a854 <_Timer_server_Schedule_operation_method+0x9c><== NOT EXECUTED
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
3001a830:	e5915010 	ldr	r5, [r1, #16]                                 <== NOT EXECUTED
      if ( snapshot > last_snapshot ) {                               
3001a834:	e150000c 	cmp	r0, ip                                        <== NOT EXECUTED
        }                                                             
      } else {                                                        
        /*                                                            
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
3001a838:	9085200c 	addls	r2, r5, ip                                  <== NOT EXECUTED
        delta_interval += delta;                                      
3001a83c:	90602002 	rsbls	r2, r0, r2                                  <== NOT EXECUTED
    snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();        
    last_snapshot = ts->TOD_watchdogs.last_snapshot;                  
    if ( !_Chain_Is_empty( &ts->TOD_watchdogs.Chain ) ) {             
      first_watchdog = _Watchdog_First( &ts->TOD_watchdogs.Chain );   
      delta_interval = first_watchdog->delta_interval;                
      if ( snapshot > last_snapshot ) {                               
3001a840:	9a000002 	bls	3001a850 <_Timer_server_Schedule_operation_method+0x98><== NOT EXECUTED
        /*                                                            
         *  We advanced in time.                                      
         */                                                           
        delta = snapshot - last_snapshot;                             
3001a844:	e06cc000 	rsb	ip, ip, r0                                    <== NOT EXECUTED
        if (delta_interval > delta) {                                 
3001a848:	e155000c 	cmp	r5, ip                                        <== NOT EXECUTED
          delta_interval -= delta;                                    
3001a84c:	806c2005 	rsbhi	r2, ip, r5                                  <== NOT EXECUTED
         *  Someone put us in the past.                               
         */                                                           
        delta = last_snapshot - snapshot;                             
        delta_interval += delta;                                      
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
3001a850:	e5812010 	str	r2, [r1, #16]                                 <== NOT EXECUTED
    }                                                                 
    ts->TOD_watchdogs.last_snapshot = snapshot;                       
3001a854:	e5840074 	str	r0, [r4, #116]	; 0x74                         <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a858:	e129f00e 	msr	CPSR_fc, lr                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
                                                                      
    _Watchdog_Insert( &ts->TOD_watchdogs.Chain, &timer->Ticker );     
3001a85c:	e2831010 	add	r1, r3, #16                                   <== NOT EXECUTED
3001a860:	e2840068 	add	r0, r4, #104	; 0x68                           <== NOT EXECUTED
3001a864:	eb001157 	bl	3001edc8 <_Watchdog_Insert>                    <== NOT EXECUTED
                                                                      
    if ( !ts->active ) {                                              
3001a868:	e5d4307c 	ldrb	r3, [r4, #124]	; 0x7c                        <== NOT EXECUTED
3001a86c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3001a870:	1affffe2 	bne	3001a800 <_Timer_server_Schedule_operation_method+0x48><== NOT EXECUTED
      _Timer_server_Reset_tod_system_watchdog( ts );                  
3001a874:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001a878:	ebffff38 	bl	3001a560 <_Timer_server_Reset_tod_system_watchdog><== NOT EXECUTED
3001a87c:	eaffffdf 	b	3001a800 <_Timer_server_Schedule_operation_method+0x48><== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a880:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
3001a884:	e3851080 	orr	r1, r5, #128	; 0x80                           <== NOT EXECUTED
3001a888:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001a88c:	e5941030 	ldr	r1, [r4, #48]	; 0x30                          <== NOT EXECUTED
3001a890:	e2840034 	add	r0, r4, #52	; 0x34                            <== NOT EXECUTED
     *  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 ) ) {        
3001a894:	e1510000 	cmp	r1, r0                                        <== NOT EXECUTED
    /*                                                                
     *  We have to advance the last known ticks value of the server and update
     *  the watchdog chain accordingly.                               
     */                                                               
    _ISR_Disable( level );                                            
    snapshot = _Watchdog_Ticks_since_boot;                            
3001a898:	e59f0050 	ldr	r0, [pc, #80]	; 3001a8f0 <_Timer_server_Schedule_operation_method+0x138><== NOT EXECUTED
3001a89c:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
    last_snapshot = ts->Interval_watchdogs.last_snapshot;             
3001a8a0:	e594c03c 	ldr	ip, [r4, #60]	; 0x3c                          <== NOT EXECUTED
    if ( !_Chain_Is_empty( &ts->Interval_watchdogs.Chain ) ) {        
3001a8a4:	0a000004 	beq	3001a8bc <_Timer_server_Schedule_operation_method+0x104><== NOT EXECUTED
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
                                                                      
      delta_interval = first_watchdog->delta_interval;                
3001a8a8:	e591e010 	ldr	lr, [r1, #16]                                 <== NOT EXECUTED
      first_watchdog = _Watchdog_First( &ts->Interval_watchdogs.Chain );
                                                                      
      /*                                                              
       *  We assume adequate unsigned arithmetic here.                
       */                                                             
      delta = snapshot - last_snapshot;                               
3001a8ac:	e06cc000 	rsb	ip, ip, r0                                    <== NOT EXECUTED
                                                                      
      delta_interval = first_watchdog->delta_interval;                
      if (delta_interval > delta) {                                   
3001a8b0:	e15c000e 	cmp	ip, lr                                        <== NOT EXECUTED
        delta_interval -= delta;                                      
3001a8b4:	306c200e 	rsbcc	r2, ip, lr                                  <== NOT EXECUTED
      } else {                                                        
        delta_interval = 0;                                           
      }                                                               
      first_watchdog->delta_interval = delta_interval;                
3001a8b8:	e5812010 	str	r2, [r1, #16]                                 <== NOT EXECUTED
    }                                                                 
    ts->Interval_watchdogs.last_snapshot = snapshot;                  
3001a8bc:	e584003c 	str	r0, [r4, #60]	; 0x3c                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a8c0:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
                                                                      
    _Watchdog_Insert( &ts->Interval_watchdogs.Chain, &timer->Ticker );
3001a8c4:	e2831010 	add	r1, r3, #16                                   <== NOT EXECUTED
3001a8c8:	e2840030 	add	r0, r4, #48	; 0x30                            <== NOT EXECUTED
3001a8cc:	eb00113d 	bl	3001edc8 <_Watchdog_Insert>                    <== NOT EXECUTED
                                                                      
    if ( !ts->active ) {                                              
3001a8d0:	e5d4307c 	ldrb	r3, [r4, #124]	; 0x7c                        <== NOT EXECUTED
3001a8d4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3001a8d8:	1affffc8 	bne	3001a800 <_Timer_server_Schedule_operation_method+0x48><== NOT EXECUTED
      _Timer_server_Reset_interval_system_watchdog( ts );             
3001a8dc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001a8e0:	ebffff08 	bl	3001a508 <_Timer_server_Reset_interval_system_watchdog><== NOT EXECUTED
3001a8e4:	eaffffc5 	b	3001a800 <_Timer_server_Schedule_operation_method+0x48><== NOT EXECUTED
                                                                      

3000cc00 <_Timespec_Add_to>: uint32_t _Timespec_Add_to( struct timespec *time, const struct timespec *add ) {
3000cc00:	e1a03000 	mov	r3, r0                                        
  uint32_t seconds = add->tv_sec;                                     
                                                                      
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
  time->tv_nsec += add->tv_nsec;                                      
3000cc04:	e5902004 	ldr	r2, [r0, #4]                                  
                                                                      
uint32_t _Timespec_Add_to(                                            
  struct timespec       *time,                                        
  const struct timespec *add                                          
)                                                                     
{                                                                     
3000cc08:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 
  uint32_t seconds = add->tv_sec;                                     
                                                                      
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
  time->tv_nsec += add->tv_nsec;                                      
3000cc0c:	e8910011 	ldm	r1, {r0, r4}                                  
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
3000cc10:	e59fc040 	ldr	ip, [pc, #64]	; 3000cc58 <_Timespec_Add_to+0x58>
)                                                                     
{                                                                     
  uint32_t seconds = add->tv_sec;                                     
                                                                      
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
3000cc14:	e5931000 	ldr	r1, [r3]                                      
  time->tv_nsec += add->tv_nsec;                                      
3000cc18:	e0844002 	add	r4, r4, r2                                    
)                                                                     
{                                                                     
  uint32_t seconds = add->tv_sec;                                     
                                                                      
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
3000cc1c:	e0811000 	add	r1, r1, r0                                    
  time->tv_nsec += add->tv_nsec;                                      
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
3000cc20:	e154000c 	cmp	r4, ip                                        
3000cc24:	e1a02004 	mov	r2, r4                                        
)                                                                     
{                                                                     
  uint32_t seconds = add->tv_sec;                                     
                                                                      
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
3000cc28:	e8830012 	stm	r3, {r1, r4}                                  
  time->tv_nsec += add->tv_nsec;                                      
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
3000cc2c:	9a000007 	bls	3000cc50 <_Timespec_Add_to+0x50>              
    time->tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                      
3000cc30:	e2822331 	add	r2, r2, #-1006632960	; 0xc4000000             <== NOT EXECUTED
3000cc34:	e2822865 	add	r2, r2, #6619136	; 0x650000                   <== NOT EXECUTED
3000cc38:	e2822c36 	add	r2, r2, #13824	; 0x3600                       <== NOT EXECUTED
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
  time->tv_nsec += add->tv_nsec;                                      
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
3000cc3c:	e152000c 	cmp	r2, ip                                        <== NOT EXECUTED
 *                                                                    
 *  This routines adds two timespecs.  The second argument is added   
 *  to the first.                                                     
 */                                                                   
                                                                      
uint32_t _Timespec_Add_to(                                            
3000cc40:	e2811001 	add	r1, r1, #1                                    <== NOT EXECUTED
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
    time->tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                      
    time->tv_sec++;                                                   
    seconds++;                                                        
3000cc44:	e2800001 	add	r0, r0, #1                                    <== NOT EXECUTED
  /* Add the basics */                                                
  time->tv_sec += add->tv_sec;                                        
  time->tv_nsec += add->tv_nsec;                                      
                                                                      
  /* Now adjust it so nanoseconds is in range */                      
  while ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {             
3000cc48:	8afffff8 	bhi	3000cc30 <_Timespec_Add_to+0x30>              <== NOT EXECUTED
3000cc4c:	e8830006 	stm	r3, {r1, r2}                                  <== NOT EXECUTED
    time->tv_sec++;                                                   
    seconds++;                                                        
  }                                                                   
                                                                      
  return seconds;                                                     
}                                                                     
3000cc50:	e8bd0010 	pop	{r4}                                          
3000cc54:	e12fff1e 	bx	lr                                             
                                                                      

3000e848 <_Timespec_Divide>: const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage ) {
3000e848:	e92d48f0 	push	{r4, r5, r6, r7, fp, lr}                     
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  right += rhs->tv_nsec;                                              
3000e84c:	e5916004 	ldr	r6, [r1, #4]                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
3000e850:	e591c000 	ldr	ip, [r1]                                      
3000e854:	e59f1074 	ldr	r1, [pc, #116]	; 3000e8d0 <_Timespec_Divide+0x88>
  right += rhs->tv_nsec;                                              
3000e858:	e1a07fc6 	asr	r7, r6, #31                                   
3000e85c:	e0e76c91 	smlal	r6, r7, r1, ip                              
  const struct timespec *lhs,                                         
  const struct timespec *rhs,                                         
  uint32_t              *ival_percentage,                             
  uint32_t              *fval_percentage                              
)                                                                     
{                                                                     
3000e860:	e1a04003 	mov	r4, r3                                        
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  right += rhs->tv_nsec;                                              
                                                                      
  if ( right == 0 ) {                                                 
3000e864:	e196c007 	orrs	ip, r6, r7                                   
                                                                      
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
3000e868:	e8900808 	ldm	r0, {r3, fp}                                  
  const struct timespec *lhs,                                         
  const struct timespec *rhs,                                         
  uint32_t              *ival_percentage,                             
  uint32_t              *fval_percentage                              
)                                                                     
{                                                                     
3000e86c:	e1a05002 	mov	r5, r2                                        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  right += rhs->tv_nsec;                                              
                                                                      
  if ( right == 0 ) {                                                 
    *ival_percentage = 0;                                             
3000e870:	0582c000 	streq	ip, [r2]                                    
    *fval_percentage = 0;                                             
3000e874:	0584c000 	streq	ip, [r4]                                    
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  left  += lhs->tv_nsec;                                              
  right  = rhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  right += rhs->tv_nsec;                                              
                                                                      
  if ( right == 0 ) {                                                 
3000e878:	08bd88f0 	popeq	{r4, r5, r6, r7, fp, pc}                    
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  left   = lhs->tv_sec * (uint64_t)TOD_NANOSECONDS_PER_SECOND;        
  left  += lhs->tv_nsec;                                              
3000e87c:	e1a0cfcb 	asr	ip, fp, #31                                   <== NOT EXECUTED
3000e880:	e0ecb391 	smlal	fp, ip, r1, r3                              <== NOT EXECUTED
   *  Put it back in the timespec result.                             
   *                                                                  
   *  TODO: Rounding on the last digit of the fval.                   
   */                                                                 
                                                                      
  answer = (left * 100000) / right;                                   
3000e884:	e59fe048 	ldr	lr, [pc, #72]	; 3000e8d4 <_Timespec_Divide+0x8c><== NOT EXECUTED
3000e888:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
3000e88c:	e0810e9b 	umull	r0, r1, fp, lr                              <== NOT EXECUTED
3000e890:	e1a03007 	mov	r3, r7                                        <== NOT EXECUTED
3000e894:	e0211c9e 	mla	r1, lr, ip, r1                                <== NOT EXECUTED
3000e898:	eb0040b7 	bl	3001eb7c <__udivdi3>                           <== NOT EXECUTED
                                                                      
  *ival_percentage = answer / 1000;                                   
3000e89c:	e3a02ffa 	mov	r2, #1000	; 0x3e8                             <== NOT EXECUTED
3000e8a0:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
   *  Put it back in the timespec result.                             
   *                                                                  
   *  TODO: Rounding on the last digit of the fval.                   
   */                                                                 
                                                                      
  answer = (left * 100000) / right;                                   
3000e8a4:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
3000e8a8:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
                                                                      
  *ival_percentage = answer / 1000;                                   
3000e8ac:	eb0040b2 	bl	3001eb7c <__udivdi3>                           <== NOT EXECUTED
  *fval_percentage = answer % 1000;                                   
3000e8b0:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
   *  TODO: Rounding on the last digit of the fval.                   
   */                                                                 
                                                                      
  answer = (left * 100000) / right;                                   
                                                                      
  *ival_percentage = answer / 1000;                                   
3000e8b4:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
  *fval_percentage = answer % 1000;                                   
3000e8b8:	e3a02ffa 	mov	r2, #1000	; 0x3e8                             <== NOT EXECUTED
3000e8bc:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000e8c0:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000e8c4:	eb0041be 	bl	3001efc4 <__umoddi3>                           <== NOT EXECUTED
3000e8c8:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
3000e8cc:	e8bd88f0 	pop	{r4, r5, r6, r7, fp, pc}                      <== NOT EXECUTED
                                                                      

3000e8a8 <_Timespec_Divide_by_integer>: /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ t = time->tv_sec;
3000e8a8:	e590c000 	ldr	ip, [r0]                                      <== NOT EXECUTED
  t *= TOD_NANOSECONDS_PER_SECOND;                                    
3000e8ac:	e59f3068 	ldr	r3, [pc, #104]	; 3000e91c <_Timespec_Divide_by_integer+0x74><== NOT EXECUTED
void _Timespec_Divide_by_integer(                                     
  const struct timespec *time,                                        
  uint32_t               iterations,                                  
  struct timespec       *result                                       
)                                                                     
{                                                                     
3000e8b0:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  t  = time->tv_sec;                                                  
  t *= TOD_NANOSECONDS_PER_SECOND;                                    
3000e8b4:	e086539c 	umull	r5, r6, ip, r3                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  For math simplicity just convert the timespec to nanoseconds    
   *  in a 64-bit integer.                                            
   */                                                                 
  t  = time->tv_sec;                                                  
3000e8b8:	e1a0700c 	mov	r7, ip                                        <== NOT EXECUTED
3000e8bc:	e1a08fc7 	asr	r8, r7, #31                                   <== NOT EXECUTED
  t *= TOD_NANOSECONDS_PER_SECOND;                                    
3000e8c0:	e0266893 	mla	r6, r3, r8, r6                                <== NOT EXECUTED
  t += time->tv_nsec;                                                 
3000e8c4:	e5900004 	ldr	r0, [r0, #4]                                  <== NOT EXECUTED
void _Timespec_Divide_by_integer(                                     
  const struct timespec *time,                                        
  uint32_t               iterations,                                  
  struct timespec       *result                                       
)                                                                     
{                                                                     
3000e8c8:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Divide to get nanoseconds per iteration                         
   */                                                                 
                                                                      
  t /= iterations;                                                    
3000e8cc:	e0957000 	adds	r7, r5, r0                                   <== NOT EXECUTED
3000e8d0:	e0a68fc0 	adc	r8, r6, r0, asr #31                           <== NOT EXECUTED
3000e8d4:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000e8d8:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000e8dc:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000e8e0:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000e8e4:	eb003ef1 	bl	3001e4b0 <__udivdi3>                           <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
3000e8e8:	e59f202c 	ldr	r2, [pc, #44]	; 3000e91c <_Timespec_Divide_by_integer+0x74><== NOT EXECUTED
3000e8ec:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Divide to get nanoseconds per iteration                         
   */                                                                 
                                                                      
  t /= iterations;                                                    
3000e8f0:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000e8f4:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
3000e8f8:	eb003eec 	bl	3001e4b0 <__udivdi3>                           <== NOT EXECUTED
  result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND;                   
3000e8fc:	e59f2018 	ldr	r2, [pc, #24]	; 3000e91c <_Timespec_Divide_by_integer+0x74><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
3000e900:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
  result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND;                   
3000e904:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000e908:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000e90c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000e910:	eb003ff8 	bl	3001e8f8 <__umoddi3>                           <== NOT EXECUTED
3000e914:	e5840004 	str	r0, [r4, #4]                                  <== NOT EXECUTED
}                                                                     
3000e918:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

30022af0 <_Timespec_From_ticks>: struct timespec *time ) { uint32_t usecs; usecs = ticks * rtems_configuration_get_microseconds_per_tick();
30022af0:	e59f3034 	ldr	r3, [pc, #52]	; 30022b2c <_Timespec_From_ticks+0x3c><== NOT EXECUTED
                                                                      
  time->tv_sec  = usecs / TOD_MICROSECONDS_PER_SECOND;                
30022af4:	e59f2034 	ldr	r2, [pc, #52]	; 30022b30 <_Timespec_From_ticks+0x40><== NOT EXECUTED
  struct timespec *time                                               
)                                                                     
{                                                                     
  uint32_t    usecs;                                                  
                                                                      
  usecs = ticks * rtems_configuration_get_microseconds_per_tick();    
30022af8:	e593300c 	ldr	r3, [r3, #12]                                 <== NOT EXECUTED
30022afc:	e0000093 	mul	r0, r3, r0                                    <== NOT EXECUTED
                                                                      
  time->tv_sec  = usecs / TOD_MICROSECONDS_PER_SECOND;                
30022b00:	e0823290 	umull	r3, r2, r0, r2                              <== NOT EXECUTED
30022b04:	e1a02922 	lsr	r2, r2, #18                                   <== NOT EXECUTED
  time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) *             
30022b08:	e0623282 	rsb	r3, r2, r2, lsl #5                            <== NOT EXECUTED
30022b0c:	e0633303 	rsb	r3, r3, r3, lsl #6                            <== NOT EXECUTED
30022b10:	e0823183 	add	r3, r2, r3, lsl #3                            <== NOT EXECUTED
30022b14:	e0403303 	sub	r3, r0, r3, lsl #6                            <== NOT EXECUTED
30022b18:	e0630283 	rsb	r0, r3, r3, lsl #5                            <== NOT EXECUTED
30022b1c:	e0833100 	add	r3, r3, r0, lsl #2                            <== NOT EXECUTED
30022b20:	e1a03183 	lsl	r3, r3, #3                                    <== NOT EXECUTED
{                                                                     
  uint32_t    usecs;                                                  
                                                                      
  usecs = ticks * rtems_configuration_get_microseconds_per_tick();    
                                                                      
  time->tv_sec  = usecs / TOD_MICROSECONDS_PER_SECOND;                
30022b24:	e881000c 	stm	r1, {r2, r3}                                  <== NOT EXECUTED
  time->tv_nsec = (usecs % TOD_MICROSECONDS_PER_SECOND) *             
                    TOD_NANOSECONDS_PER_MICROSECOND;                  
}                                                                     
30022b28:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30022b34 <_Timespec_Is_valid>: bool _Timespec_Is_valid( const struct timespec *time ) { if ( !time )
30022b34:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30022b38:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
    return false;                                                     
                                                                      
  if ( time->tv_sec < 0 )                                             
30022b3c:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
30022b40:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return false;                                                     
30022b44:	b3a00000 	movlt	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !time )                                                        
    return false;                                                     
                                                                      
  if ( time->tv_sec < 0 )                                             
30022b48:	b12fff1e 	bxlt	lr                                           <== NOT EXECUTED
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
30022b4c:	e5903004 	ldr	r3, [r0, #4]                                  <== NOT EXECUTED
30022b50:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30022b54:	ba000004 	blt	30022b6c <_Timespec_Is_valid+0x38>            <== NOT EXECUTED
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Is_valid(                                              
30022b58:	e59f0014 	ldr	r0, [pc, #20]	; 30022b74 <_Timespec_Is_valid+0x40><== NOT EXECUTED
30022b5c:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
30022b60:	83a00000 	movhi	r0, #0                                      <== NOT EXECUTED
30022b64:	93a00001 	movls	r0, #1                                      <== NOT EXECUTED
30022b68:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      
  if ( time->tv_sec < 0 )                                             
    return false;                                                     
                                                                      
  if ( time->tv_nsec < 0 )                                            
    return false;                                                     
30022b6c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
                                                                      
  if ( time->tv_nsec >= TOD_NANOSECONDS_PER_SECOND )                  
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
30022b70:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300104e8 <_Timespec_Less_than>: bool _Timespec_Less_than( const struct timespec *lhs, const struct timespec *rhs ) { if ( lhs->tv_sec < rhs->tv_sec )
300104e8:	e5902000 	ldr	r2, [r0]                                      
300104ec:	e5913000 	ldr	r3, [r1]                                      
300104f0:	e1520003 	cmp	r2, r3                                        
    return true;                                                      
300104f4:	b3a00001 	movlt	r0, #1                                      
bool _Timespec_Less_than(                                             
  const struct timespec *lhs,                                         
  const struct timespec *rhs                                          
)                                                                     
{                                                                     
  if ( lhs->tv_sec < rhs->tv_sec )                                    
300104f8:	b12fff1e 	bxlt	lr                                           
    return true;                                                      
                                                                      
  if ( lhs->tv_sec > rhs->tv_sec )                                    
300104fc:	ca000005 	bgt	30010518 <_Timespec_Less_than+0x30>           
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/timespec.h>                                     
#include <rtems/score/tod.h>                                          
                                                                      
bool _Timespec_Less_than(                                             
30010500:	e5900004 	ldr	r0, [r0, #4]                                  
30010504:	e5913004 	ldr	r3, [r1, #4]                                  
30010508:	e1500003 	cmp	r0, r3                                        
3001050c:	a3a00000 	movge	r0, #0                                      
30010510:	b3a00001 	movlt	r0, #1                                      
30010514:	e12fff1e 	bx	lr                                             
{                                                                     
  if ( lhs->tv_sec < rhs->tv_sec )                                    
    return true;                                                      
                                                                      
  if ( lhs->tv_sec > rhs->tv_sec )                                    
    return false;                                                     
30010518:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
  /* ASSERT: lhs->tv_sec == rhs->tv_sec */                            
  if ( lhs->tv_nsec < rhs->tv_nsec )                                  
    return true;                                                      
                                                                      
  return false;                                                       
}                                                                     
3001051c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000cc5c <_Timespec_Subtract>: const struct timespec *end, struct timespec *result ) { if (end->tv_nsec < start->tv_nsec) {
3000cc5c:	e591c004 	ldr	ip, [r1, #4]                                  
3000cc60:	e5903004 	ldr	r3, [r0, #4]                                  
void _Timespec_Subtract(                                              
  const struct timespec *start,                                       
  const struct timespec *end,                                         
  struct timespec       *result                                       
)                                                                     
{                                                                     
3000cc64:	e92d0030 	push	{r4, r5}                                     
                                                                      
  if (end->tv_nsec < start->tv_nsec) {                                
3000cc68:	e15c0003 	cmp	ip, r3                                        
3000cc6c:	ba000006 	blt	3000cc8c <_Timespec_Subtract+0x30>            
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
    result->tv_nsec =                                                 
      (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec;   
  } else {                                                            
    result->tv_sec  = end->tv_sec - start->tv_sec;                    
3000cc70:	e5914000 	ldr	r4, [r1]                                      
3000cc74:	e5901000 	ldr	r1, [r0]                                      
    result->tv_nsec = end->tv_nsec - start->tv_nsec;                  
3000cc78:	e063300c 	rsb	r3, r3, ip                                    
  if (end->tv_nsec < start->tv_nsec) {                                
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
    result->tv_nsec =                                                 
      (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec;   
  } else {                                                            
    result->tv_sec  = end->tv_sec - start->tv_sec;                    
3000cc7c:	e0611004 	rsb	r1, r1, r4                                    
3000cc80:	e882000a 	stm	r2, {r1, r3}                                  
    result->tv_nsec = end->tv_nsec - start->tv_nsec;                  
  }                                                                   
}                                                                     
3000cc84:	e8bd0030 	pop	{r4, r5}                                      
3000cc88:	e12fff1e 	bx	lr                                             
  struct timespec       *result                                       
)                                                                     
{                                                                     
                                                                      
  if (end->tv_nsec < start->tv_nsec) {                                
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
3000cc8c:	e5915000 	ldr	r5, [r1]                                      <== NOT EXECUTED
    result->tv_nsec =                                                 
      (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec;   
3000cc90:	e59f1018 	ldr	r1, [pc, #24]	; 3000ccb0 <_Timespec_Subtract+0x54><== NOT EXECUTED
  struct timespec       *result                                       
)                                                                     
{                                                                     
                                                                      
  if (end->tv_nsec < start->tv_nsec) {                                
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
3000cc94:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
    result->tv_nsec =                                                 
      (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec;   
3000cc98:	e08c1001 	add	r1, ip, r1                                    <== NOT EXECUTED
  struct timespec       *result                                       
)                                                                     
{                                                                     
                                                                      
  if (end->tv_nsec < start->tv_nsec) {                                
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
3000cc9c:	e2450001 	sub	r0, r5, #1                                    <== NOT EXECUTED
3000cca0:	e0640000 	rsb	r0, r4, r0                                    <== NOT EXECUTED
    result->tv_nsec =                                                 
      (TOD_NANOSECONDS_PER_SECOND - start->tv_nsec) + end->tv_nsec;   
3000cca4:	e0633001 	rsb	r3, r3, r1                                    <== NOT EXECUTED
  struct timespec       *result                                       
)                                                                     
{                                                                     
                                                                      
  if (end->tv_nsec < start->tv_nsec) {                                
    result->tv_sec  = end->tv_sec - start->tv_sec - 1;                
3000cca8:	e8820009 	stm	r2, {r0, r3}                                  <== NOT EXECUTED
3000ccac:	eafffff4 	b	3000cc84 <_Timespec_Subtract+0x28>              <== NOT EXECUTED
                                                                      

300104c4 <_Timespec_To_ticks>: */ uint32_t _Timespec_To_ticks( const struct timespec *time ) {
300104c4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
300104c8:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
 */                                                                   
                                                                      
uint32_t _Timespec_To_ticks(                                          
  const struct timespec *time                                         
)                                                                     
{                                                                     
300104cc:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
300104d0:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
300104d4:	1a000002 	bne	300104e4 <_Timespec_To_ticks+0x20>            <== NOT EXECUTED
300104d8:	e5900004 	ldr	r0, [r0, #4]                                  <== NOT EXECUTED
300104dc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
300104e0:	08bd8030 	popeq	{r4, r5, pc}                                <== NOT EXECUTED
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
300104e4:	eb00065e 	bl	30011e64 <TOD_TICKS_PER_SECOND_method>         <== NOT EXECUTED
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
300104e8:	e59f3024 	ldr	r3, [pc, #36]	; 30010514 <_Timespec_To_ticks+0x50><== NOT EXECUTED
  uint32_t  ticks;                                                    
                                                                      
  if ( (time->tv_sec == 0) && (time->tv_nsec == 0) )                  
    return 0;                                                         
                                                                      
  ticks  = time->tv_sec * TOD_TICKS_PER_SECOND;                       
300104ec:	e0040490 	mul	r4, r0, r4                                    <== NOT EXECUTED
                                                                      
  ticks += time->tv_nsec / rtems_configuration_get_nanoseconds_per_tick();
300104f0:	e593300c 	ldr	r3, [r3, #12]                                 <== NOT EXECUTED
300104f4:	e5950004 	ldr	r0, [r5, #4]                                  <== NOT EXECUTED
300104f8:	e0632283 	rsb	r2, r3, r3, lsl #5                            <== NOT EXECUTED
300104fc:	e0833102 	add	r3, r3, r2, lsl #2                            <== NOT EXECUTED
30010500:	e1a01183 	lsl	r1, r3, #3                                    <== NOT EXECUTED
30010504:	eb00149e 	bl	30015784 <__aeabi_uidiv>                       <== NOT EXECUTED
                                                                      
  if (ticks)                                                          
30010508:	e0940000 	adds	r0, r4, r0                                   <== NOT EXECUTED
    return ticks;                                                     
                                                                      
  return 1;                                                           
3001050c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
}                                                                     
30010510:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000cde0 <_User_extensions_Fatal>: void _User_extensions_Fatal ( Internal_errors_Source the_source, bool is_internal, Internal_errors_t the_error ) {
3000cde0:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
3000cde4:	e59f5040 	ldr	r5, [pc, #64]	; 3000ce2c <_User_extensions_Fatal+0x4c>
void _User_extensions_Fatal (                                         
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
3000cde8:	e1a08000 	mov	r8, r0                                        
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.fatal != NULL )                      
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
  }                                                                   
}                                                                     
3000cdec:	e5954008 	ldr	r4, [r5, #8]                                  
void _User_extensions_Fatal (                                         
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
3000cdf0:	e1a07002 	mov	r7, r2                                        
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
3000cdf4:	e1540005 	cmp	r4, r5                                        
void _User_extensions_Fatal (                                         
  Internal_errors_Source  the_source,                                 
  bool                    is_internal,                                
  Internal_errors_t       the_error                                   
)                                                                     
{                                                                     
3000cdf8:	e20160ff 	and	r6, r1, #255	; 0xff                           
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
3000cdfc:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    
        !_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 )                      
3000ce00:	e5943030 	ldr	r3, [r4, #48]	; 0x30                          
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
3000ce04:	e1a00008 	mov	r0, r8                                        
        !_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 )                      
3000ce08:	e3530000 	cmp	r3, #0                                        
      (*the_extension->Callouts.fatal)( the_source, is_internal, the_error );
3000ce0c:	e1a01006 	mov	r1, r6                                        
3000ce10:	e1a02007 	mov	r2, r7                                        
3000ce14:	11a0e00f 	movne	lr, pc                                      
3000ce18:	112fff13 	bxne	r3                                           
  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 ) {                             
3000ce1c:	e5944004 	ldr	r4, [r4, #4]                                  
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _Chain_Last( &_User_extensions_List );             
3000ce20:	e1540005 	cmp	r4, r5                                        
3000ce24:	1afffff5 	bne	3000ce00 <_User_extensions_Fatal+0x20>        
3000ce28:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

3000e53c <_User_extensions_Remove_set>: #include <rtems/score/userext.h> void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) {
3000e53c:	e92d4010 	push	{r4, lr}                                     
3000e540:	e1a04000 	mov	r4, r0                                        
  _Chain_Extract( &the_extension->Node );                             
3000e544:	ebfff5ea 	bl	3000bcf4 <_Chain_Extract>                      
                                                                      
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
3000e548:	e5943024 	ldr	r3, [r4, #36]	; 0x24                          
3000e54c:	e3530000 	cmp	r3, #0                                        
3000e550:	08bd8010 	popeq	{r4, pc}                                    
    _Chain_Extract( &the_extension->Switch.Node );                    
3000e554:	e2840008 	add	r0, r4, #8                                    <== NOT EXECUTED
}                                                                     
3000e558:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
    _Chain_Extract( &the_extension->Switch.Node );                    
3000e55c:	eafff5e4 	b	3000bcf4 <_Chain_Extract>                       <== NOT EXECUTED
                                                                      

3000ce30 <_User_extensions_Thread_create>: #include <rtems/score/userext.h> bool _User_extensions_Thread_create ( Thread_Control *the_thread ) {
3000ce30:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
3000ce34:	e59f5050 	ldr	r5, [pc, #80]	; 3000ce8c <_User_extensions_Thread_create+0x5c>
#include <rtems/score/userext.h>                                      
                                                                      
bool _User_extensions_Thread_create (                                 
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
3000ce38:	e1a06000 	mov	r6, r0                                        
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
}                                                                     
3000ce3c:	e4954004 	ldr	r4, [r5], #4                                  
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
3000ce40:	e1540005 	cmp	r4, r5                                        
3000ce44:	0a00000e 	beq	3000ce84 <_User_extensions_Thread_create+0x54>
        the_node = the_node->next ) {                                 
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_create != NULL ) {            
      status = (*the_extension->Callouts.thread_create)(              
3000ce48:	e59f7040 	ldr	r7, [pc, #64]	; 3000ce90 <_User_extensions_Thread_create+0x60>
        !_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 ) {            
3000ce4c:	e5943014 	ldr	r3, [r4, #20]                                 
      status = (*the_extension->Callouts.thread_create)(              
3000ce50:	e1a01006 	mov	r1, r6                                        
        !_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 ) {            
3000ce54:	e3530000 	cmp	r3, #0                                        
3000ce58:	0a000004 	beq	3000ce70 <_User_extensions_Thread_create+0x40>
      status = (*the_extension->Callouts.thread_create)(              
3000ce5c:	e5970004 	ldr	r0, [r7, #4]                                  
3000ce60:	e1a0e00f 	mov	lr, pc                                        
3000ce64:	e12fff13 	bx	r3                                             
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
      if ( !status )                                                  
3000ce68:	e3500000 	cmp	r0, #0                                        
3000ce6c:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
  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 ) {                                 
3000ce70:	e5944000 	ldr	r4, [r4]                                      
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
  bool                     status;                                    
                                                                      
  for ( the_node = _Chain_First( &_User_extensions_List );            
3000ce74:	e1540005 	cmp	r4, r5                                        
3000ce78:	1afffff3 	bne	3000ce4c <_User_extensions_Thread_create+0x1c>
      if ( !status )                                                  
        return false;                                                 
    }                                                                 
  }                                                                   
                                                                      
  return true;                                                        
3000ce7c:	e3a00001 	mov	r0, #1                                        
3000ce80:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
3000ce84:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
}                                                                     
3000ce88:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000ec24 <_Watchdog_Adjust>: void _Watchdog_Adjust( Chain_Control *header, Watchdog_Adjust_directions direction, Watchdog_Interval units ) {
3000ec24:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
3000ec28:	e1a04000 	mov	r4, r0                                        
3000ec2c:	e1a05002 	mov	r5, r2                                        
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000ec30:	e10f0000 	mrs	r0, CPSR                                      
3000ec34:	e3803080 	orr	r3, r0, #128	; 0x80                           
3000ec38:	e129f003 	msr	CPSR_fc, r3                                   
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
3000ec3c:	e1a07004 	mov	r7, r4                                        
3000ec40:	e4973004 	ldr	r3, [r7], #4                                  
   *       hence the compiler must not assume *header to remain       
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
3000ec44:	e1530007 	cmp	r3, r7                                        
3000ec48:	0a00001a 	beq	3000ecb8 <_Watchdog_Adjust+0x94>              
    switch ( direction ) {                                            
3000ec4c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000ec50:	1a00001a 	bne	3000ecc0 <_Watchdog_Adjust+0x9c>              <== NOT EXECUTED
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
3000ec54:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000ec58:	0a000016 	beq	3000ecb8 <_Watchdog_Adjust+0x94>              <== NOT EXECUTED
          if ( units < _Watchdog_First( header )->delta_interval ) {  
3000ec5c:	e5936010 	ldr	r6, [r3, #16]                                 <== NOT EXECUTED
3000ec60:	e1520006 	cmp	r2, r6                                        <== NOT EXECUTED
3000ec64:	21a01000 	movcs	r1, r0                                      <== NOT EXECUTED
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
3000ec68:	23a08001 	movcs	r8, #1                                      <== NOT EXECUTED
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
3000ec6c:	2a000005 	bcs	3000ec88 <_Watchdog_Adjust+0x64>              <== NOT EXECUTED
3000ec70:	ea000019 	b	3000ecdc <_Watchdog_Adjust+0xb8>                <== NOT EXECUTED
    switch ( direction ) {                                            
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
3000ec74:	e0555006 	subs	r5, r5, r6                                   <== NOT EXECUTED
3000ec78:	0a00000e 	beq	3000ecb8 <_Watchdog_Adjust+0x94>              <== NOT EXECUTED
          if ( units < _Watchdog_First( header )->delta_interval ) {  
3000ec7c:	e5936010 	ldr	r6, [r3, #16]                                 <== NOT EXECUTED
3000ec80:	e1560005 	cmp	r6, r5                                        <== NOT EXECUTED
3000ec84:	8a000014 	bhi	3000ecdc <_Watchdog_Adjust+0xb8>              <== NOT EXECUTED
            _Watchdog_First( header )->delta_interval -= units;       
            break;                                                    
          } else {                                                    
            units -= _Watchdog_First( header )->delta_interval;       
            _Watchdog_First( header )->delta_interval = 1;            
3000ec88:	e5838010 	str	r8, [r3, #16]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000ec8c:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
                                                                      
            _ISR_Enable( level );                                     
                                                                      
            _Watchdog_Tickle( header );                               
3000ec90:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ec94:	eb0000ad 	bl	3000ef50 <_Watchdog_Tickle>                    <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000ec98:	e10f0000 	mrs	r0, CPSR                                      <== NOT EXECUTED
3000ec9c:	e3803080 	orr	r3, r0, #128	; 0x80                           <== NOT EXECUTED
3000eca0:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
3000eca4:	e5942000 	ldr	r2, [r4]                                      <== NOT EXECUTED
3000eca8:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
                                                                      
            _Watchdog_Tickle( header );                               
                                                                      
            _ISR_Disable( level );                                    
                                                                      
            if ( _Chain_Is_empty( header ) )                          
3000ecac:	e1570002 	cmp	r7, r2                                        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
3000ecb0:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000ecb4:	1affffee 	bne	3000ec74 <_Watchdog_Adjust+0x50>              <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000ecb8:	e129f000 	msr	CPSR_fc, r0                                   
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
3000ecbc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
   *       unmodified across that call.                               
   *                                                                  
   *       Till Straumann, 7/2003                                     
   */                                                                 
  if ( !_Chain_Is_empty( header ) ) {                                 
    switch ( direction ) {                                            
3000ecc0:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
3000ecc4:	1afffffb 	bne	3000ecb8 <_Watchdog_Adjust+0x94>              <== NOT EXECUTED
      case WATCHDOG_BACKWARD:                                         
        _Watchdog_First( header )->delta_interval += units;           
3000ecc8:	e5932010 	ldr	r2, [r3, #16]                                 <== NOT EXECUTED
3000eccc:	e0825005 	add	r5, r2, r5                                    <== NOT EXECUTED
3000ecd0:	e5835010 	str	r5, [r3, #16]                                 <== NOT EXECUTED
3000ecd4:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
}                                                                     
3000ecd8:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
        _Watchdog_First( header )->delta_interval += units;           
        break;                                                        
      case WATCHDOG_FORWARD:                                          
        while ( units ) {                                             
          if ( units < _Watchdog_First( header )->delta_interval ) {  
            _Watchdog_First( header )->delta_interval -= units;       
3000ecdc:	e0655006 	rsb	r5, r5, r6                                    <== NOT EXECUTED
3000ece0:	e5835010 	str	r5, [r3, #16]                                 <== NOT EXECUTED
            break;                                                    
3000ece4:	eafffff3 	b	3000ecb8 <_Watchdog_Adjust+0x94>                <== NOT EXECUTED
                                                                      

3001ed1c <_Watchdog_Adjust_to_chain>: { Watchdog_Interval units = units_arg; ISR_Level level; Watchdog_Control *first; if ( units <= 0 ) {
3001ed1c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
  Chain_Control               *header,                                
  Watchdog_Interval            units_arg,                             
  Chain_Control               *to_fire                                
                                                                      
)                                                                     
{                                                                     
3001ed20:	e92d05f0 	push	{r4, r5, r6, r7, r8, sl}                     <== NOT EXECUTED
  Watchdog_Interval  units = units_arg;                               
  ISR_Level          level;                                           
  Watchdog_Control  *first;                                           
                                                                      
  if ( units <= 0 ) {                                                 
3001ed24:	0a000022 	beq	3001edb4 <_Watchdog_Adjust_to_chain+0x98>     <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001ed28:	e10f7000 	mrs	r7, CPSR                                      <== NOT EXECUTED
3001ed2c:	e3873080 	orr	r3, r7, #128	; 0x80                           <== NOT EXECUTED
3001ed30:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    return;                                                           
  }                                                                   
                                                                      
  _ISR_Disable( level );                                              
3001ed34:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
3001ed38:	e4963004 	ldr	r3, [r6], #4                                  <== NOT EXECUTED
    /*                                                                
     *  The first set happens in less than units, so take all of them 
     *  off the chain and adjust units to reflect this.               
     */                                                               
    units -= first->delta_interval;                                   
    first->delta_interval = 0;                                        
3001ed3c:	e3a0a000 	mov	sl, #0                                        <== NOT EXECUTED
3001ed40:	e2828004 	add	r8, r2, #4                                    <== NOT EXECUTED
                                                                      
  while ( 1 ) {                                                       
    if ( units <= 0 ) {                                               
      break;                                                          
    }                                                                 
    if ( _Chain_Is_empty( header ) ) {                                
3001ed44:	e1530006 	cmp	r3, r6                                        <== NOT EXECUTED
3001ed48:	0a000018 	beq	3001edb0 <_Watchdog_Adjust_to_chain+0x94>     <== NOT EXECUTED
                                                                      
    /*                                                                
     *  If it is longer than "units" until the first element on the chain
     *  fires, then bump it and quit.                                 
     */                                                               
    if ( units < first->delta_interval ) {                            
3001ed4c:	e593c010 	ldr	ip, [r3, #16]                                 <== NOT EXECUTED
3001ed50:	e15c0001 	cmp	ip, r1                                        <== NOT EXECUTED
3001ed54:	8a000018 	bhi	3001edbc <_Watchdog_Adjust_to_chain+0xa0>     <== NOT EXECUTED
                                                                      
    /*                                                                
     *  The first set happens in less than units, so take all of them 
     *  off the chain and adjust units to reflect this.               
     */                                                               
    units -= first->delta_interval;                                   
3001ed58:	e06c1001 	rsb	r1, ip, r1                                    <== NOT EXECUTED
    first->delta_interval = 0;                                        
3001ed5c:	e583a010 	str	sl, [r3, #16]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
3001ed60:	e5935000 	ldr	r5, [r3]                                      <== NOT EXECUTED
  previous       = the_node->previous;                                
3001ed64:	e5934004 	ldr	r4, [r3, #4]                                  <== NOT EXECUTED
  next->previous = previous;                                          
3001ed68:	e5854004 	str	r4, [r5, #4]                                  <== NOT EXECUTED
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
3001ed6c:	e592c008 	ldr	ip, [r2, #8]                                  <== NOT EXECUTED
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
  previous->next = next;                                              
3001ed70:	e5845000 	str	r5, [r4]                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
3001ed74:	e5838000 	str	r8, [r3]                                      <== NOT EXECUTED
  tail->previous = the_node;                                          
  old_last->next = the_node;                                          
3001ed78:	e58c3000 	str	r3, [ip]                                      <== NOT EXECUTED
{                                                                     
  Chain_Node *tail = _Chain_Tail( the_chain );                        
  Chain_Node *old_last = tail->previous;                              
                                                                      
  the_node->next = tail;                                              
  tail->previous = the_node;                                          
3001ed7c:	e5823008 	str	r3, [r2, #8]                                  <== NOT EXECUTED
  old_last->next = the_node;                                          
  the_node->previous = old_last;                                      
3001ed80:	e583c004 	str	ip, [r3, #4]                                  <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3001ed84:	e10f3000 	mrs	r3, CPSR                                      <== NOT EXECUTED
3001ed88:	e129f007 	msr	CPSR_fc, r7                                   <== NOT EXECUTED
3001ed8c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
}                                                                     
3001ed90:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
      _Chain_Extract_unprotected( &first->Node );                     
      _Chain_Append_unprotected( to_fire, &first->Node );             
                                                                      
      _ISR_Flash( level );                                            
                                                                      
      if ( _Chain_Is_empty( header ) )                                
3001ed94:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
3001ed98:	0a000002 	beq	3001eda8 <_Watchdog_Adjust_to_chain+0x8c>     <== NOT EXECUTED
        break;                                                        
      first = _Watchdog_First( header );                              
      if ( first->delta_interval != 0 )                               
3001ed9c:	e593c010 	ldr	ip, [r3, #16]                                 <== NOT EXECUTED
3001eda0:	e35c0000 	cmp	ip, #0                                        <== NOT EXECUTED
3001eda4:	0affffed 	beq	3001ed60 <_Watchdog_Adjust_to_chain+0x44>     <== NOT EXECUTED
  }                                                                   
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  while ( 1 ) {                                                       
    if ( units <= 0 ) {                                               
3001eda8:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3001edac:	1affffe4 	bne	3001ed44 <_Watchdog_Adjust_to_chain+0x28>     <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001edb0:	e129f007 	msr	CPSR_fc, r7                                   <== NOT EXECUTED
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
}                                                                     
3001edb4:	e8bd05f0 	pop	{r4, r5, r6, r7, r8, sl}                      <== NOT EXECUTED
3001edb8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
    /*                                                                
     *  If it is longer than "units" until the first element on the chain
     *  fires, then bump it and quit.                                 
     */                                                               
    if ( units < first->delta_interval ) {                            
      first->delta_interval -= units;                                 
3001edbc:	e061100c 	rsb	r1, r1, ip                                    <== NOT EXECUTED
3001edc0:	e5831010 	str	r1, [r3, #16]                                 <== NOT EXECUTED
      break;                                                          
3001edc4:	eafffff9 	b	3001edb0 <_Watchdog_Adjust_to_chain+0x94>       <== NOT EXECUTED
                                                                      

3000cf6c <_Watchdog_Insert>: Watchdog_Control *after; uint32_t insert_isr_nest_level; Watchdog_Interval delta_interval; insert_isr_nest_level = _ISR_Nest_level;
3000cf6c:	e59f3140 	ldr	r3, [pc, #320]	; 3000d0b4 <_Watchdog_Insert+0x148>
                                                                      
void _Watchdog_Insert(                                                
  Chain_Control         *header,                                      
  Watchdog_Control      *the_watchdog                                 
)                                                                     
{                                                                     
3000cf70:	e92d01f0 	push	{r4, r5, r6, r7, r8}                         
  Watchdog_Control  *after;                                           
  uint32_t           insert_isr_nest_level;                           
  Watchdog_Interval  delta_interval;                                  
                                                                      
                                                                      
  insert_isr_nest_level   = _ISR_Nest_level;                          
3000cf74:	e5933000 	ldr	r3, [r3]                                      
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000cf78:	e10f6000 	mrs	r6, CPSR                                      
3000cf7c:	e3862080 	orr	r2, r6, #128	; 0x80                           
3000cf80:	e129f002 	msr	CPSR_fc, r2                                   
  /*                                                                  
   *  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 ) {                   
3000cf84:	e5912008 	ldr	r2, [r1, #8]                                  
3000cf88:	e3520000 	cmp	r2, #0                                        
3000cf8c:	1a000041 	bne	3000d098 <_Watchdog_Insert+0x12c>             
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  _Watchdog_Sync_count++;                                             
3000cf90:	e59f8120 	ldr	r8, [pc, #288]	; 3000d0b8 <_Watchdog_Insert+0x14c>
  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {                   
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
3000cf94:	e3a0c001 	mov	ip, #1                                        
  _Watchdog_Sync_count++;                                             
3000cf98:	e5982000 	ldr	r2, [r8]                                      
3000cf9c:	e59f7118 	ldr	r7, [pc, #280]	; 3000d0bc <_Watchdog_Insert+0x150>
3000cfa0:	e2822001 	add	r2, r2, #1                                    
  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {                   
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
3000cfa4:	e581c008 	str	ip, [r1, #8]                                  
  _Watchdog_Sync_count++;                                             
3000cfa8:	e5882000 	str	r2, [r8]                                      
                                                                      
restart:                                                              
  delta_interval = the_watchdog->initial;                             
3000cfac:	e591200c 	ldr	r2, [r1, #12]                                 
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
3000cfb0:	e590c000 	ldr	ip, [r0]                                      
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
3000cfb4:	e3520000 	cmp	r2, #0                                        
3000cfb8:	0a000023 	beq	3000d04c <_Watchdog_Insert+0xe0>              
3000cfbc:	e59c4000 	ldr	r4, [ip]                                      
3000cfc0:	e3540000 	cmp	r4, #0                                        
3000cfc4:	0a000020 	beq	3000d04c <_Watchdog_Insert+0xe0>              
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
3000cfc8:	e59c4010 	ldr	r4, [ip, #16]                                 
3000cfcc:	e1520004 	cmp	r2, r4                                        
3000cfd0:	3a000032 	bcc	3000d0a0 <_Watchdog_Insert+0x134>             
                                                                      
static inline void arm_interrupt_flash( uint32_t level )              
{                                                                     
  uint32_t arm_switch_reg;                                            
                                                                      
  __asm__ volatile (                                                  
3000cfd4:	e10f5000 	mrs	r5, CPSR                                      
3000cfd8:	e129f006 	msr	CPSR_fc, r6                                   
3000cfdc:	e129f005 	msr	CPSR_fc, r5                                   
                                                                      
     delta_interval -= after->delta_interval;                         
                                                                      
     _ISR_Flash( level );                                             
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
3000cfe0:	e5915008 	ldr	r5, [r1, #8]                                  
3000cfe4:	e3550001 	cmp	r5, #1                                        
3000cfe8:	1a000023 	bne	3000d07c <_Watchdog_Insert+0x110>             
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
3000cfec:	e5975000 	ldr	r5, [r7]                                      
3000cff0:	e1530005 	cmp	r3, r5                                        
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
3000cff4:	20642002 	rsbcs	r2, r4, r2                                  
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
3000cff8:	2a000010 	bcs	3000d040 <_Watchdog_Insert+0xd4>              
3000cffc:	ea00002a 	b	3000d0ac <_Watchdog_Insert+0x140>               <== NOT EXECUTED
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
3000d000:	e59c4000 	ldr	r4, [ip]                                      <== NOT EXECUTED
3000d004:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000d008:	0a00000f 	beq	3000d04c <_Watchdog_Insert+0xe0>              <== NOT EXECUTED
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
3000d00c:	e59c4010 	ldr	r4, [ip, #16]                                 <== NOT EXECUTED
3000d010:	e1540002 	cmp	r4, r2                                        <== NOT EXECUTED
3000d014:	8a000021 	bhi	3000d0a0 <_Watchdog_Insert+0x134>             <== NOT EXECUTED
3000d018:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
3000d01c:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
3000d020:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
                                                                      
     delta_interval -= after->delta_interval;                         
                                                                      
     _ISR_Flash( level );                                             
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
3000d024:	e5915008 	ldr	r5, [r1, #8]                                  <== NOT EXECUTED
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
3000d028:	e0642002 	rsb	r2, r4, r2                                    <== NOT EXECUTED
                                                                      
     _ISR_Flash( level );                                             
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
3000d02c:	e3550001 	cmp	r5, #1                                        <== NOT EXECUTED
3000d030:	1a000011 	bne	3000d07c <_Watchdog_Insert+0x110>             <== NOT EXECUTED
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
3000d034:	e5974000 	ldr	r4, [r7]                                      <== NOT EXECUTED
3000d038:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
3000d03c:	3a00001a 	bcc	3000d0ac <_Watchdog_Insert+0x140>             <== NOT EXECUTED
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
3000d040:	e3520000 	cmp	r2, #0                                        
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
  _Watchdog_Sync_count--;                                             
  _ISR_Enable( level );                                               
}                                                                     
3000d044:	e59cc000 	ldr	ip, [ip]                                      
                                                                      
  for ( after = _Watchdog_First( header ) ;                           
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
3000d048:	1affffec 	bne	3000d000 <_Watchdog_Insert+0x94>              
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
3000d04c:	e59c0004 	ldr	r0, [ip, #4]                                  
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
3000d050:	e59f4068 	ldr	r4, [pc, #104]	; 3000d0c0 <_Watchdog_Insert+0x154>
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
3000d054:	e590c000 	ldr	ip, [r0]                                      
3000d058:	e5944000 	ldr	r4, [r4]                                      
RTEMS_INLINE_ROUTINE void _Watchdog_Activate(                         
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_ACTIVE;                              
3000d05c:	e3a05002 	mov	r5, #2                                        
3000d060:	e5815008 	str	r5, [r1, #8]                                  
     }                                                                
  }                                                                   
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
3000d064:	e5812010 	str	r2, [r1, #16]                                 
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
3000d068:	e5810004 	str	r0, [r1, #4]                                  
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
3000d06c:	e5801000 	str	r1, [r0]                                      
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
3000d070:	e58c1004 	str	r1, [ip, #4]                                  
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
3000d074:	e581c000 	str	ip, [r1]                                      
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
3000d078:	e5814014 	str	r4, [r1, #20]                                 
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
3000d07c:	e5873000 	str	r3, [r7]                                      
  _Watchdog_Sync_count--;                                             
3000d080:	e5983000 	ldr	r3, [r8]                                      
3000d084:	e2433001 	sub	r3, r3, #1                                    
3000d088:	e5883000 	str	r3, [r8]                                      
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d08c:	e129f006 	msr	CPSR_fc, r6                                   
  _ISR_Enable( level );                                               
}                                                                     
3000d090:	e8bd01f0 	pop	{r4, r5, r6, r7, r8}                          
3000d094:	e12fff1e 	bx	lr                                             
3000d098:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
3000d09c:	eafffffb 	b	3000d090 <_Watchdog_Insert+0x124>               <== NOT EXECUTED
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
3000d0a0:	e0624004 	rsb	r4, r2, r4                                    <== NOT EXECUTED
3000d0a4:	e58c4010 	str	r4, [ip, #16]                                 <== NOT EXECUTED
       break;                                                         
3000d0a8:	eaffffe7 	b	3000d04c <_Watchdog_Insert+0xe0>                <== NOT EXECUTED
     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;                  
3000d0ac:	e5873000 	str	r3, [r7]                                      <== NOT EXECUTED
       goto restart;                                                  
3000d0b0:	eaffffbd 	b	3000cfac <_Watchdog_Insert+0x40>                <== NOT EXECUTED
                                                                      

3000e6f0 <_Watchdog_Report>: void _Watchdog_Report( const char *name, Watchdog_Control *watch ) {
3000e6f0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  printk(                                                             
3000e6f4:	e250c000 	subs	ip, r0, #0                                   <== NOT EXECUTED
3000e6f8:	e591000c 	ldr	r0, [r1, #12]                                 <== NOT EXECUTED
                                                                      
void _Watchdog_Report(                                                
  const char        *name,                                            
  Watchdog_Control  *watch                                            
)                                                                     
{                                                                     
3000e6fc:	e24dd014 	sub	sp, sp, #20                                   <== NOT EXECUTED
  printk(                                                             
3000e700:	e5913010 	ldr	r3, [r1, #16]                                 <== NOT EXECUTED
3000e704:	e88d0003 	stm	sp, {r0, r1}                                  <== NOT EXECUTED
3000e708:	e591e01c 	ldr	lr, [r1, #28]                                 <== NOT EXECUTED
3000e70c:	059fc02c 	ldreq	ip, [pc, #44]	; 3000e740 <_Watchdog_Report+0x50><== NOT EXECUTED
3000e710:	e58de008 	str	lr, [sp, #8]                                  <== NOT EXECUTED
3000e714:	e591e020 	ldr	lr, [r1, #32]                                 <== NOT EXECUTED
3000e718:	01a0200c 	moveq	r2, ip                                      <== NOT EXECUTED
3000e71c:	e58de00c 	str	lr, [sp, #12]                                 <== NOT EXECUTED
3000e720:	e5911024 	ldr	r1, [r1, #36]	; 0x24                          <== NOT EXECUTED
3000e724:	159f2018 	ldrne	r2, [pc, #24]	; 3000e744 <_Watchdog_Report+0x54><== NOT EXECUTED
3000e728:	e58d1010 	str	r1, [sp, #16]                                 <== NOT EXECUTED
3000e72c:	e59f0014 	ldr	r0, [pc, #20]	; 3000e748 <_Watchdog_Report+0x58><== NOT EXECUTED
3000e730:	e1a0100c 	mov	r1, ip                                        <== NOT EXECUTED
3000e734:	ebffe64f 	bl	30008078 <printk>                              <== NOT EXECUTED
    watch,                                                            
    watch->routine,                                                   
    watch->id,                                                        
    watch->user_data                                                  
  );                                                                  
}                                                                     
3000e738:	e28dd014 	add	sp, sp, #20                                   <== NOT EXECUTED
3000e73c:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000e678 <_Watchdog_Report_chain>: void _Watchdog_Report_chain( const char *name, Chain_Control *header ) {
3000e678:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
3000e67c:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000e680:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000e684:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3000e688:	e3863080 	orr	r3, r6, #128	; 0x80                           <== NOT EXECUTED
3000e68c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
3000e690:	e59f004c 	ldr	r0, [pc, #76]	; 3000e6e4 <_Watchdog_Report_chain+0x6c><== NOT EXECUTED
3000e694:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000e698:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000e69c:	ebffe675 	bl	30008078 <printk>                              <== NOT EXECUTED
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
3000e6a0:	e4947004 	ldr	r7, [r4], #4                                  <== NOT EXECUTED
  ISR_Level          level;                                           
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
3000e6a4:	e1570004 	cmp	r7, r4                                        <== NOT EXECUTED
3000e6a8:	0a00000a 	beq	3000e6d8 <_Watchdog_Report_chain+0x60>        <== NOT EXECUTED
            node != _Chain_Tail(header) ;                             
            node = node->next )                                       
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
3000e6ac:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000e6b0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000e6b4:	eb00000d 	bl	3000e6f0 <_Watchdog_Report>                    <== NOT EXECUTED
  _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 )                                       
3000e6b8:	e5977000 	ldr	r7, [r7]                                      <== NOT EXECUTED
  Chain_Node        *node;                                            
                                                                      
  _ISR_Disable( level );                                              
    printk( "Watchdog Chain: %s %p\n", name, header );                
    if ( !_Chain_Is_empty( header ) ) {                               
      for ( node = _Chain_First( header ) ;                           
3000e6bc:	e1570004 	cmp	r7, r4                                        <== NOT EXECUTED
3000e6c0:	1afffff9 	bne	3000e6ac <_Watchdog_Report_chain+0x34>        <== NOT EXECUTED
      {                                                               
        Watchdog_Control *watch = (Watchdog_Control *) node;          
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
3000e6c4:	e59f001c 	ldr	r0, [pc, #28]	; 3000e6e8 <_Watchdog_Report_chain+0x70><== NOT EXECUTED
3000e6c8:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000e6cc:	ebffe669 	bl	30008078 <printk>                              <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000e6d0:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
    } else {                                                          
      printk( "Chain is empty\n" );                                   
    }                                                                 
  _ISR_Enable( level );                                               
}                                                                     
3000e6d4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      
        _Watchdog_Report( NULL, watch );                              
      }                                                               
      printk( "== end of %s \n", name );                              
    } else {                                                          
      printk( "Chain is empty\n" );                                   
3000e6d8:	e59f000c 	ldr	r0, [pc, #12]	; 3000e6ec <_Watchdog_Report_chain+0x74><== NOT EXECUTED
3000e6dc:	ebffe665 	bl	30008078 <printk>                              <== NOT EXECUTED
3000e6e0:	eafffffa 	b	3000e6d0 <_Watchdog_Report_chain+0x58>          <== NOT EXECUTED
                                                                      

3000d1d4 <_Watchdog_Tickle>: */ void _Watchdog_Tickle( Chain_Control *header ) {
3000d1d4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
3000d1d8:	e1a06000 	mov	r6, r0                                        
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000d1dc:	e10f7000 	mrs	r7, CPSR                                      
3000d1e0:	e3873080 	orr	r3, r7, #128	; 0x80                           
3000d1e4:	e129f003 	msr	CPSR_fc, r3                                   
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
3000d1e8:	e1a05000 	mov	r5, r0                                        
3000d1ec:	e4953004 	ldr	r3, [r5], #4                                  
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( _Chain_Is_empty( header ) )                                    
3000d1f0:	e1530005 	cmp	r3, r5                                        
3000d1f4:	0a000007 	beq	3000d218 <_Watchdog_Tickle+0x44>              
   * to be inserted has already had its delta_interval adjusted to 0, and
   * so is added to the head of the chain with a delta_interval of 0. 
   *                                                                  
   * Steven Johnson - 12/2005 (gcc-3.2.3 -O3 on powerpc)              
   */                                                                 
  if (the_watchdog->delta_interval != 0) {                            
3000d1f8:	e5931010 	ldr	r1, [r3, #16]                                 
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(               
  Chain_Control *header                                               
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) _Chain_First( header ) );             
3000d1fc:	e1a04003 	mov	r4, r3                                        
3000d200:	e3510000 	cmp	r1, #0                                        
3000d204:	0a000015 	beq	3000d260 <_Watchdog_Tickle+0x8c>              
    the_watchdog->delta_interval--;                                   
3000d208:	e2411001 	sub	r1, r1, #1                                    
    if ( the_watchdog->delta_interval != 0 )                          
3000d20c:	e3510000 	cmp	r1, #0                                        
   * so is added to the head of the chain with a delta_interval of 0. 
   *                                                                  
   * Steven Johnson - 12/2005 (gcc-3.2.3 -O3 on powerpc)              
   */                                                                 
  if (the_watchdog->delta_interval != 0) {                            
    the_watchdog->delta_interval--;                                   
3000d210:	e5831010 	str	r1, [r3, #16]                                 
    if ( the_watchdog->delta_interval != 0 )                          
3000d214:	0a000011 	beq	3000d260 <_Watchdog_Tickle+0x8c>              
   * See the comment in watchdoginsert.c and watchdogadjust.c         
   * about why it's safe not to declare header a pointer to           
   * volatile data - till, 2003/7                                     
   */                                                                 
                                                                      
  _ISR_Disable( level );                                              
3000d218:	e1a02007 	mov	r2, r7                                        
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d21c:	e129f002 	msr	CPSR_fc, r2                                   
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
3000d220:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
     _ISR_Enable( level );                                            
                                                                      
     switch( watchdog_state ) {                                       
       case WATCHDOG_ACTIVE:                                          
         (*the_watchdog->routine)(                                    
3000d224:	e5940020 	ldr	r0, [r4, #32]                                 <== NOT EXECUTED
3000d228:	e5941024 	ldr	r1, [r4, #36]	; 0x24                          <== NOT EXECUTED
3000d22c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000d230:	e594f01c 	ldr	pc, [r4, #28]                                 <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000d234:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3000d238:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3000d23c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
                                                                      
leave:                                                                
   _ISR_Enable(level);                                                
}                                                                     
3000d240:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
3000d244:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
             (the_watchdog->delta_interval == 0) );                   
3000d248:	e1530005 	cmp	r3, r5                                        <== NOT EXECUTED
3000d24c:	e1a04003 	mov	r4, r3                                        <== NOT EXECUTED
3000d250:	0afffff1 	beq	3000d21c <_Watchdog_Tickle+0x48>              <== NOT EXECUTED
     }                                                                
                                                                      
     _ISR_Disable( level );                                           
                                                                      
     the_watchdog = _Watchdog_First( header );                        
   } while ( !_Chain_Is_empty( header ) &&                            
3000d254:	e5933010 	ldr	r3, [r3, #16]                                 <== NOT EXECUTED
3000d258:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000d25c:	1affffee 	bne	3000d21c <_Watchdog_Tickle+0x48>              <== NOT EXECUTED
    if ( the_watchdog->delta_interval != 0 )                          
      goto leave;                                                     
  }                                                                   
                                                                      
  do {                                                                
     watchdog_state = _Watchdog_Remove( the_watchdog );               
3000d260:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000d264:	ebffffaf 	bl	3000d128 <_Watchdog_Remove>                    <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000d268:	e129f007 	msr	CPSR_fc, r7                                   <== NOT EXECUTED
                                                                      
     _ISR_Enable( level );                                            
                                                                      
     switch( watchdog_state ) {                                       
3000d26c:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000d270:	1affffef 	bne	3000d234 <_Watchdog_Tickle+0x60>              <== NOT EXECUTED
3000d274:	eaffffea 	b	3000d224 <_Watchdog_Tickle+0x50>                <== NOT EXECUTED
                                                                      

3000d300 <_Workspace_Allocate_or_fatal_error>:
3000d300:	e3a02000 	mov	r2, #0                                        
 *  _Workspace_Allocate_or_fatal_error                                
 */                                                                   
void *_Workspace_Allocate_or_fatal_error(                             
  size_t      size                                                    
)                                                                     
{                                                                     
3000d304:	e1a01000 	mov	r1, r0                                        
3000d308:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
3000d30c:	e59f0018 	ldr	r0, [pc, #24]	; 3000d32c <_Workspace_Allocate_or_fatal_error+0x2c>
3000d310:	e1a03002 	mov	r3, r2                                        
3000d314:	eb000ab2 	bl	3000fde4 <_Heap_Allocate_aligned_with_boundary>
      __builtin_return_address( 1 ),                                  
      memory                                                          
    );                                                                
  #endif                                                              
                                                                      
  if ( memory == NULL )                                               
3000d318:	e3500000 	cmp	r0, #0                                        
3000d31c:	149df004 	popne	{pc}		; (ldrne pc, [sp], #4)                
    _Internal_error_Occurred(                                         
3000d320:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000d324:	e3a02003 	mov	r2, #3                                        <== NOT EXECUTED
3000d328:	ebfff6d0 	bl	3000ae70 <_Internal_error_Occurred>            <== NOT EXECUTED
                                                                      

3000d278 <_Workspace_Handler_initialization>: * _Workspace_Handler_initialization */ void _Workspace_Handler_initialization(void) { uintptr_t memory_available = 0; void *starting_address = Configuration.work_space_start;
3000d278:	e59f3050 	ldr	r3, [pc, #80]	; 3000d2d0 <_Workspace_Handler_initialization+0x58>
                                                                      
/*                                                                    
 *  _Workspace_Handler_initialization                                 
 */                                                                   
void _Workspace_Handler_initialization(void)                          
{                                                                     
3000d27c:	e92d4030 	push	{r4, r5, lr}                                 
  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 )                           
3000d280:	e5d32028 	ldrb	r2, [r3, #40]	; 0x28                         
 *  _Workspace_Handler_initialization                                 
 */                                                                   
void _Workspace_Handler_initialization(void)                          
{                                                                     
  uintptr_t memory_available = 0;                                     
  void *starting_address = Configuration.work_space_start;            
3000d284:	e5935000 	ldr	r5, [r3]                                      
  uintptr_t size = Configuration.work_space_size;                     
                                                                      
  if ( Configuration.do_zero_of_workspace )                           
3000d288:	e3520000 	cmp	r2, #0                                        
 */                                                                   
void _Workspace_Handler_initialization(void)                          
{                                                                     
  uintptr_t memory_available = 0;                                     
  void *starting_address = Configuration.work_space_start;            
  uintptr_t size = Configuration.work_space_size;                     
3000d28c:	e5934004 	ldr	r4, [r3, #4]                                  
                                                                      
  if ( Configuration.do_zero_of_workspace )                           
3000d290:	1a000009 	bne	3000d2bc <_Workspace_Handler_initialization+0x44>
   memset( starting_address, 0, size );                               
                                                                      
  memory_available = _Heap_Initialize(                                
3000d294:	e59f0038 	ldr	r0, [pc, #56]	; 3000d2d4 <_Workspace_Handler_initialization+0x5c>
3000d298:	e1a01005 	mov	r1, r5                                        
3000d29c:	e1a02004 	mov	r2, r4                                        
3000d2a0:	e3a03008 	mov	r3, #8                                        
3000d2a4:	ebfff656 	bl	3000ac04 <_Heap_Initialize>                    
    starting_address,                                                 
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
3000d2a8:	e3500000 	cmp	r0, #0                                        
3000d2ac:	18bd8030 	popne	{r4, r5, pc}                                
    _Internal_error_Occurred(                                         
3000d2b0:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000d2b4:	e3a02002 	mov	r2, #2                                        <== NOT EXECUTED
3000d2b8:	ebfff6ec 	bl	3000ae70 <_Internal_error_Occurred>            <== NOT EXECUTED
  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 );                               
3000d2bc:	e1a00005 	mov	r0, r5                                        
3000d2c0:	e3a01000 	mov	r1, #0                                        
3000d2c4:	e1a02004 	mov	r2, r4                                        
3000d2c8:	eb0015cf 	bl	30012a0c <memset>                              
3000d2cc:	eafffff0 	b	3000d294 <_Workspace_Handler_initialization+0x1c>
                                                                      

30019090 <_execve>: int _execve( const char *path __attribute__((unused)), char *const argv[] __attribute__((unused)), char *const envp[] __attribute__((unused)) ) {
30019090:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30019094:	ebffe650 	bl	300129dc <__errno>                             <== NOT EXECUTED
30019098:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
3001909c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300190a0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300190a4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30026bfc <_kill_r>: struct _reent *ptr, pid_t pid, int sig ) { return killinfo( pid, sig, NULL );
30026bfc:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
30026c00:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
30026c04:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
30026c08:	ea00002c 	b	30026cc0 <killinfo>                             <== NOT EXECUTED
                                                                      

30009cfc <adjtime>: int adjtime( struct timeval *delta, struct timeval *olddelta ) {
30009cfc:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  long   adjustment;                                                  
                                                                      
  /*                                                                  
   * Simple validations                                               
   */                                                                 
  if ( !delta )                                                       
30009d00:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
                                                                      
int  adjtime(                                                         
  struct timeval *delta,                                              
  struct timeval *olddelta                                            
)                                                                     
{                                                                     
30009d04:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
30009d08:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  long   adjustment;                                                  
                                                                      
  /*                                                                  
   * Simple validations                                               
   */                                                                 
  if ( !delta )                                                       
30009d0c:	0a000042 	beq	30009e1c <adjtime+0x120>                      <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND )                
30009d10:	e5942004 	ldr	r2, [r4, #4]                                  <== NOT EXECUTED
30009d14:	e59f3114 	ldr	r3, [pc, #276]	; 30009e30 <adjtime+0x134>     <== NOT EXECUTED
30009d18:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
30009d1c:	8a00003e 	bhi	30009e1c <adjtime+0x120>                      <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( olddelta ) {                                                   
30009d20:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    olddelta->tv_sec  = 0;                                            
30009d24:	13a03000 	movne	r3, #0                                      <== NOT EXECUTED
30009d28:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
    olddelta->tv_usec = 0;                                            
30009d2c:	15813004 	strne	r3, [r1, #4]                                <== NOT EXECUTED
  }                                                                   
                                                                      
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
30009d30:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
  if ( delta->tv_usec >= TOD_MICROSECONDS_PER_SECOND )                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( olddelta ) {                                                   
    olddelta->tv_sec  = 0;                                            
    olddelta->tv_usec = 0;                                            
30009d34:	15942004 	ldrne	r2, [r4, #4]                                <== NOT EXECUTED
  }                                                                   
                                                                      
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
30009d38:	e0631283 	rsb	r1, r3, r3, lsl #5                            <== NOT EXECUTED
30009d3c:	e0611301 	rsb	r1, r1, r1, lsl #6                            <== NOT EXECUTED
30009d40:	e0833181 	add	r3, r3, r1, lsl #3                            <== NOT EXECUTED
  adjustment += delta->tv_usec;                                       
                                                                      
  /* too small to account for */                                      
  if ( adjustment < rtems_configuration_get_microseconds_per_tick() ) 
30009d44:	e59f10e8 	ldr	r1, [pc, #232]	; 30009e34 <adjtime+0x138>     <== NOT EXECUTED
    olddelta->tv_usec = 0;                                            
  }                                                                   
                                                                      
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
  adjustment += delta->tv_usec;                                       
30009d48:	e0822303 	add	r2, r2, r3, lsl #6                            <== NOT EXECUTED
                                                                      
  /* too small to account for */                                      
  if ( adjustment < rtems_configuration_get_microseconds_per_tick() ) 
30009d4c:	e591000c 	ldr	r0, [r1, #12]                                 <== NOT EXECUTED
30009d50:	e1520000 	cmp	r2, r0                                        <== NOT EXECUTED
    return 0;                                                         
30009d54:	33a00000 	movcc	r0, #0                                      <== NOT EXECUTED
  /* convert delta to microseconds */                                 
  adjustment  = (delta->tv_sec * TOD_MICROSECONDS_PER_SECOND);        
  adjustment += delta->tv_usec;                                       
                                                                      
  /* too small to account for */                                      
  if ( adjustment < rtems_configuration_get_microseconds_per_tick() ) 
30009d58:	2a000001 	bcs	30009d64 <adjtime+0x68>                       <== NOT EXECUTED
  /* set the user's output */                                         
  if ( olddelta )                                                     
    *olddelta = *delta;                                               
                                                                      
  return 0;                                                           
}                                                                     
30009d5c:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
30009d60:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009d64:	e59f30cc 	ldr	r3, [pc, #204]	; 30009e38 <adjtime+0x13c>     <== NOT EXECUTED
30009d68:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30009d6c:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30009d70:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
   * This prevents context switches while we are adjusting the TOD    
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
30009d74:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
30009d78:	eb0005f1 	bl	3000b544 <_TOD_Get>                            <== NOT EXECUTED
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
30009d7c:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
30009d80:	e59d0004 	ldr	r0, [sp, #4]                                  <== NOT EXECUTED
30009d84:	e0631283 	rsb	r1, r3, r3, lsl #5                            <== NOT EXECUTED
30009d88:	e0833101 	add	r3, r3, r1, lsl #2                            <== NOT EXECUTED
30009d8c:	e0803183 	add	r3, r0, r3, lsl #3                            <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
30009d90:	e5942000 	ldr	r2, [r4]                                      <== NOT EXECUTED
30009d94:	e59d0000 	ldr	r0, [sp]                                      <== NOT EXECUTED
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
30009d98:	e59f109c 	ldr	r1, [pc, #156]	; 30009e3c <adjtime+0x140>     <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
30009d9c:	e0802002 	add	r2, r0, r2                                    <== NOT EXECUTED
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
30009da0:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
   * This prevents context switches while we are adjusting the TOD    
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
    _TOD_Get( &ts );                                                  
30009da4:	e1a0600d 	mov	r6, sp                                        <== NOT EXECUTED
                                                                      
    ts.tv_sec  += delta->tv_sec;                                      
30009da8:	e88d000c 	stm	sp, {r2, r3}                                  <== NOT EXECUTED
    ts.tv_nsec += delta->tv_usec * TOD_NANOSECONDS_PER_MICROSECOND;   
                                                                      
    /* if adjustment is too much positive */                          
    while ( ts.tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {              
30009dac:	9a000006 	bls	30009dcc <adjtime+0xd0>                       <== NOT EXECUTED
      ts.tv_nsec -= TOD_NANOSECONDS_PER_SECOND;                       
30009db0:	e2833331 	add	r3, r3, #-1006632960	; 0xc4000000             <== NOT EXECUTED
30009db4:	e2833865 	add	r3, r3, #6619136	; 0x650000                   <== NOT EXECUTED
30009db8:	e2833c36 	add	r3, r3, #13824	; 0x3600                       <== NOT EXECUTED
                                                                      
    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 ) {              
30009dbc:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
 *  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(                                                         
30009dc0:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
                                                                      
    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 ) {              
30009dc4:	8afffff9 	bhi	30009db0 <adjtime+0xb4>                       <== NOT EXECUTED
30009dc8:	e88d000c 	stm	sp, {r2, r3}                                  <== NOT EXECUTED
      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) ) {       
30009dcc:	e59f106c 	ldr	r1, [pc, #108]	; 30009e40 <adjtime+0x144>     <== NOT EXECUTED
30009dd0:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
30009dd4:	8a000007 	bhi	30009df8 <adjtime+0xfc>                       <== NOT EXECUTED
30009dd8:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
30009ddc:	e28335ee 	add	r3, r3, #998244352	; 0x3b800000               <== NOT EXECUTED
30009de0:	e283396b 	add	r3, r3, #1753088	; 0x1ac000                   <== NOT EXECUTED
30009de4:	e2833c0a 	add	r3, r3, #2560	; 0xa00                         <== NOT EXECUTED
      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) ) {       
30009de8:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
 *  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(                                                         
30009dec:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
      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) ) {       
30009df0:	9afffff9 	bls	30009ddc <adjtime+0xe0>                       <== NOT EXECUTED
30009df4:	e88d000c 	stm	sp, {r2, r3}                                  <== NOT EXECUTED
      ts.tv_nsec += TOD_NANOSECONDS_PER_SECOND;                       
      ts.tv_sec--;                                                    
    }                                                                 
                                                                      
    _TOD_Set( &ts );                                                  
30009df8:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
30009dfc:	eb0005f8 	bl	3000b5e4 <_TOD_Set>                            <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
30009e00:	eb000bbc 	bl	3000ccf8 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
30009e04:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
    *olddelta = *delta;                                               
                                                                      
  return 0;                                                           
30009e08:	01a00005 	moveq	r0, r5                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
    *olddelta = *delta;                                               
30009e0c:	18940018 	ldmne	r4, {r3, r4}                                <== NOT EXECUTED
                                                                      
  return 0;                                                           
30009e10:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  /* set the user's output */                                         
  if ( olddelta )                                                     
    *olddelta = *delta;                                               
30009e14:	18850018 	stmne	r5, {r3, r4}                                <== NOT EXECUTED
30009e18:	eaffffcf 	b	30009d5c <adjtime+0x60>                         <== NOT EXECUTED
   */                                                                 
  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 );                   
30009e1c:	eb0023eb 	bl	30012dd0 <__errno>                             <== NOT EXECUTED
30009e20:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009e24:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009e28:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009e2c:	eaffffca 	b	30009d5c <adjtime+0x60>                         <== NOT EXECUTED
                                                                      

3000a630 <aio_cancel>: * operation(s) cannot be canceled */ int aio_cancel(int fildes, struct aiocb *aiocbp) {
3000a630:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
3000a634:	e59f41b8 	ldr	r4, [pc, #440]	; 3000a7f4 <aio_cancel+0x1c4>  <== NOT EXECUTED
 *                          operation(s) cannot be canceled           
 */                                                                   
                                                                      
                                                                      
int aio_cancel(int fildes, struct aiocb  *aiocbp)                     
{                                                                     
3000a638:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
3000a63c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
 *                          operation(s) cannot be canceled           
 */                                                                   
                                                                      
                                                                      
int aio_cancel(int fildes, struct aiocb  *aiocbp)                     
{                                                                     
3000a640:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  rtems_aio_request_chain *r_chain;                                   
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
3000a644:	eb000459 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
3000a648:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000a64c:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000a650:	eb001bdc 	bl	300115c8 <fcntl>                               <== NOT EXECUTED
3000a654:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a658:	ba00005e 	blt	3000a7d8 <aio_cancel+0x1a8>                   <== NOT EXECUTED
    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) {                                               
3000a65c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000a660:	0a000032 	beq	3000a730 <aio_cancel+0x100>                   <== NOT EXECUTED
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
    return AIO_CANCELED;                                              
  } else {                                                            
    AIO_printf ("Cancel request\n");                                  
                                                                      
    if (aiocbp->aio_fildes != fildes) {                               
3000a664:	e5957000 	ldr	r7, [r5]                                      <== NOT EXECUTED
3000a668:	e1570006 	cmp	r7, r6                                        <== NOT EXECUTED
3000a66c:	1a000028 	bne	3000a714 <aio_cancel+0xe4>                    <== NOT EXECUTED
      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);
3000a670:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
3000a674:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000a678:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000a67c:	eb0000be 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
    if (r_chain == NULL) {                                            
3000a680:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000a684:	0a00000c 	beq	3000a6bc <aio_cancel+0x8c>                    <== NOT EXECUTED
        return AIO_ALLDONE;                                           
      }                                                               
    }                                                                 
      AIO_printf ("Request on [WQ]\n");                               
                                                                      
      pthread_mutex_lock (&r_chain->mutex);                           
3000a688:	e286801c 	add	r8, r6, #28                                   <== NOT EXECUTED
3000a68c:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000a690:	eb000446 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
      result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);        
3000a694:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000a698:	e2860008 	add	r0, r6, #8                                    <== NOT EXECUTED
3000a69c:	eb0001cd 	bl	3000add8 <rtems_aio_remove_req>                <== NOT EXECUTED
3000a6a0:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
      pthread_mutex_unlock (&r_chain->mutex);                         
3000a6a4:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000a6a8:	eb000461 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
      pthread_mutex_unlock (&aio_request_queue.mutex);                
3000a6ac:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a6b0:	eb00045f 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
      return result;                                                  
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
3000a6b4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a6b8:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
      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)) {      
3000a6bc:	e5942054 	ldr	r2, [r4, #84]	; 0x54                          <== NOT EXECUTED
3000a6c0:	e2843058 	add	r3, r4, #88	; 0x58                            <== NOT EXECUTED
3000a6c4:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000a6c8:	0a00000d 	beq	3000a704 <aio_cancel+0xd4>                    <== NOT EXECUTED
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
3000a6cc:	e2840054 	add	r0, r4, #84	; 0x54                            <== NOT EXECUTED
3000a6d0:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000a6d4:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
3000a6d8:	eb0000a7 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
        if (r_chain == NULL) {                                        
3000a6dc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a6e0:	0a00000b 	beq	3000a714 <aio_cancel+0xe4>                    <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one (EINVAL);              
        }                                                             
                                                                      
        AIO_printf ("Request on [IQ]\n");                             
                                                                      
        result = rtems_aio_remove_req (&r_chain->perfd, aiocbp);      
3000a6e4:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000a6e8:	e2800008 	add	r0, r0, #8                                    <== NOT EXECUTED
3000a6ec:	eb0001b9 	bl	3000add8 <rtems_aio_remove_req>                <== NOT EXECUTED
3000a6f0:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
        pthread_mutex_unlock (&aio_request_queue.mutex);              
3000a6f4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a6f8:	eb00044d 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_unlock (&aio_request_queue.mutex);                
      return result;                                                  
  }                                                                   
  return AIO_ALLDONE;                                                 
}                                                                     
3000a6fc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a700:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
        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);              
3000a704:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a708:	eb000449 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
        return AIO_ALLDONE;                                           
3000a70c:	e3a05002 	mov	r5, #2                                        <== NOT EXECUTED
3000a710:	eaffffe7 	b	3000a6b4 <aio_cancel+0x84>                      <== 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);            
3000a714:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a718:	eb000445 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one (EINVAL);              
3000a71c:	eb002977 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000a720:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a724:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a728:	e3e05000 	mvn	r5, #0                                        <== NOT EXECUTED
3000a72c:	eaffffe0 	b	3000a6b4 <aio_cancel+0x84>                      <== NOT EXECUTED
                                                                      
  /* 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);
3000a730:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
3000a734:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000a738:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
3000a73c:	eb00008e 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
    if (r_chain == NULL) {                                            
3000a740:	e2507000 	subs	r7, r0, #0                                   <== NOT EXECUTED
3000a744:	0a00000b 	beq	3000a778 <aio_cancel+0x148>                   <== NOT EXECUTED
      return AIO_ALLDONE;                                             
    }                                                                 
                                                                      
    AIO_printf ("Request chain on [WQ]\n");                           
                                                                      
    pthread_mutex_lock (&r_chain->mutex);                             
3000a748:	e287601c 	add	r6, r7, #28                                   <== NOT EXECUTED
3000a74c:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000a750:	eb000416 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
3000a754:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000a758:	eb000a7c 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
    rtems_chain_extract (&r_chain->next_fd);                          
    rtems_aio_remove_fd (r_chain);                                    
3000a75c:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000a760:	eb000188 	bl	3000ad88 <rtems_aio_remove_fd>                 <== NOT EXECUTED
    pthread_mutex_unlock (&r_chain->mutex);                           
3000a764:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000a768:	eb000431 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
    pthread_mutex_unlock (&aio_request_queue.mutex);                  
3000a76c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a770:	eb00042f 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
    return AIO_CANCELED;                                              
3000a774:	eaffffce 	b	3000a6b4 <aio_cancel+0x84>                      <== NOT EXECUTED
                                                                      
    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)) {      
3000a778:	e5942054 	ldr	r2, [r4, #84]	; 0x54                          <== NOT EXECUTED
3000a77c:	e2843058 	add	r3, r4, #88	; 0x58                            <== NOT EXECUTED
3000a780:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000a784:	0affffde 	beq	3000a704 <aio_cancel+0xd4>                    <== NOT EXECUTED
        r_chain = rtems_aio_search_fd (&aio_request_queue.idle_req, fildes, 0);
3000a788:	e2840054 	add	r0, r4, #84	; 0x54                            <== NOT EXECUTED
3000a78c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000a790:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000a794:	eb000078 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
        if (r_chain == NULL) {                                        
3000a798:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000a79c:	0affffd8 	beq	3000a704 <aio_cancel+0xd4>                    <== NOT EXECUTED
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
        pthread_mutex_destroy (&r_chain->mutex);                      
3000a7a0:	e285601c 	add	r6, r5, #28                                   <== NOT EXECUTED
3000a7a4:	eb000a69 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
        }                                                             
                                                                      
        AIO_printf ("Request chain on [IQ]\n");                       
                                                                      
        rtems_chain_extract (&r_chain->next_fd);                      
        rtems_aio_remove_fd (r_chain);                                
3000a7a8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a7ac:	eb000175 	bl	3000ad88 <rtems_aio_remove_fd>                 <== NOT EXECUTED
        pthread_mutex_destroy (&r_chain->mutex);                      
3000a7b0:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000a7b4:	eb00035a 	bl	3000b524 <pthread_mutex_destroy>               <== NOT EXECUTED
        pthread_cond_destroy (&r_chain->mutex);                       
3000a7b8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000a7bc:	eb000282 	bl	3000b1cc <pthread_cond_destroy>                <== NOT EXECUTED
        free (r_chain);                                               
3000a7c0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a7c4:	ebfff27f 	bl	300071c8 <free>                                <== NOT EXECUTED
                                                                      
        pthread_mutex_unlock (&aio_request_queue.mutex);              
3000a7c8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a7cc:	eb000418 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
        return AIO_CANCELED;                                          
3000a7d0:	e1a05007 	mov	r5, r7                                        <== NOT EXECUTED
3000a7d4:	eaffffb6 	b	3000a6b4 <aio_cancel+0x84>                      <== NOT EXECUTED
  int result;                                                         
                                                                      
  pthread_mutex_lock (&aio_request_queue.mutex);                      
                                                                      
  if (fcntl (fildes, F_GETFD) < 0) {                                  
    pthread_mutex_unlock(&aio_request_queue.mutex);                   
3000a7d8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a7dc:	eb000414 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one (EBADF);                     
3000a7e0:	eb002946 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000a7e4:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000a7e8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a7ec:	e3e05000 	mvn	r5, #0                                        <== NOT EXECUTED
3000a7f0:	eaffffaf 	b	3000a6b4 <aio_cancel+0x84>                      <== NOT EXECUTED
                                                                      

3000a7f8 <aio_error>: int aio_error (const struct aiocb *aiocbp) { return aiocbp->error_code; }
3000a7f8:	e5900030 	ldr	r0, [r0, #48]	; 0x30                          <== NOT EXECUTED
3000a7fc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a800 <aio_fsync>: ) { rtems_aio_request *req; int mode; if (op != O_SYNC)
3000a800:	e3500a02 	cmp	r0, #8192	; 0x2000                            <== NOT EXECUTED
                                                                      
int aio_fsync(                                                        
  int            op,                                                  
  struct aiocb  *aiocbp                                               
)                                                                     
{                                                                     
3000a804:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000a808:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
3000a80c:	13a05016 	movne	r5, #22                                     <== NOT EXECUTED
)                                                                     
{                                                                     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  if (op != O_SYNC)                                                   
3000a810:	1a000011 	bne	3000a85c <aio_fsync+0x5c>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
3000a814:	e5910000 	ldr	r0, [r1]                                      <== NOT EXECUTED
3000a818:	e3a01003 	mov	r1, #3                                        <== NOT EXECUTED
3000a81c:	eb001b69 	bl	300115c8 <fcntl>                               <== NOT EXECUTED
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
3000a820:	e2000003 	and	r0, r0, #3                                    <== NOT EXECUTED
3000a824:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
3000a828:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
3000a82c:	83a05009 	movhi	r5, #9                                      <== NOT EXECUTED
                                                                      
  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)))
3000a830:	8a000009 	bhi	3000a85c <aio_fsync+0x5c>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
3000a834:	e3a00018 	mov	r0, #24                                       <== NOT EXECUTED
3000a838:	ebfff401 	bl	30007844 <malloc>                              <== NOT EXECUTED
  if (req == NULL)                                                    
3000a83c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
3000a840:	0a000004 	beq	3000a858 <aio_fsync+0x58>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
3000a844:	e5834014 	str	r4, [r3, #20]                                 <== NOT EXECUTED
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
3000a848:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
3000a84c:	e584302c 	str	r3, [r4, #44]	; 0x2c                          <== NOT EXECUTED
                                                                      
  return rtems_aio_enqueue (req);                                     
                                                                      
}                                                                     
3000a850:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
3000a854:	ea000179 	b	3000ae40 <rtems_aio_enqueue>                    <== NOT EXECUTED
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
3000a858:	e3a0500b 	mov	r5, #11                                       <== NOT EXECUTED
3000a85c:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000a860:	e5845030 	str	r5, [r4, #48]	; 0x30                          <== NOT EXECUTED
3000a864:	e5843034 	str	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
3000a868:	eb002924 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000a86c:	e5805000 	str	r5, [r0]                                      <== NOT EXECUTED
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_SYNC;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
                                                                      
}                                                                     
3000a870:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a874:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000b024 <aio_read>: * 0 - otherwise */ int aio_read (struct aiocb *aiocbp) {
3000b024:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
3000b028:	e3a01003 	mov	r1, #3                                        <== NOT EXECUTED
 *         0 - otherwise                                              
 */                                                                   
                                                                      
int                                                                   
aio_read (struct aiocb *aiocbp)                                       
{                                                                     
3000b02c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
3000b030:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
3000b034:	eb001963 	bl	300115c8 <fcntl>                               <== NOT EXECUTED
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
3000b038:	e2000003 	and	r0, r0, #3                                    <== NOT EXECUTED
3000b03c:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000b040:	13500000 	cmpne	r0, #0                                      <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
3000b044:	13a05009 	movne	r5, #9                                      <== NOT EXECUTED
{                                                                     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  if (!(((mode & O_ACCMODE) == O_RDONLY) || ((mode & O_ACCMODE) == O_RDWR)))
3000b048:	1a00000f 	bne	3000b08c <aio_read+0x68>                      <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
3000b04c:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000b050:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b054:	1a000013 	bne	3000b0a8 <aio_read+0x84>                      <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
3000b058:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
3000b05c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b060:	ba000010 	blt	3000b0a8 <aio_read+0x84>                      <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
3000b064:	e3a00018 	mov	r0, #24                                       <== NOT EXECUTED
3000b068:	ebfff1f5 	bl	30007844 <malloc>                              <== NOT EXECUTED
  if (req == NULL)                                                    
3000b06c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
3000b070:	0a000004 	beq	3000b088 <aio_read+0x64>                      <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
3000b074:	e5834014 	str	r4, [r3, #20]                                 <== NOT EXECUTED
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
3000b078:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000b07c:	e584302c 	str	r3, [r4, #44]	; 0x2c                          <== NOT EXECUTED
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
3000b080:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
3000b084:	eaffff6d 	b	3000ae40 <rtems_aio_enqueue>                    <== NOT EXECUTED
  if (aiocbp->aio_offset < 0)                                         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
3000b088:	e3a0500b 	mov	r5, #11                                       <== NOT EXECUTED
3000b08c:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000b090:	e5845030 	str	r5, [r4, #48]	; 0x30                          <== NOT EXECUTED
3000b094:	e5843034 	str	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
3000b098:	eb002718 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000b09c:	e5805000 	str	r5, [r0]                                      <== NOT EXECUTED
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_READ;                             
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
3000b0a0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000b0a4:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  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);            
3000b0a8:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
3000b0ac:	eafffff6 	b	3000b08c <aio_read+0x68>                        <== NOT EXECUTED
                                                                      

3000b0b0 <aio_return>: ssize_t aio_return (const struct aiocb *aiocbp) { return aiocbp->return_value; }
3000b0b0:	e5900034 	ldr	r0, [r0, #52]	; 0x34                          <== NOT EXECUTED
3000b0b4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30009918 <aio_suspend>: int aio_suspend( const struct aiocb * const list[] __attribute__((unused)), int nent __attribute__((unused)), const struct timespec *timeout __attribute__((unused)) ) {
30009918:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
3000991c:	eb00242e 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009920:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009924:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009928:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000992c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000b0b8 <aio_write>: * 0 - otherwise */ int aio_write (struct aiocb *aiocbp) {
3000b0b8:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
3000b0bc:	e3a01003 	mov	r1, #3                                        <== NOT EXECUTED
 *         0 - otherwise                                              
 */                                                                   
                                                                      
int                                                                   
aio_write (struct aiocb *aiocbp)                                      
{                                                                     
3000b0c0:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
3000b0c4:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
3000b0c8:	eb00193e 	bl	300115c8 <fcntl>                               <== NOT EXECUTED
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
3000b0cc:	e2000003 	and	r0, r0, #3                                    <== NOT EXECUTED
3000b0d0:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
3000b0d4:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
3000b0d8:	83a05009 	movhi	r5, #9                                      <== NOT EXECUTED
{                                                                     
  rtems_aio_request *req;                                             
  int mode;                                                           
                                                                      
  mode = fcntl (aiocbp->aio_fildes, F_GETFL);                         
  if (!(((mode & O_ACCMODE) == O_WRONLY) || ((mode & O_ACCMODE) == O_RDWR)))
3000b0dc:	8a00000f 	bhi	3000b120 <aio_write+0x68>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EBADF, aiocbp);             
                                                                      
  if (aiocbp->aio_reqprio < 0 || aiocbp->aio_reqprio > AIO_PRIO_DELTA_MAX)
3000b0e0:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000b0e4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b0e8:	1a000013 	bne	3000b13c <aio_write+0x84>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  if (aiocbp->aio_offset < 0)                                         
3000b0ec:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
3000b0f0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b0f4:	ba000010 	blt	3000b13c <aio_write+0x84>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
3000b0f8:	e3a00018 	mov	r0, #24                                       <== NOT EXECUTED
3000b0fc:	ebfff1d0 	bl	30007844 <malloc>                              <== NOT EXECUTED
  if (req == NULL)                                                    
3000b100:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
3000b104:	0a000004 	beq	3000b11c <aio_write+0x64>                     <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
3000b108:	e5834014 	str	r4, [r3, #20]                                 <== NOT EXECUTED
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
3000b10c:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
3000b110:	e584302c 	str	r3, [r4, #44]	; 0x2c                          <== NOT EXECUTED
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
3000b114:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
3000b118:	eaffff48 	b	3000ae40 <rtems_aio_enqueue>                    <== NOT EXECUTED
  if (aiocbp->aio_offset < 0)                                         
    rtems_aio_set_errno_return_minus_one (EINVAL, aiocbp);            
                                                                      
  req = malloc (sizeof (rtems_aio_request));                          
  if (req == NULL)                                                    
    rtems_aio_set_errno_return_minus_one (EAGAIN, aiocbp);            
3000b11c:	e3a0500b 	mov	r5, #11                                       <== NOT EXECUTED
3000b120:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000b124:	e5845030 	str	r5, [r4, #48]	; 0x30                          <== NOT EXECUTED
3000b128:	e5843034 	str	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
3000b12c:	eb0026f3 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000b130:	e5805000 	str	r5, [r0]                                      <== NOT EXECUTED
                                                                      
  req->aiocbp = aiocbp;                                               
  req->aiocbp->aio_lio_opcode = LIO_WRITE;                            
                                                                      
  return rtems_aio_enqueue (req);                                     
}                                                                     
3000b134:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000b138:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  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);            
3000b13c:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
3000b140:	eafffff6 	b	3000b120 <aio_write+0x68>                       <== NOT EXECUTED
                                                                      

3000bb84 <alarm>: } unsigned int alarm( unsigned int seconds ) {
3000bb84:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
3000bb88:	e59f4080 	ldr	r4, [pc, #128]	; 3000bc10 <alarm+0x8c>        <== NOT EXECUTED
}                                                                     
                                                                      
unsigned int alarm(                                                   
  unsigned int seconds                                                
)                                                                     
{                                                                     
3000bb8c:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
3000bb90:	e594601c 	ldr	r6, [r4, #28]                                 <== NOT EXECUTED
3000bb94:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
3000bb98:	0a00000c 	beq	3000bbd0 <alarm+0x4c>                         <== NOT EXECUTED
    _Watchdog_Initialize( the_timer, _POSIX_signals_Alarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
3000bb9c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000bba0:	eb0013df 	bl	30010b24 <_Watchdog_Remove>                    <== NOT EXECUTED
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
3000bba4:	e2400002 	sub	r0, r0, #2                                    <== NOT EXECUTED
3000bba8:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
                                                                      
unsigned int alarm(                                                   
  unsigned int seconds                                                
)                                                                     
{                                                                     
  unsigned int      remaining = 0;                                    
3000bbac:	83a06000 	movhi	r6, #0                                      <== NOT EXECUTED
    _Watchdog_Initialize( the_timer, _POSIX_signals_Alarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
3000bbb0:	9a00000c 	bls	3000bbe8 <alarm+0x64>                         <== NOT EXECUTED
      remaining = the_timer->initial -                                
        ((the_timer->stop_time - the_timer->start_time) / TOD_TICKS_PER_SECOND);
    }                                                                 
  }                                                                   
                                                                      
  if ( seconds )                                                      
3000bbb4:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3000bbb8:	159f0054 	ldrne	r0, [pc, #84]	; 3000bc14 <alarm+0x90>       <== NOT EXECUTED
3000bbbc:	159f104c 	ldrne	r1, [pc, #76]	; 3000bc10 <alarm+0x8c>       <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000bbc0:	1584500c 	strne	r5, [r4, #12]                               <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3000bbc4:	1b001367 	blne	30010968 <_Watchdog_Insert>                  <== NOT EXECUTED
    _Watchdog_Insert_seconds( the_timer, seconds );                   
                                                                      
  return remaining;                                                   
}                                                                     
3000bbc8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000bbcc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000bbd0:	e59f3040 	ldr	r3, [pc, #64]	; 3000bc18 <alarm+0x94>         <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000bbd4:	e5846008 	str	r6, [r4, #8]                                  <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
3000bbd8:	e584301c 	str	r3, [r4, #28]                                 <== NOT EXECUTED
  the_watchdog->id        = id;                                       
3000bbdc:	e5846020 	str	r6, [r4, #32]                                 <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
3000bbe0:	e5846024 	str	r6, [r4, #36]	; 0x24                          <== NOT EXECUTED
3000bbe4:	eafffff2 	b	3000bbb4 <alarm+0x30>                           <== NOT EXECUTED
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      remaining = the_timer->initial -                                
        ((the_timer->stop_time - the_timer->start_time) / TOD_TICKS_PER_SECOND);
3000bbe8:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000bbec:	e5947018 	ldr	r7, [r4, #24]                                 <== NOT EXECUTED
       *  The stop_time and start_time fields are snapshots of ticks since
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      remaining = the_timer->initial -                                
3000bbf0:	e594600c 	ldr	r6, [r4, #12]                                 <== NOT EXECUTED
        ((the_timer->stop_time - the_timer->start_time) / TOD_TICKS_PER_SECOND);
3000bbf4:	e0637007 	rsb	r7, r3, r7                                    <== NOT EXECUTED
3000bbf8:	eb0009ce 	bl	3000e338 <TOD_TICKS_PER_SECOND_method>         <== NOT EXECUTED
3000bbfc:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000bc00:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000bc04:	eb003a1c 	bl	3001a47c <__aeabi_uidiv>                       <== NOT EXECUTED
       *  The stop_time and start_time fields are snapshots of ticks since
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      remaining = the_timer->initial -                                
3000bc08:	e0606006 	rsb	r6, r0, r6                                    <== NOT EXECUTED
3000bc0c:	eaffffe8 	b	3000bbb4 <alarm+0x30>                           <== NOT EXECUTED
                                                                      

30009930 <clock_getcpuclockid>: int clock_getcpuclockid( pid_t pid, clockid_t *clock_id ) {
30009930:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009934:	eb002428 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009938:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
3000993c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009940:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009944:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009948 <clock_getenable_attr>: int clock_getenable_attr( clockid_t clock_id, int *attr ) {
30009948:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
3000994c:	eb002422 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009950:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009954:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009958:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000995c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000a240 <clock_getres>: int clock_getres( clockid_t clock_id, struct timespec *res ) { if ( !res )
3000a240:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
                                                                      
int clock_getres(                                                     
  clockid_t        clock_id,                                          
  struct timespec *res                                                
)                                                                     
{                                                                     
3000a244:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !res )                                                         
3000a248:	0a000012 	beq	3000a298 <clock_getres+0x58>                  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  switch ( clock_id ) {                                               
3000a24c:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
3000a250:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000a254:	9a000004 	bls	3000a26c <clock_getres+0x2c>                  <== NOT EXECUTED
        res->tv_nsec = rtems_configuration_get_nanoseconds_per_tick();
      }                                                               
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
3000a258:	eb002405 	bl	30013274 <__errno>                             <== NOT EXECUTED
3000a25c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a260:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a264:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
                                                                      
  }                                                                   
  return 0;                                                           
}                                                                     
3000a268:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
    case CLOCK_REALTIME:                                              
    case CLOCK_PROCESS_CPUTIME:                                       
    case CLOCK_THREAD_CPUTIME:                                        
      if ( res ) {                                                    
        res->tv_sec = rtems_configuration_get_microseconds_per_tick() /
3000a26c:	e59f3038 	ldr	r3, [pc, #56]	; 3000a2ac <clock_getres+0x6c>  <== NOT EXECUTED
3000a270:	e59f2038 	ldr	r2, [pc, #56]	; 3000a2b0 <clock_getres+0x70>  <== NOT EXECUTED
3000a274:	e593300c 	ldr	r3, [r3, #12]                                 <== NOT EXECUTED
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
  }                                                                   
  return 0;                                                           
3000a278:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
                                                                      
    case CLOCK_REALTIME:                                              
    case CLOCK_PROCESS_CPUTIME:                                       
    case CLOCK_THREAD_CPUTIME:                                        
      if ( res ) {                                                    
        res->tv_sec = rtems_configuration_get_microseconds_per_tick() /
3000a27c:	e082c293 	umull	ip, r2, r3, r2                              <== NOT EXECUTED
            TOD_MICROSECONDS_PER_SECOND;                              
        res->tv_nsec = rtems_configuration_get_nanoseconds_per_tick();
3000a280:	e063c283 	rsb	ip, r3, r3, lsl #5                            <== NOT EXECUTED
3000a284:	e083310c 	add	r3, r3, ip, lsl #2                            <== NOT EXECUTED
                                                                      
    case CLOCK_REALTIME:                                              
    case CLOCK_PROCESS_CPUTIME:                                       
    case CLOCK_THREAD_CPUTIME:                                        
      if ( res ) {                                                    
        res->tv_sec = rtems_configuration_get_microseconds_per_tick() /
3000a288:	e1a02922 	lsr	r2, r2, #18                                   <== NOT EXECUTED
            TOD_MICROSECONDS_PER_SECOND;                              
        res->tv_nsec = rtems_configuration_get_nanoseconds_per_tick();
3000a28c:	e1a03183 	lsl	r3, r3, #3                                    <== NOT EXECUTED
                                                                      
    case CLOCK_REALTIME:                                              
    case CLOCK_PROCESS_CPUTIME:                                       
    case CLOCK_THREAD_CPUTIME:                                        
      if ( res ) {                                                    
        res->tv_sec = rtems_configuration_get_microseconds_per_tick() /
3000a290:	e881000c 	stm	r1, {r2, r3}                                  <== NOT EXECUTED
3000a294:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  clockid_t        clock_id,                                          
  struct timespec *res                                                
)                                                                     
{                                                                     
  if ( !res )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000a298:	eb0023f5 	bl	30013274 <__errno>                             <== NOT EXECUTED
3000a29c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a2a0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a2a4:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a2a8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009b4c <clock_gettime>: int clock_gettime( clockid_t clock_id, struct timespec *tp ) { if ( !tp )
30009b4c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
                                                                      
int clock_gettime(                                                    
  clockid_t        clock_id,                                          
  struct timespec *tp                                                 
)                                                                     
{                                                                     
30009b50:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !tp )                                                          
30009b54:	0a000019 	beq	30009bc0 <clock_gettime+0x74>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
30009b58:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
30009b5c:	0a000013 	beq	30009bb0 <clock_gettime+0x64>                 <== NOT EXECUTED
    _TOD_Get(tp);                                                     
    return 0;                                                         
  }                                                                   
#ifdef CLOCK_MONOTONIC                                                
  if ( clock_id == CLOCK_MONOTONIC ) {                                
30009b60:	e3500004 	cmp	r0, #4                                        <== NOT EXECUTED
30009b64:	0a00000d 	beq	30009ba0 <clock_gettime+0x54>                 <== NOT EXECUTED
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
30009b68:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
30009b6c:	0a00000b 	beq	30009ba0 <clock_gettime+0x54>                 <== NOT EXECUTED
    return 0;                                                         
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
30009b70:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
30009b74:	0a000004 	beq	30009b8c <clock_gettime+0x40>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
30009b78:	eb0025fc 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009b7c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009b80:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009b84:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
30009b88:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_THREAD_CPUTIME                                          
  if ( clock_id == CLOCK_THREAD_CPUTIME )                             
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
30009b8c:	eb0025f7 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009b90:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009b94:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009b98:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009b9c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  }                                                                   
#endif                                                                
                                                                      
#ifdef _POSIX_CPUTIME                                                 
  if ( clock_id == CLOCK_PROCESS_CPUTIME ) {                          
    _TOD_Get_uptime_as_timespec( tp );                                
30009ba0:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
30009ba4:	eb0007a9 	bl	3000ba50 <_TOD_Get_uptime_as_timespec>         <== NOT EXECUTED
    return 0;                                                         
30009ba8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30009bac:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    _TOD_Get(tp);                                                     
30009bb0:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
30009bb4:	eb00078b 	bl	3000b9e8 <_TOD_Get>                            <== NOT EXECUTED
    return 0;                                                         
30009bb8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30009bbc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  clockid_t        clock_id,                                          
  struct timespec *tp                                                 
)                                                                     
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
30009bc0:	eb0025ea 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009bc4:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009bc8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009bcc:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009bd0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009960 <clock_setenable_attr>: int clock_setenable_attr( clockid_t clock_id, int attr ) {
30009960:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009964:	eb00241c 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009968:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
3000996c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009970:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009974:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009bd4 <clock_settime>: int clock_settime( clockid_t clock_id, const struct timespec *tp ) { if ( !tp )
30009bd4:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
                                                                      
int clock_settime(                                                    
  clockid_t              clock_id,                                    
  const struct timespec *tp                                           
)                                                                     
{                                                                     
30009bd8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !tp )                                                          
30009bdc:	0a00001c 	beq	30009c54 <clock_settime+0x80>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
30009be0:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
30009be4:	0a000008 	beq	30009c0c <clock_settime+0x38>                 <== NOT EXECUTED
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
    _Thread_Enable_dispatch();                                        
  }                                                                   
#ifdef _POSIX_CPUTIME                                                 
  else if ( clock_id == CLOCK_PROCESS_CPUTIME )                       
30009be8:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
30009bec:	0a000013 	beq	30009c40 <clock_settime+0x6c>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
#ifdef _POSIX_THREAD_CPUTIME                                          
  else if ( clock_id == CLOCK_THREAD_CPUTIME )                        
30009bf0:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
30009bf4:	0a000011 	beq	30009c40 <clock_settime+0x6c>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
30009bf8:	eb0025dc 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009bfc:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009c00:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009c04:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
30009c08:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
{                                                                     
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )                 
30009c0c:	e5912000 	ldr	r2, [r1]                                      <== NOT EXECUTED
30009c10:	e59f3050 	ldr	r3, [pc, #80]	; 30009c68 <clock_settime+0x94> <== NOT EXECUTED
30009c14:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
30009c18:	9a00000d 	bls	30009c54 <clock_settime+0x80>                 <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009c1c:	e59f3048 	ldr	r3, [pc, #72]	; 30009c6c <clock_settime+0x98> <== NOT EXECUTED
30009c20:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30009c24:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30009c28:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    _Thread_Disable_dispatch();                                       
      _TOD_Set( tp );                                                 
30009c2c:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
30009c30:	eb00079d 	bl	3000baac <_TOD_Set>                            <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
30009c34:	eb000d61 	bl	3000d1c0 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOSYS );                   
#endif                                                                
  else                                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  return 0;                                                           
30009c38:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30009c3c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  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 );                   
30009c40:	eb0025ca 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009c44:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009c48:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009c4c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009c50:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  if ( !tp )                                                          
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( clock_id == CLOCK_REALTIME ) {                                 
    if ( tp->tv_sec < TOD_SECONDS_1970_THROUGH_1988 )                 
      rtems_set_errno_and_return_minus_one( EINVAL );                 
30009c54:	eb0025c5 	bl	30013370 <__errno>                             <== NOT EXECUTED
30009c58:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009c5c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009c60:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009c64:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009978 <fork>: #include <sys/types.h> #include <errno.h> #include <rtems/seterr.h> int fork( void ) {
30009978:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
3000997c:	eb002416 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009980:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009984:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009988:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000998c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

300098c0 <getitimer>: int getitimer( int which, struct itimerval *value ) { if ( !value )
300098c0:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
                                                                      
int getitimer(                                                        
  int               which,                                            
  struct itimerval *value                                             
)                                                                     
{                                                                     
300098c4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !value )                                                       
300098c8:	0a00000b 	beq	300098fc <getitimer+0x3c>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
300098cc:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
300098d0:	9a000004 	bls	300098e8 <getitimer+0x28>                     <== NOT EXECUTED
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
300098d4:	eb0023fa 	bl	300128c4 <__errno>                             <== NOT EXECUTED
300098d8:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
300098dc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300098e0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300098e4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  switch ( which ) {                                                  
    case ITIMER_REAL:                                                 
    case ITIMER_VIRTUAL:                                              
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
300098e8:	eb0023f5 	bl	300128c4 <__errno>                             <== NOT EXECUTED
300098ec:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
300098f0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
300098f4:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300098f8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  int               which,                                            
  struct itimerval *value                                             
)                                                                     
{                                                                     
  if ( !value )                                                       
    rtems_set_errno_and_return_minus_one( EFAULT );                   
300098fc:	eb0023f0 	bl	300128c4 <__errno>                             <== NOT EXECUTED
30009900:	e3a0300e 	mov	r3, #14                                       <== NOT EXECUTED
30009904:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009908:	eafffff4 	b	300098e0 <getitimer+0x20>                       <== NOT EXECUTED
                                                                      

30026cc0 <killinfo>: int killinfo( pid_t pid, int sig, const union sigval *value ) {
30026cc0:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
30026cc4:	e24dd00c 	sub	sp, sp, #12                                   
30026cc8:	e1a04000 	mov	r4, r0                                        
30026ccc:	e1a05001 	mov	r5, r1                                        
30026cd0:	e1a08002 	mov	r8, r2                                        
  POSIX_signals_Siginfo_node  *psiginfo;                              
                                                                      
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
  if ( pid != getpid() )                                              
30026cd4:	ebffff40 	bl	300269dc <getpid>                              
30026cd8:	e1500004 	cmp	r0, r4                                        
30026cdc:	1a000093 	bne	30026f30 <killinfo+0x270>                     
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  /*                                                                  
   *  Validate the signal passed.                                     
   */                                                                 
  if ( !sig )                                                         
30026ce0:	e3550000 	cmp	r5, #0                                        
30026ce4:	0a000096 	beq	30026f44 <killinfo+0x284>                     
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
30026ce8:	e2454001 	sub	r4, r5, #1                                    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
30026cec:	e354001f 	cmp	r4, #31                                       
30026cf0:	8a000093 	bhi	30026f44 <killinfo+0x284>                     
    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 )          
30026cf4:	e59f6274 	ldr	r6, [pc, #628]	; 30026f70 <killinfo+0x2b0>    
30026cf8:	e1a07085 	lsl	r7, r5, #1                                    
30026cfc:	e0873005 	add	r3, r7, r5                                    
30026d00:	e0863103 	add	r3, r6, r3, lsl #2                            
30026d04:	e5933008 	ldr	r3, [r3, #8]                                  
30026d08:	e3530001 	cmp	r3, #1                                        
    return 0;                                                         
30026d0c:	03a00000 	moveq	r0, #0                                      
    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 )          
30026d10:	0a00006d 	beq	30026ecc <killinfo+0x20c>                     
  /*                                                                  
   *  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 ) )      
30026d14:	e3550008 	cmp	r5, #8                                        
30026d18:	13550004 	cmpne	r5, #4                                      
30026d1c:	0a00006c 	beq	30026ed4 <killinfo+0x214>                     
30026d20:	e355000b 	cmp	r5, #11                                       
30026d24:	0a00006a 	beq	30026ed4 <killinfo+0x214>                     
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
30026d28:	e3a03001 	mov	r3, #1                                        
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
  if ( !value ) {                                                     
30026d2c:	e3580000 	cmp	r8, #0                                        
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
30026d30:	e58d3004 	str	r3, [sp, #4]                                  
                                                                      
  /*                                                                  
   *  Build up a siginfo structure                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
30026d34:	e58d5000 	str	r5, [sp]                                      
30026d38:	e1a04413 	lsl	r4, r3, r4                                    
  siginfo->si_code = SI_USER;                                         
  if ( !value ) {                                                     
    siginfo->si_value.sival_int = 0;                                  
  } else {                                                            
    siginfo->si_value = *value;                                       
30026d3c:	15983000 	ldrne	r3, [r8]                                    
   */                                                                 
  siginfo = &siginfo_struct;                                          
  siginfo->si_signo = sig;                                            
  siginfo->si_code = SI_USER;                                         
  if ( !value ) {                                                     
    siginfo->si_value.sival_int = 0;                                  
30026d40:	058d8008 	streq	r8, [sp, #8]                                
  } else {                                                            
    siginfo->si_value = *value;                                       
30026d44:	158d3008 	strne	r3, [sp, #8]                                
30026d48:	e59f3224 	ldr	r3, [pc, #548]	; 30026f74 <killinfo+0x2b4>    
30026d4c:	e5932000 	ldr	r2, [r3]                                      
30026d50:	e2822001 	add	r2, r2, #1                                    
30026d54:	e5832000 	str	r2, [r3]                                      
                                                                      
  /*                                                                  
   *  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;                                     
30026d58:	e59f3218 	ldr	r3, [pc, #536]	; 30026f78 <killinfo+0x2b8>    
30026d5c:	e5930004 	ldr	r0, [r3, #4]                                  
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
  if ( _POSIX_signals_Is_interested( api, mask ) ) {                  
30026d60:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         
30026d64:	e59330d0 	ldr	r3, [r3, #208]	; 0xd0                         
30026d68:	e1d43003 	bics	r3, r4, r3                                   
30026d6c:	1a000048 	bne	30026e94 <killinfo+0x1d4>                     
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
30026d70:	e59fc204 	ldr	ip, [pc, #516]	; 30026f7c <killinfo+0x2bc>    
30026d74:	e49c3004 	ldr	r3, [ip], #4                                  
                                                                      
  /* 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 );                         
30026d78:	e153000c 	cmp	r3, ip                                        
30026d7c:	0a000013 	beq	30026dd0 <killinfo+0x110>                     
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026d80:	e5932030 	ldr	r2, [r3, #48]	; 0x30                          <== NOT EXECUTED
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
30026d84:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026d88:	e1140002 	tst	r4, r2                                        <== NOT EXECUTED
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
    api = the_thread->API_Extensions[ THREAD_API_POSIX ];             
30026d8c:	e59320fc 	ldr	r2, [r3, #252]	; 0xfc                         <== NOT EXECUTED
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026d90:	1a00003f 	bne	30026e94 <killinfo+0x1d4>                     <== NOT EXECUTED
                                                                      
    /*                                                                
     * Is this thread is blocked waiting for another signal but has   
     * not blocked this one?                                          
     */                                                               
    if (~api->signals_blocked & mask)                                 
30026d94:	e59220d0 	ldr	r2, [r2, #208]	; 0xd0                         <== NOT EXECUTED
30026d98:	e1d42002 	bics	r2, r4, r2                                   <== NOT EXECUTED
30026d9c:	0a000008 	beq	30026dc4 <killinfo+0x104>                     <== NOT EXECUTED
30026da0:	ea00003b 	b	30026e94 <killinfo+0x1d4>                       <== NOT EXECUTED
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026da4:	e5932030 	ldr	r2, [r3, #48]	; 0x30                          <== NOT EXECUTED
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
    api = the_thread->API_Extensions[ THREAD_API_POSIX ];             
30026da8:	e59310fc 	ldr	r1, [r3, #252]	; 0xfc                         <== NOT EXECUTED
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026dac:	e1140002 	tst	r4, r2                                        <== NOT EXECUTED
                                                                      
  for ( the_node = _Chain_First( the_chain );                         
        !_Chain_Is_tail( the_chain, the_node ) ;                      
        the_node = the_node->next ) {                                 
                                                                      
    the_thread = (Thread_Control *)the_node;                          
30026db0:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
    #endif                                                            
                                                                      
    /*                                                                
     * Is this thread is actually blocked waiting for the signal?     
     */                                                               
    if (the_thread->Wait.option & mask)                               
30026db4:	1a000036 	bne	30026e94 <killinfo+0x1d4>                     <== NOT EXECUTED
                                                                      
    /*                                                                
     * Is this thread is blocked waiting for another signal but has   
     * not blocked this one?                                          
     */                                                               
    if (~api->signals_blocked & mask)                                 
30026db8:	e59120d0 	ldr	r2, [r1, #208]	; 0xd0                         <== NOT EXECUTED
30026dbc:	e1d42002 	bics	r2, r4, r2                                   <== NOT EXECUTED
30026dc0:	1a000033 	bne	30026e94 <killinfo+0x1d4>                     <== NOT EXECUTED
                                                                      
  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 ) {                                 
30026dc4:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
                                                                      
  /* 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 );                         
30026dc8:	e153000c 	cmp	r3, ip                                        <== NOT EXECUTED
30026dcc:	1afffff4 	bne	30026da4 <killinfo+0xe4>                      <== NOT EXECUTED
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
  interested_priority = PRIORITY_MAXIMUM + 1;                         
30026dd0:	e59f31a8 	ldr	r3, [pc, #424]	; 30026f80 <killinfo+0x2c0>    
30026dd4:	e59fa1a8 	ldr	sl, [pc, #424]	; 30026f84 <killinfo+0x2c4>    
30026dd8:	e5d3e000 	ldrb	lr, [r3]                                     
   *                                                                  
   *  NOTES:                                                          
   *                                                                  
   *    + rtems internal threads do not receive signals.              
   */                                                                 
  interested = NULL;                                                  
30026ddc:	e3a08000 	mov	r8, #0                                        
  interested_priority = PRIORITY_MAXIMUM + 1;                         
30026de0:	e28ee001 	add	lr, lr, #1                                    
  for (the_api = OBJECTS_CLASSIC_API; the_api <= OBJECTS_APIS_LAST; the_api++) {
                                                                      
    /*                                                                
     *  This can occur when no one is interested and an API is not configured.
     */                                                               
    if ( !_Objects_Information_table[ the_api ] )                     
30026de4:	e5ba3004 	ldr	r3, [sl, #4]!                                 
30026de8:	e3530000 	cmp	r3, #0                                        
30026dec:	0a000022 	beq	30026e7c <killinfo+0x1bc>                     
      continue;                                                       
                                                                      
    the_info = _Objects_Information_table[ the_api ][ 1 ];            
30026df0:	e5933004 	ldr	r3, [r3, #4]                                  
       */                                                             
      if ( !the_info )                                                
        continue;                                                     
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
30026df4:	e1d3c1b0 	ldrh	ip, [r3, #16]                                
    object_table = the_info->local_table;                             
30026df8:	e593101c 	ldr	r1, [r3, #28]                                 
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
30026dfc:	e35c0000 	cmp	ip, #0                                        
30026e00:	0a00001d 	beq	30026e7c <killinfo+0x1bc>                     
30026e04:	e3a02001 	mov	r2, #1                                        
      the_thread = (Thread_Control *) object_table[ index ];          
30026e08:	e5b13004 	ldr	r3, [r1, #4]!                                 
                                                                      
      if ( !the_thread )                                              
30026e0c:	e3530000 	cmp	r3, #0                                        
30026e10:	0a000016 	beq	30026e70 <killinfo+0x1b0>                     
                                                                      
      /*                                                              
       *  If this thread is of lower priority than the interested thread,
       *  go on to the next thread.                                   
       */                                                             
      if ( the_thread->current_priority > interested_priority )       
30026e14:	e5930014 	ldr	r0, [r3, #20]                                 
30026e18:	e150000e 	cmp	r0, lr                                        
30026e1c:	8a000013 	bhi	30026e70 <killinfo+0x1b0>                     
      #if defined(RTEMS_DEBUG)                                        
        if ( !api )                                                   
          continue;                                                   
      #endif                                                          
                                                                      
      if ( !_POSIX_signals_Is_interested( api, mask ) )               
30026e20:	e59390fc 	ldr	r9, [r3, #252]	; 0xfc                         
30026e24:	e59990d0 	ldr	r9, [r9, #208]	; 0xd0                         
30026e28:	e1d49009 	bics	r9, r4, r9                                   
30026e2c:	0a00000f 	beq	30026e70 <killinfo+0x1b0>                     
       *                                                              
       *  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 ) {     
30026e30:	e150000e 	cmp	r0, lr                                        <== NOT EXECUTED
30026e34:	3a000037 	bcc	30026f18 <killinfo+0x258>                     <== NOT EXECUTED
       *  and blocking interruptibutable by signal.                   
       *                                                              
       *  If the interested thread is ready, don't think about changing.
       */                                                             
                                                                      
      if ( interested && !_States_Is_ready( interested->current_state ) ) {
30026e38:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
30026e3c:	0a00000b 	beq	30026e70 <killinfo+0x1b0>                     <== NOT EXECUTED
30026e40:	e5989010 	ldr	r9, [r8, #16]                                 <== NOT EXECUTED
30026e44:	e3590000 	cmp	r9, #0                                        <== NOT EXECUTED
30026e48:	0a000008 	beq	30026e70 <killinfo+0x1b0>                     <== NOT EXECUTED
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
30026e4c:	e593b010 	ldr	fp, [r3, #16]                                 <== NOT EXECUTED
30026e50:	e35b0000 	cmp	fp, #0                                        <== NOT EXECUTED
30026e54:	0a00002f 	beq	30026f18 <killinfo+0x258>                     <== NOT EXECUTED
          continue;                                                   
        }                                                             
                                                                      
        DEBUG_STEP("6");                                              
        /* prefer blocked/interruptible over blocked/not interruptible */
        if ( !_States_Is_interruptible_by_signal(interested->current_state) ) {
30026e58:	e3190201 	tst	r9, #268435456	; 0x10000000                   <== NOT EXECUTED
30026e5c:	1a000003 	bne	30026e70 <killinfo+0x1b0>                     <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_interruptible_by_signal (        
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_INTERRUPTIBLE_BY_SIGNAL);              
30026e60:	e20bb201 	and	fp, fp, #268435456	; 0x10000000               <== NOT EXECUTED
          DEBUG_STEP("7");                                            
          if ( _States_Is_interruptible_by_signal(the_thread->current_state) ) {
30026e64:	e35b0000 	cmp	fp, #0                                        <== NOT EXECUTED
30026e68:	11a0e000 	movne	lr, r0                                      <== NOT EXECUTED
30026e6c:	11a08003 	movne	r8, r3                                      <== NOT EXECUTED
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
30026e70:	e2822001 	add	r2, r2, #1                                    
30026e74:	e15c0002 	cmp	ip, r2                                        
30026e78:	2affffe2 	bcs	30026e08 <killinfo+0x148>                     
   *    + 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++) {
30026e7c:	e59f3104 	ldr	r3, [pc, #260]	; 30026f88 <killinfo+0x2c8>    
30026e80:	e15a0003 	cmp	sl, r3                                        
30026e84:	1affffd6 	bne	30026de4 <killinfo+0x124>                     
        }                                                             
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( interested ) {                                                 
30026e88:	e3580000 	cmp	r8, #0                                        
30026e8c:	0a000005 	beq	30026ea8 <killinfo+0x1e8>                     
30026e90:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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 ) ) {  
30026e94:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30026e98:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30026e9c:	eb000046 	bl	30026fbc <_POSIX_signals_Unblock_thread>       <== NOT EXECUTED
30026ea0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30026ea4:	1a000006 	bne	30026ec4 <killinfo+0x204>                     <== NOT EXECUTED
   *  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 );                         
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
30026ea8:	e0875005 	add	r5, r7, r5                                    
                                                                      
  /*                                                                  
   *  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 );                         
30026eac:	e1a00004 	mov	r0, r4                                        
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
30026eb0:	e1a05105 	lsl	r5, r5, #2                                    
                                                                      
  /*                                                                  
   *  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 );                         
30026eb4:	eb000036 	bl	30026f94 <_POSIX_signals_Set_process_signals>  
                                                                      
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
30026eb8:	e7963005 	ldr	r3, [r6, r5]                                  
30026ebc:	e3530002 	cmp	r3, #2                                        
30026ec0:	0a000007 	beq	30026ee4 <killinfo+0x224>                     
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
  }                                                                   
                                                                      
  DEBUG_STEP("\n");                                                   
  _Thread_Enable_dispatch();                                          
30026ec4:	ebffaa12 	bl	30011714 <_Thread_Enable_dispatch>             
  return 0;                                                           
30026ec8:	e3a00000 	mov	r0, #0                                        
}                                                                     
30026ecc:	e28dd00c 	add	sp, sp, #12                                   
30026ed0:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
   *  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 );                     
30026ed4:	eb0000b9 	bl	300271c0 <pthread_self>                        <== NOT EXECUTED
30026ed8:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30026edc:	eb000081 	bl	300270e8 <pthread_kill>                        <== NOT EXECUTED
30026ee0:	eafffff9 	b	30026ecc <killinfo+0x20c>                       <== NOT EXECUTED
  _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 );        
30026ee4:	e59f00a0 	ldr	r0, [pc, #160]	; 30026f8c <killinfo+0x2cc>    <== NOT EXECUTED
30026ee8:	ebffa30d 	bl	3000fb24 <_Chain_Get>                          <== NOT EXECUTED
    if ( !psiginfo ) {                                                
30026eec:	e250c000 	subs	ip, r0, #0                                   <== NOT EXECUTED
30026ef0:	0a000018 	beq	30026f58 <killinfo+0x298>                     <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
    }                                                                 
                                                                      
    psiginfo->Info = *siginfo;                                        
30026ef4:	e28c3008 	add	r3, ip, #8                                    <== NOT EXECUTED
30026ef8:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30026efc:	e8920007 	ldm	r2, {r0, r1, r2}                              <== NOT EXECUTED
30026f00:	e8830007 	stm	r3, {r0, r1, r2}                              <== NOT EXECUTED
                                                                      
    _Chain_Append( &_POSIX_signals_Siginfo[ sig ], &psiginfo->Node ); 
30026f04:	e59f0084 	ldr	r0, [pc, #132]	; 30026f90 <killinfo+0x2d0>    <== NOT EXECUTED
30026f08:	e1a0100c 	mov	r1, ip                                        <== NOT EXECUTED
30026f0c:	e0800005 	add	r0, r0, r5                                    <== NOT EXECUTED
30026f10:	ebffa2f0 	bl	3000fad8 <_Chain_Append>                       <== NOT EXECUTED
30026f14:	eaffffea 	b	30026ec4 <killinfo+0x204>                       <== NOT EXECUTED
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
30026f18:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30026f1c:	e15c0002 	cmp	ip, r2                                        <== NOT EXECUTED
       */                                                             
                                                                      
      if ( interested && !_States_Is_ready( interested->current_state ) ) {
        /* preferred ready over blocked */                            
        DEBUG_STEP("5");                                              
        if ( _States_Is_ready( the_thread->current_state ) ) {        
30026f20:	e1a0e000 	mov	lr, r0                                        <== NOT EXECUTED
30026f24:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
    #endif                                                            
                                                                      
    maximum = the_info->maximum;                                      
    object_table = the_info->local_table;                             
                                                                      
    for ( index = 1 ; index <= maximum ; index++ ) {                  
30026f28:	2affffb6 	bcs	30026e08 <killinfo+0x148>                     <== NOT EXECUTED
30026f2c:	eaffffd2 	b	30026e7c <killinfo+0x1bc>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
  if ( pid != getpid() )                                              
    rtems_set_errno_and_return_minus_one( ESRCH );                    
30026f30:	ebffc217 	bl	30017794 <__errno>                             <== NOT EXECUTED
30026f34:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
30026f38:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30026f3c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30026f40:	eaffffe1 	b	30026ecc <killinfo+0x20c>                       <== NOT EXECUTED
   */                                                                 
  if ( !sig )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
30026f44:	ebffc212 	bl	30017794 <__errno>                             <== NOT EXECUTED
30026f48:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30026f4c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30026f50:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30026f54:	eaffffdc 	b	30026ecc <killinfo+0x20c>                       <== NOT EXECUTED
  if ( _POSIX_signals_Vectors[ sig ].sa_flags == SA_SIGINFO ) {       
                                                                      
    psiginfo = (POSIX_signals_Siginfo_node *)                         
               _Chain_Get( &_POSIX_signals_Inactive_siginfo );        
    if ( !psiginfo ) {                                                
      _Thread_Enable_dispatch();                                      
30026f58:	ebffa9ed 	bl	30011714 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EAGAIN );                 
30026f5c:	ebffc20c 	bl	30017794 <__errno>                             <== NOT EXECUTED
30026f60:	e3a0300b 	mov	r3, #11                                       <== NOT EXECUTED
30026f64:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30026f68:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30026f6c:	eaffffd6 	b	30026ecc <killinfo+0x20c>                       <== NOT EXECUTED
                                                                      

30009990 <lio_listio>: int mode __attribute__((unused)), struct aiocb * const list[] __attribute__((unused)), int nent __attribute__((unused)), struct sigevent *sig __attribute__((unused)) ) {
30009990:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009994:	eb002410 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009998:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
3000999c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300099a0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300099a4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

300099a8 <mprotect>: const void *addr __attribute__((unused)), size_t len __attribute__((unused)), int prot __attribute__((unused)) ) { return 0; }
300099a8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
300099ac:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000efa8 <mq_close>: */ int mq_close( mqd_t mqdes ) {
3000efa8:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000efac:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000efb0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
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(             
3000efb4:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000efb8:	e59f0064 	ldr	r0, [pc, #100]	; 3000f024 <mq_close+0x7c>     <== NOT EXECUTED
3000efbc:	eb000d50 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
  POSIX_Message_queue_Control    *the_mq;                             
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  Objects_Locations               location;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  if ( location == OBJECTS_LOCAL ) {                                  
3000efc0:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
3000efc4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000efc8:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000efcc:	1a00000f 	bne	3000f010 <mq_close+0x68>                      <== NOT EXECUTED
       *  First update the actual message queue to reflect this descriptor
       *  being disassociated.  This may result in the queue being really
       *  deleted.                                                    
       */                                                             
                                                                      
      the_mq = the_mq_fd->Queue;                                      
3000efd0:	e5903010 	ldr	r3, [r0, #16]                                 <== NOT EXECUTED
      the_mq->open_count -= 1;                                        
3000efd4:	e5932018 	ldr	r2, [r3, #24]                                 <== NOT EXECUTED
      _POSIX_Message_queue_Delete( the_mq );                          
3000efd8:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
       *  being disassociated.  This may result in the queue being really
       *  deleted.                                                    
       */                                                             
                                                                      
      the_mq = the_mq_fd->Queue;                                      
      the_mq->open_count -= 1;                                        
3000efdc:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000efe0:	e5832018 	str	r2, [r3, #24]                                 <== NOT EXECUTED
      _POSIX_Message_queue_Delete( the_mq );                          
3000efe4:	eb00000f 	bl	3000f028 <_POSIX_Message_queue_Delete>         <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Now close this file descriptor.                             
       */                                                             
                                                                      
      _Objects_Close(                                                 
3000efe8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000efec:	e59f0030 	ldr	r0, [pc, #48]	; 3000f024 <mq_close+0x7c>      <== NOT EXECUTED
3000eff0:	eb000c37 	bl	300120d4 <_Objects_Close>                      <== NOT EXECUTED
                                                                      
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 );
3000eff4:	e59f0028 	ldr	r0, [pc, #40]	; 3000f024 <mq_close+0x7c>      <== NOT EXECUTED
3000eff8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000effc:	eb000ce9 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
        &_POSIX_Message_queue_Information_fds, &the_mq_fd->Object );  
      _POSIX_Message_queue_Free_fd( the_mq_fd );                      
                                                                      
      _Thread_Enable_dispatch();                                      
3000f000:	eb00109b 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000f004:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
   /*                                                                 
    *  OBJECTS_REMOTE:                                                
    *  OBJECTS_ERROR:                                                 
    */                                                                
   rtems_set_errno_and_return_minus_one( EBADF );                     
}                                                                     
3000f008:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000f00c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
   /*                                                                 
    *  OBJECTS_REMOTE:                                                
    *  OBJECTS_ERROR:                                                 
    */                                                                
   rtems_set_errno_and_return_minus_one( EBADF );                     
3000f010:	eb002ad6 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f014:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f018:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f01c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f020:	eafffff8 	b	3000f008 <mq_close+0x60>                        <== NOT EXECUTED
                                                                      

3000f078 <mq_getattr>: int mq_getattr( mqd_t mqdes, struct mq_attr *mqstat ) {
3000f078:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  POSIX_Message_queue_Control          *the_mq;                       
  POSIX_Message_queue_Control_fd       *the_mq_fd;                    
  Objects_Locations                     location;                     
  CORE_message_queue_Attributes        *the_mq_attr;                  
                                                                      
  if ( !mqstat )                                                      
3000f07c:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
int mq_getattr(                                                       
  mqd_t           mqdes,                                              
  struct mq_attr *mqstat                                              
)                                                                     
{                                                                     
3000f080:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000f084:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  POSIX_Message_queue_Control          *the_mq;                       
  POSIX_Message_queue_Control_fd       *the_mq_fd;                    
  Objects_Locations                     location;                     
  CORE_message_queue_Attributes        *the_mq_attr;                  
                                                                      
  if ( !mqstat )                                                      
3000f088:	0a000017 	beq	3000f0ec <mq_getattr+0x74>                    <== NOT EXECUTED
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(             
3000f08c:	e59f006c 	ldr	r0, [pc, #108]	; 3000f100 <mq_getattr+0x88>   <== NOT EXECUTED
3000f090:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000f094:	eb000d1a 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
3000f098:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
3000f09c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000f0a0:	1a00000c 	bne	3000f0d8 <mq_getattr+0x60>                    <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      the_mq = the_mq_fd->Queue;                                      
3000f0a4:	e5903010 	ldr	r3, [r0, #16]                                 <== NOT EXECUTED
       *  Return the old values.                                      
       */                                                             
                                                                      
      the_mq_attr = &the_mq->Message_queue.Attributes;                
                                                                      
      mqstat->mq_flags   = the_mq_fd->oflag;                          
3000f0a8:	e5900014 	ldr	r0, [r0, #20]                                 <== NOT EXECUTED
      mqstat->mq_msgsize = the_mq->Message_queue.maximum_message_size;
3000f0ac:	e5931068 	ldr	r1, [r3, #104]	; 0x68                         <== NOT EXECUTED
      mqstat->mq_maxmsg  = the_mq->Message_queue.maximum_pending_messages;
3000f0b0:	e5932060 	ldr	r2, [r3, #96]	; 0x60                          <== NOT EXECUTED
      mqstat->mq_curmsgs = the_mq->Message_queue.number_of_pending_messages;
3000f0b4:	e5933064 	ldr	r3, [r3, #100]	; 0x64                         <== NOT EXECUTED
       *  Return the old values.                                      
       */                                                             
                                                                      
      the_mq_attr = &the_mq->Message_queue.Attributes;                
                                                                      
      mqstat->mq_flags   = the_mq_fd->oflag;                          
3000f0b8:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
      mqstat->mq_msgsize = the_mq->Message_queue.maximum_message_size;
3000f0bc:	e5841008 	str	r1, [r4, #8]                                  <== NOT EXECUTED
      mqstat->mq_maxmsg  = the_mq->Message_queue.maximum_pending_messages;
3000f0c0:	e5842004 	str	r2, [r4, #4]                                  <== NOT EXECUTED
      mqstat->mq_curmsgs = the_mq->Message_queue.number_of_pending_messages;
3000f0c4:	e584300c 	str	r3, [r4, #12]                                 <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3000f0c8:	eb001069 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000f0cc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
3000f0d0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000f0d4:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
3000f0d8:	eb002aa4 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f0dc:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f0e0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f0e4:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f0e8:	eafffff8 	b	3000f0d0 <mq_getattr+0x58>                      <== NOT EXECUTED
  POSIX_Message_queue_Control_fd       *the_mq_fd;                    
  Objects_Locations                     location;                     
  CORE_message_queue_Attributes        *the_mq_attr;                  
                                                                      
  if ( !mqstat )                                                      
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000f0ec:	eb002a9f 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f0f0:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000f0f4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f0f8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f0fc:	eafffff3 	b	3000f0d0 <mq_getattr+0x58>                      <== NOT EXECUTED
                                                                      

3000f128 <mq_notify>: int mq_notify( mqd_t mqdes, const struct sigevent *notification ) {
3000f128:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000f12c:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
3000f130:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000f134:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000f138:	e59f0098 	ldr	r0, [pc, #152]	; 3000f1d8 <mq_notify+0xb0>    <== NOT EXECUTED
3000f13c:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000f140:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000f144:	eb000cee 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
  POSIX_Message_queue_Control    *the_mq;                             
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  Objects_Locations               location;                           
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
3000f148:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000f14c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f150:	0a000005 	beq	3000f16c <mq_notify+0x44>                     <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
3000f154:	eb002a85 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f158:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f15c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f160:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000f164:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000f168:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      if ( notification ) {                                           
3000f16c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_mq = the_mq_fd->Queue;                                      
3000f170:	e590e010 	ldr	lr, [r0, #16]                                 <== NOT EXECUTED
                                                                      
      if ( notification ) {                                           
3000f174:	0a00000e 	beq	3000f1b4 <mq_notify+0x8c>                     <== NOT EXECUTED
        if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) {
3000f178:	e59e307c 	ldr	r3, [lr, #124]	; 0x7c                         <== NOT EXECUTED
3000f17c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f180:	1a00000e 	bne	3000f1c0 <mq_notify+0x98>                     <== NOT EXECUTED
3000f184:	e58e3080 	str	r3, [lr, #128]	; 0x80                         <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one( EBUSY );              
        }                                                             
                                                                      
        _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL );
                                                                      
        the_mq->notification = *notification;                         
3000f188:	e28ec090 	add	ip, lr, #144	; 0x90                           <== NOT EXECUTED
3000f18c:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3000f190:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
3000f194:	e59f2040 	ldr	r2, [pc, #64]	; 3000f1dc <mq_notify+0xb4>     <== NOT EXECUTED
3000f198:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
3000f19c:	e58e207c 	str	r2, [lr, #124]	; 0x7c                         <== NOT EXECUTED
3000f1a0:	e58c3000 	str	r3, [ip]                                      <== NOT EXECUTED
    the_message_queue->notify_argument = the_argument;                
3000f1a4:	e58ee080 	str	lr, [lr, #128]	; 0x80                         <== NOT EXECUTED
                                                                      
        _CORE_message_queue_Set_notify( &the_mq->Message_queue, NULL, NULL );
                                                                      
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
3000f1a8:	eb001031 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000f1ac:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000f1b0:	eaffffeb 	b	3000f164 <mq_notify+0x3c>                       <== NOT EXECUTED
    CORE_message_queue_Control        *the_message_queue,             
    CORE_message_queue_Notify_Handler  the_handler,                   
    void                              *the_argument                   
  )                                                                   
  {                                                                   
    the_message_queue->notify_handler  = the_handler;                 
3000f1b4:	e58e407c 	str	r4, [lr, #124]	; 0x7c                         <== NOT EXECUTED
    the_message_queue->notify_argument = the_argument;                
3000f1b8:	e58e4080 	str	r4, [lr, #128]	; 0x80                         <== NOT EXECUTED
3000f1bc:	eafffff9 	b	3000f1a8 <mq_notify+0x80>                       <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      the_mq = the_mq_fd->Queue;                                      
                                                                      
      if ( notification ) {                                           
        if ( _CORE_message_queue_Is_notify_enabled( &the_mq->Message_queue ) ) {
          _Thread_Enable_dispatch();                                  
3000f1c0:	eb00102b 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one( EBUSY );              
3000f1c4:	eb002a69 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f1c8:	e3a03010 	mov	r3, #16                                       <== NOT EXECUTED
3000f1cc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f1d0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f1d4:	eaffffe2 	b	3000f164 <mq_notify+0x3c>                       <== NOT EXECUTED
                                                                      

3000f1e0 <mq_open>: int oflag, ... /* mode_t mode, */ /* struct mq_attr attr */ ) {
3000f1e0:	e92d000e 	push	{r1, r2, r3}                                 <== NOT EXECUTED
3000f1e4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000f1e8:	e59f3180 	ldr	r3, [pc, #384]	; 3000f370 <mq_open+0x190>     <== NOT EXECUTED
3000f1ec:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
3000f1f0:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000f1f4:	e59d7030 	ldr	r7, [sp, #48]	; 0x30                          <== NOT EXECUTED
3000f1f8:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000f1fc:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
3000f200:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
                                                                      
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 );       
3000f204:	e59f5168 	ldr	r5, [pc, #360]	; 3000f374 <mq_open+0x194>     <== NOT EXECUTED
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  Objects_Locations               location;                           
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
3000f208:	e2178c02 	ands	r8, r7, #512	; 0x200                         <== NOT EXECUTED
    va_start(arg, oflag);                                             
    mode = (mode_t) va_arg( arg, unsigned int );                      
    attr = (struct mq_attr *) va_arg( arg, struct mq_attr * );        
3000f20c:	128d303c 	addne	r3, sp, #60	; 0x3c                          <== NOT EXECUTED
3000f210:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f214:	158d300c 	strne	r3, [sp, #12]                               <== NOT EXECUTED
3000f218:	159d9038 	ldrne	r9, [sp, #56]	; 0x38                        <== NOT EXECUTED
  /* struct mq_attr  attr */                                          
)                                                                     
{                                                                     
  va_list                         arg;                                
  mode_t                          mode;                               
  struct mq_attr                 *attr = NULL;                        
3000f21c:	01a09008 	moveq	r9, r8                                      <== NOT EXECUTED
3000f220:	eb000b86 	bl	30012040 <_Objects_Allocate>                   <== NOT EXECUTED
    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 ) {                                                 
3000f224:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
3000f228:	0a000027 	beq	3000f2cc <mq_open+0xec>                       <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( ENFILE );                   
  }                                                                   
  the_mq_fd->oflag = oflag;                                           
3000f22c:	e5847014 	str	r7, [r4, #20]                                 <== NOT EXECUTED
                                                                      
  status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id );       
3000f230:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000f234:	e28d1008 	add	r1, sp, #8                                    <== NOT EXECUTED
3000f238:	eb001c28 	bl	300162e0 <_POSIX_Message_queue_Name_to_id>     <== NOT EXECUTED
   *  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 ) {                                                     
3000f23c:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000f240:	1a000017 	bne	3000f2a4 <mq_open+0xc4>                       <== NOT EXECUTED
                                                                      
  } else {                /* name -> ID translation succeeded */      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
3000f244:	e2077c0a 	and	r7, r7, #2560	; 0xa00                         <== NOT EXECUTED
3000f248:	e3570c0a 	cmp	r7, #2560	; 0xa00                             <== NOT EXECUTED
3000f24c:	0a000024 	beq	3000f2e4 <mq_open+0x104>                      <== NOT EXECUTED
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Message_queue_Control *)                              
    _Objects_Get( &_POSIX_Message_queue_Information, id, location );  
3000f250:	e59d1008 	ldr	r1, [sp, #8]                                  <== NOT EXECUTED
3000f254:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000f258:	e59f0118 	ldr	r0, [pc, #280]	; 3000f378 <mq_open+0x198>     <== NOT EXECUTED
3000f25c:	eb000ca8 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
    /*                                                                
     * 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 );        
    the_mq->open_count += 1;                                          
3000f260:	e5901018 	ldr	r1, [r0, #24]                                 <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000f264:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000f268:	e1d420b8 	ldrh	r2, [r4, #8]                                 <== NOT EXECUTED
3000f26c:	e2811001 	add	r1, r1, #1                                    <== NOT EXECUTED
3000f270:	e5801018 	str	r1, [r0, #24]                                 <== NOT EXECUTED
                                                                      
    /*                                                                
     * 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 );        
3000f274:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
    the_mq->open_count += 1;                                          
    the_mq_fd->Queue = the_mq;                                        
3000f278:	e5840010 	str	r0, [r4, #16]                                 <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000f27c:	e7834102 	str	r4, [r3, r2, lsl #2]                          <== NOT EXECUTED
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
3000f280:	e584600c 	str	r6, [r4, #12]                                 <== NOT EXECUTED
    _Objects_Open_string(                                             
      &_POSIX_Message_queue_Information_fds,                          
      &the_mq_fd->Object,                                             
      NULL                                                            
    );                                                                
    _Thread_Enable_dispatch();                                        
3000f284:	eb000ffa 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
3000f288:	eb000ff9 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return (mqd_t)the_mq_fd->Object.id;                               
3000f28c:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
}                                                                     
3000f290:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000f294:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
3000f298:	e8bd47f0 	pop	{r4, r5, r6, r7, r8, r9, sl, lr}              <== NOT EXECUTED
3000f29c:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000f2a0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  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) ) ) {               
3000f2a4:	e3560002 	cmp	r6, #2                                        <== NOT EXECUTED
3000f2a8:	0a000016 	beq	3000f308 <mq_open+0x128>                      <== NOT EXECUTED
                                                                      
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 );
3000f2ac:	e59f00c0 	ldr	r0, [pc, #192]	; 3000f374 <mq_open+0x194>     <== NOT EXECUTED
3000f2b0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f2b4:	eb000c3b 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
      _POSIX_Message_queue_Free_fd( the_mq_fd );                      
      _Thread_Enable_dispatch();                                      
3000f2b8:	eb000fed 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one_cast( status, mqd_t );     
3000f2bc:	eb002a2b 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f2c0:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f2c4:	e5806000 	str	r6, [r0]                                      <== NOT EXECUTED
3000f2c8:	eafffff0 	b	3000f290 <mq_open+0xb0>                         <== NOT EXECUTED
    va_end(arg);                                                      
  }                                                                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Allocate_fd();                     
  if ( !the_mq_fd ) {                                                 
    _Thread_Enable_dispatch();                                        
3000f2cc:	eb000fe8 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENFILE );                   
3000f2d0:	eb002a26 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f2d4:	e3a03017 	mov	r3, #23                                       <== NOT EXECUTED
3000f2d8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f2dc:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f2e0:	eaffffea 	b	3000f290 <mq_open+0xb0>                         <== NOT EXECUTED
3000f2e4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f2e8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f2ec:	eb000c2d 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
    /*                                                                
     * 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();                                      
3000f2f0:	eb000fdf 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one_cast( EEXIST, mqd_t );     
3000f2f4:	eb002a1d 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f2f8:	e3a03011 	mov	r3, #17                                       <== NOT EXECUTED
3000f2fc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f300:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f304:	eaffffe1 	b	3000f290 <mq_open+0xb0>                         <== NOT EXECUTED
  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) ) ) {               
3000f308:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
3000f30c:	0affffe6 	beq	3000f2ac <mq_open+0xcc>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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(                       
3000f310:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000f314:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000f318:	e1a02009 	mov	r2, r9                                        <== NOT EXECUTED
3000f31c:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
3000f320:	eb001b8f 	bl	30016164 <_POSIX_Message_queue_Create_support> <== NOT EXECUTED
  );                                                                  
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
  if ( status == -1 ) {                                               
3000f324:	e3700001 	cmn	r0, #1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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(                       
3000f328:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  );                                                                  
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
  if ( status == -1 ) {                                               
3000f32c:	0a000009 	beq	3000f358 <mq_open+0x178>                      <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000f330:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
    _POSIX_Message_queue_Free_fd( the_mq_fd );                        
    _Thread_Enable_dispatch();                                        
    return (mqd_t) -1;                                                
  }                                                                   
                                                                      
  the_mq_fd->Queue = the_mq;                                          
3000f334:	e59d1004 	ldr	r1, [sp, #4]                                  <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000f338:	e1d420b8 	ldrh	r2, [r4, #8]                                 <== NOT EXECUTED
3000f33c:	e5841010 	str	r1, [r4, #16]                                 <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000f340:	e7834102 	str	r4, [r3, r2, lsl #2]                          <== NOT EXECUTED
    the_object                                                        
  );                                                                  
                                                                      
  #if defined(RTEMS_SCORE_OBJECT_ENABLE_STRING_NAMES)                 
    /* ASSERT: information->is_string */                              
    the_object->name.name_p = name;                                   
3000f344:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000f348:	e584300c 	str	r3, [r4, #12]                                 <== NOT EXECUTED
    &_POSIX_Message_queue_Information_fds,                            
    &the_mq_fd->Object,                                               
    NULL                                                              
  );                                                                  
                                                                      
  _Thread_Enable_dispatch();                                          
3000f34c:	eb000fc8 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  return (mqd_t) the_mq_fd->Object.id;                                
3000f350:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
3000f354:	eaffffcd 	b	3000f290 <mq_open+0xb0>                         <== NOT EXECUTED
3000f358:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f35c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f360:	eb000c10 	bl	300123a8 <_Objects_Free>                       <== NOT EXECUTED
  /*                                                                  
   * 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();                                        
3000f364:	eb000fc2 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return (mqd_t) -1;                                                
3000f368:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000f36c:	eaffffc7 	b	3000f290 <mq_open+0xb0>                         <== NOT EXECUTED
                                                                      

3000f37c <mq_receive>: mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned int *msg_prio ) {
3000f37c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return _POSIX_Message_queue_Receive_support(                        
3000f380:	e3a0c001 	mov	ip, #1                                        <== NOT EXECUTED
  mqd_t         mqdes,                                                
  char         *msg_ptr,                                              
  size_t        msg_len,                                              
  unsigned int *msg_prio                                              
)                                                                     
{                                                                     
3000f384:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  return _POSIX_Message_queue_Receive_support(                        
3000f388:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000f38c:	e3a0c000 	mov	ip, #0                                        <== NOT EXECUTED
3000f390:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
3000f394:	eb000001 	bl	3000f3a0 <_POSIX_Message_queue_Receive_support><== NOT EXECUTED
    msg_len,                                                          
    msg_prio,                                                         
    true,                                                             
    THREAD_QUEUE_WAIT_FOREVER                                         
  );                                                                  
}                                                                     
3000f398:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000f39c:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000f4d4 <mq_send>: mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio ) {
3000f4d4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return _POSIX_Message_queue_Send_support(                           
3000f4d8:	e3a0c001 	mov	ip, #1                                        <== NOT EXECUTED
  mqd_t         mqdes,                                                
  const char   *msg_ptr,                                              
  size_t        msg_len,                                              
  unsigned int  msg_prio                                              
)                                                                     
{                                                                     
3000f4dc:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  return _POSIX_Message_queue_Send_support(                           
3000f4e0:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000f4e4:	e3a0c000 	mov	ip, #0                                        <== NOT EXECUTED
3000f4e8:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
3000f4ec:	eb000001 	bl	3000f4f8 <_POSIX_Message_queue_Send_support>   <== NOT EXECUTED
    msg_len,                                                          
    msg_prio,                                                         
    true,                                                             
    THREAD_QUEUE_WAIT_FOREVER                                         
  );                                                                  
}                                                                     
3000f4f0:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000f4f4:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000f61c <mq_setattr>: int mq_setattr( mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat ) {
3000f61c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  CORE_message_queue_Control     *the_core_mq;                        
  Objects_Locations               location;                           
                                                                      
  if ( !mqstat )                                                      
3000f620:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
int mq_setattr(                                                       
  mqd_t                 mqdes,                                        
  const struct mq_attr *mqstat,                                       
  struct mq_attr       *omqstat                                       
)                                                                     
{                                                                     
3000f624:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000f628:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000f62c:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  CORE_message_queue_Control     *the_core_mq;                        
  Objects_Locations               location;                           
                                                                      
  if ( !mqstat )                                                      
3000f630:	0a00001b 	beq	3000f6a4 <mq_setattr+0x88>                    <== NOT EXECUTED
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(             
3000f634:	e59f007c 	ldr	r0, [pc, #124]	; 3000f6b8 <mq_setattr+0x9c>   <== NOT EXECUTED
3000f638:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000f63c:	eb000bb0 	bl	30012504 <_Objects_Get>                        <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
3000f640:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000f644:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f648:	1a000010 	bne	3000f690 <mq_setattr+0x74>                    <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Return the old values.                                      
       */                                                             
                                                                      
      if ( omqstat ) {                                                
3000f64c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
  the_mq_fd = _POSIX_Message_queue_Get_fd( mqdes, &location );        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      the_core_mq = &the_mq_fd->Queue->Message_queue;                 
3000f650:	e5903010 	ldr	r3, [r0, #16]                                 <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Return the old values.                                      
       */                                                             
                                                                      
      if ( omqstat ) {                                                
3000f654:	0a000007 	beq	3000f678 <mq_setattr+0x5c>                    <== NOT EXECUTED
        omqstat->mq_flags   = the_mq_fd->oflag;                       
        omqstat->mq_msgsize = the_core_mq->maximum_message_size;      
3000f658:	e5931068 	ldr	r1, [r3, #104]	; 0x68                         <== NOT EXECUTED
        omqstat->mq_maxmsg  = the_core_mq->maximum_pending_messages;  
3000f65c:	e5932060 	ldr	r2, [r3, #96]	; 0x60                          <== NOT EXECUTED
      /*                                                              
       *  Return the old values.                                      
       */                                                             
                                                                      
      if ( omqstat ) {                                                
        omqstat->mq_flags   = the_mq_fd->oflag;                       
3000f660:	e590c014 	ldr	ip, [r0, #20]                                 <== NOT EXECUTED
        omqstat->mq_msgsize = the_core_mq->maximum_message_size;      
        omqstat->mq_maxmsg  = the_core_mq->maximum_pending_messages;  
        omqstat->mq_curmsgs = the_core_mq->number_of_pending_messages;
3000f664:	e5933064 	ldr	r3, [r3, #100]	; 0x64                         <== NOT EXECUTED
      /*                                                              
       *  Return the old values.                                      
       */                                                             
                                                                      
      if ( omqstat ) {                                                
        omqstat->mq_flags   = the_mq_fd->oflag;                       
3000f668:	e584c000 	str	ip, [r4]                                      <== NOT EXECUTED
        omqstat->mq_msgsize = the_core_mq->maximum_message_size;      
3000f66c:	e5841008 	str	r1, [r4, #8]                                  <== NOT EXECUTED
        omqstat->mq_maxmsg  = the_core_mq->maximum_pending_messages;  
3000f670:	e5842004 	str	r2, [r4, #4]                                  <== NOT EXECUTED
        omqstat->mq_curmsgs = the_core_mq->number_of_pending_messages;
3000f674:	e584300c 	str	r3, [r4, #12]                                 <== NOT EXECUTED
      }                                                               
                                                                      
      the_mq_fd->oflag = mqstat->mq_flags;                            
3000f678:	e5953000 	ldr	r3, [r5]                                      <== NOT EXECUTED
3000f67c:	e5803014 	str	r3, [r0, #20]                                 <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000f680:	eb000efb 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000f684:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
}                                                                     
3000f688:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000f68c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EBADF );                      
3000f690:	eb002936 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f694:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
3000f698:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f69c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f6a0:	eafffff8 	b	3000f688 <mq_setattr+0x6c>                      <== NOT EXECUTED
  POSIX_Message_queue_Control_fd *the_mq_fd;                          
  CORE_message_queue_Control     *the_core_mq;                        
  Objects_Locations               location;                           
                                                                      
  if ( !mqstat )                                                      
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000f6a4:	eb002931 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f6a8:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000f6ac:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f6b0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f6b4:	eafffff3 	b	3000f688 <mq_setattr+0x6c>                      <== NOT EXECUTED
                                                                      

3000f6bc <mq_timedreceive>: char *msg_ptr, size_t msg_len, unsigned int *msg_prio, const struct timespec *abstime ) {
3000f6bc:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
3000f6c0:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
3000f6c4:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000f6c8:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000f6cc:	e59d0020 	ldr	r0, [sp, #32]                                 <== NOT EXECUTED
3000f6d0:	e28d1008 	add	r1, sp, #8                                    <== NOT EXECUTED
  char                  *msg_ptr,                                     
  size_t                 msg_len,                                     
  unsigned int          *msg_prio,                                    
  const struct timespec *abstime                                      
)                                                                     
{                                                                     
3000f6d4:	e1a06003 	mov	r6, r3                                        <== NOT EXECUTED
3000f6d8:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000f6dc:	eb000043 	bl	3000f7f0 <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  return _POSIX_Message_queue_Receive_support(                        
3000f6e0:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
3000f6e4:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
3000f6e8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000f6ec:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000f6f0:	e88d0009 	stm	sp, {r0, r3}                                  <== NOT EXECUTED
3000f6f4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f6f8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f6fc:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000f700:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000f704:	ebffff25 	bl	3000f3a0 <_POSIX_Message_queue_Receive_support><== NOT EXECUTED
    msg_len,                                                          
    msg_prio,                                                         
    do_wait,                                                          
    ticks                                                             
  );                                                                  
}                                                                     
3000f708:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000f70c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000f710 <mq_timedsend>: const char *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec *abstime ) {
3000f710:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
3000f714:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
3000f718:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000f71c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000f720:	e59d0020 	ldr	r0, [sp, #32]                                 <== NOT EXECUTED
3000f724:	e28d1008 	add	r1, sp, #8                                    <== NOT EXECUTED
  const char            *msg_ptr,                                     
  size_t                 msg_len,                                     
  unsigned int           msg_prio,                                    
  const struct timespec *abstime                                      
)                                                                     
{                                                                     
3000f728:	e1a06003 	mov	r6, r3                                        <== NOT EXECUTED
3000f72c:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000f730:	eb00002e 	bl	3000f7f0 <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  return _POSIX_Message_queue_Send_support(                           
3000f734:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
3000f738:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
3000f73c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000f740:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000f744:	e88d0009 	stm	sp, {r0, r3}                                  <== NOT EXECUTED
3000f748:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000f74c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f750:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000f754:	e1a03006 	mov	r3, r6                                        <== NOT EXECUTED
3000f758:	ebffff66 	bl	3000f4f8 <_POSIX_Message_queue_Send_support>   <== NOT EXECUTED
    msg_len,                                                          
    msg_prio,                                                         
    do_wait,                                                          
    ticks                                                             
  );                                                                  
}                                                                     
3000f75c:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000f760:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000f774 <mq_unlink>: */ int mq_unlink( const char *name ) {
3000f774:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000f778:	e59f3068 	ldr	r3, [pc, #104]	; 3000f7e8 <mq_unlink+0x74>    <== NOT EXECUTED
3000f77c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000f780:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000f784:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000f788:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
  register POSIX_Message_queue_Control *the_mq;                       
  Objects_Id                            the_mq_id;                    
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id );       
3000f78c:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000f790:	eb001ad2 	bl	300162e0 <_POSIX_Message_queue_Name_to_id>     <== NOT EXECUTED
   if ( status != 0 ) {                                               
3000f794:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000f798:	1a00000d 	bne	3000f7d4 <mq_unlink+0x60>                     <== NOT EXECUTED
  _POSIX_Message_queue_Namespace_remove( the_mq );                    
  _POSIX_Message_queue_Delete( the_mq );                              
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
3000f79c:	e59f0048 	ldr	r0, [pc, #72]	; 3000f7ec <mq_unlink+0x78>     <== NOT EXECUTED
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return NULL;                                                    
  #endif                                                              
  return information->local_table[ index ];                           
3000f7a0:	e1dd20b0 	ldrh	r2, [sp]                                     <== NOT EXECUTED
3000f7a4:	e590301c 	ldr	r3, [r0, #28]                                 <== NOT EXECUTED
   if ( status != 0 ) {                                               
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( status );                   
   }                                                                  
                                                                      
  the_mq = (POSIX_Message_queue_Control *) _Objects_Get_local_object( 
3000f7a8:	e7934102 	ldr	r4, [r3, r2, lsl #2]                          <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Message_queue_Namespace_remove (     
  POSIX_Message_queue_Control *the_mq                                 
)                                                                     
{                                                                     
  _Objects_Namespace_remove(                                          
3000f7ac:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    &_POSIX_Message_queue_Information,                                
    _Objects_Get_index( the_mq_id )                                   
  );                                                                  
                                                                      
  the_mq->linked = false;                                             
3000f7b0:	e5c45015 	strb	r5, [r4, #21]                                <== NOT EXECUTED
3000f7b4:	eb000ba9 	bl	30012660 <_Objects_Namespace_remove>           <== NOT EXECUTED
  _POSIX_Message_queue_Namespace_remove( the_mq );                    
  _POSIX_Message_queue_Delete( the_mq );                              
3000f7b8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000f7bc:	ebfffe19 	bl	3000f028 <_POSIX_Message_queue_Delete>         <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
3000f7c0:	eb000eab 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
3000f7c4:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
}                                                                     
3000f7c8:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000f7cc:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000f7d0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  status = _POSIX_Message_queue_Name_to_id( name, &the_mq_id );       
   if ( status != 0 ) {                                               
    _Thread_Enable_dispatch();                                        
3000f7d4:	eb000ea6 	bl	30013274 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( status );                   
3000f7d8:	eb0028e4 	bl	30019b70 <__errno>                             <== NOT EXECUTED
3000f7dc:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000f7e0:	e5805000 	str	r5, [r0]                                      <== NOT EXECUTED
3000f7e4:	eafffff7 	b	3000f7c8 <mq_unlink+0x54>                       <== NOT EXECUTED
                                                                      

3002298c <nanosleep>: int nanosleep( const struct timespec *rqtp, struct timespec *rmtp ) {
3002298c:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
30022990:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
30022994:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
   *  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 ) )                                  
30022998:	eb000065 	bl	30022b34 <_Timespec_Is_valid>                  <== NOT EXECUTED
3002299c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
300229a0:	0a000035 	beq	30022a7c <nanosleep+0xf0>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  ticks = _Timespec_To_ticks( rqtp );                                 
300229a4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
300229a8:	ebffbc6e 	bl	30011b68 <_Timespec_To_ticks>                  <== NOT EXECUTED
   *  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 ) {                                                     
300229ac:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
300229b0:	0a000022 	beq	30022a40 <nanosleep+0xb4>                     <== NOT EXECUTED
300229b4:	e59f30e8 	ldr	r3, [pc, #232]	; 30022aa4 <nanosleep+0x118>   <== NOT EXECUTED
300229b8:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
300229bc:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
300229c0:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Block for the desired amount of time                            
   */                                                                 
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
300229c4:	e59f60dc 	ldr	r6, [pc, #220]	; 30022aa8 <nanosleep+0x11c>   <== NOT EXECUTED
300229c8:	e3a01281 	mov	r1, #268435464	; 0x10000008                   <== NOT EXECUTED
300229cc:	e5960004 	ldr	r0, [r6, #4]                                  <== NOT EXECUTED
300229d0:	ebffab0f 	bl	3000d614 <_Thread_Set_state>                   <== NOT EXECUTED
      _Thread_Executing,                                              
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
300229d4:	e5961004 	ldr	r1, [r6, #4]                                  <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
300229d8:	e59f00cc 	ldr	r0, [pc, #204]	; 30022aac <nanosleep+0x120>   <== NOT EXECUTED
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state(                                                
      _Thread_Executing,                                              
      STATES_DELAYING | STATES_INTERRUPTIBLE_BY_SIGNAL                
    );                                                                
    _Watchdog_Initialize(                                             
300229dc:	e5912008 	ldr	r2, [r1, #8]                                  <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
300229e0:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
300229e4:	e5813050 	str	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
300229e8:	e5810064 	str	r0, [r1, #100]	; 0x64                         <== NOT EXECUTED
  the_watchdog->id        = id;                                       
300229ec:	e5812068 	str	r2, [r1, #104]	; 0x68                         <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
300229f0:	e581306c 	str	r3, [r1, #108]	; 0x6c                         <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
300229f4:	e5815054 	str	r5, [r1, #84]	; 0x54                          <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
300229f8:	e59f00b0 	ldr	r0, [pc, #176]	; 30022ab0 <nanosleep+0x124>   <== NOT EXECUTED
300229fc:	e2811048 	add	r1, r1, #72	; 0x48                            <== NOT EXECUTED
30022a00:	ebffac75 	bl	3000dbdc <_Watchdog_Insert>                    <== NOT EXECUTED
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );       
  _Thread_Enable_dispatch();                                          
30022a04:	ebffa8da 	bl	3000cd74 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
30022a08:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
30022a0c:	0a000018 	beq	30022a74 <nanosleep+0xe8>                     <== NOT EXECUTED
    ticks -=                                                          
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
30022a10:	e5963004 	ldr	r3, [r6, #4]                                  <== NOT EXECUTED
                                                                      
    _Timespec_From_ticks( ticks, rmtp );                              
30022a14:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
    ticks -=                                                          
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
30022a18:	e593405c 	ldr	r4, [r3, #92]	; 0x5c                          <== NOT EXECUTED
30022a1c:	e5933060 	ldr	r3, [r3, #96]	; 0x60                          <== NOT EXECUTED
30022a20:	e0634004 	rsb	r4, r3, r4                                    <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
                                                                      
  /* calculate time remaining */                                      
                                                                      
  if ( rmtp ) {                                                       
    ticks -=                                                          
30022a24:	e0845005 	add	r5, r4, r5                                    <== NOT EXECUTED
      _Thread_Executing->Timer.stop_time - _Thread_Executing->Timer.start_time;
                                                                      
    _Timespec_From_ticks( ticks, rmtp );                              
30022a28:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30022a2c:	eb00002f 	bl	30022af0 <_Timespec_From_ticks>                <== NOT EXECUTED
     */                                                               
    #if defined(RTEMS_POSIX_API)                                      
        /*                                                            
         *  If there is time remaining, then we were interrupted by a signal.
         */                                                           
        if ( ticks )                                                  
30022a30:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
30022a34:	1a000015 	bne	30022a90 <nanosleep+0x104>                    <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
30022a38:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
}                                                                     
30022a3c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
30022a40:	e59f305c 	ldr	r3, [pc, #92]	; 30022aa4 <nanosleep+0x118>    <== NOT EXECUTED
30022a44:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30022a48:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30022a4c:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
30022a50:	e59f305c 	ldr	r3, [pc, #92]	; 30022ab4 <nanosleep+0x128>    <== NOT EXECUTED
30022a54:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
30022a58:	e593f00c 	ldr	pc, [r3, #12]                                 <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( !ticks ) {                                                     
    _Thread_Disable_dispatch();                                       
      _Scheduler_Yield();                                             
    _Thread_Enable_dispatch();                                        
30022a5c:	ebffa8c4 	bl	3000cd74 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    if ( rmtp ) {                                                     
30022a60:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
       rmtp->tv_sec = 0;                                              
30022a64:	15845000 	strne	r5, [r4]                                    <== NOT EXECUTED
       rmtp->tv_nsec = 0;                                             
30022a68:	15845004 	strne	r5, [r4, #4]                                <== NOT EXECUTED
    }                                                                 
    return 0;                                                         
30022a6c:	11a00005 	movne	r0, r5                                      <== NOT EXECUTED
                                                                      
  if ( !ticks ) {                                                     
    _Thread_Disable_dispatch();                                       
      _Scheduler_Yield();                                             
    _Thread_Enable_dispatch();                                        
    if ( rmtp ) {                                                     
30022a70:	18bd8070 	popne	{r4, r5, r6, pc}                            <== NOT EXECUTED
        if ( ticks )                                                  
          rtems_set_errno_and_return_minus_one( EINTR );              
    #endif                                                            
  }                                                                   
                                                                      
  return 0;                                                           
30022a74:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30022a78:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
   *                                                                  
   *  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 );                   
30022a7c:	ebffc472 	bl	30013c4c <__errno>                             <== NOT EXECUTED
30022a80:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30022a84:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30022a88:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30022a8c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
    #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 );              
30022a90:	ebffc46d 	bl	30013c4c <__errno>                             <== NOT EXECUTED
30022a94:	e3a03004 	mov	r3, #4                                        <== NOT EXECUTED
30022a98:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30022a9c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30022aa0:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000bcc0 <pause>: /* * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 81 */ int pause( void ) {
3000bcc0:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000bcc4:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  sigset_t  all_signals;                                              
  int       status;                                                   
                                                                      
  (void) sigfillset( &all_signals );                                  
3000bcc8:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000bccc:	eb000337 	bl	3000c9b0 <sigfillset>                          <== NOT EXECUTED
                                                                      
  status = sigtimedwait( &all_signals, NULL, NULL );                  
3000bcd0:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000bcd4:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000bcd8:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
int pause( void )                                                     
{                                                                     
  sigset_t  all_signals;                                              
  int       status;                                                   
                                                                      
  (void) sigfillset( &all_signals );                                  
3000bcdc:	e1a0400d 	mov	r4, sp                                        <== NOT EXECUTED
                                                                      
  status = sigtimedwait( &all_signals, NULL, NULL );                  
3000bce0:	eb00039d 	bl	3000cb5c <sigtimedwait>                        <== NOT EXECUTED
                                                                      
  return status;                                                      
}                                                                     
3000bce4:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000bce8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

300099b0 <pthread_atfork>: int pthread_atfork( void (*prepare)(void) __attribute__((unused)), void (*parent)(void) __attribute__((unused)), void (*child)(void) __attribute__((unused)) ) {
300099b0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
300099b4:	eb002408 	bl	300129dc <__errno>                             <== NOT EXECUTED
300099b8:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
300099bc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300099c0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300099c4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000ea98 <pthread_attr_destroy>: int pthread_attr_destroy( pthread_attr_t *attr ) { if ( !attr || !attr->is_initialized )
3000ea98:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000ea9c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
int pthread_attr_destroy(                                             
  pthread_attr_t  *attr                                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000eaa0:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000eaa4:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000eaa8:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
3000eaac:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000eab0:	15830000 	strne	r0, [r3]                                    <== NOT EXECUTED
int pthread_attr_destroy(                                             
  pthread_attr_t  *attr                                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000eab4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
3000eab8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000f234 <pthread_attr_getcputime>: int pthread_attr_getcputime( pthread_attr_t *attr, int *clock_allowed ) { if ( !attr || !attr->is_initialized || !clock_allowed )
3000f234:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000f238:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getcputime(                                          
  pthread_attr_t  *attr,                                              
  int             *clock_allowed                                      
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !clock_allowed )             
3000f23c:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000f240:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000f244:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000f248:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *clock_allowed = attr->cputime_clock_allowed;                       
3000f24c:	15933038 	ldrne	r3, [r3, #56]	; 0x38                        <== NOT EXECUTED
int pthread_attr_getcputime(                                          
  pthread_attr_t  *attr,                                              
  int             *clock_allowed                                      
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !clock_allowed )             
3000f250:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000f254:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *clock_allowed = attr->cputime_clock_allowed;                       
3000f258:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int             *clock_allowed                                      
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !clock_allowed )             
    return EINVAL;                                                    
3000f25c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *clock_allowed = attr->cputime_clock_allowed;                       
  return 0;                                                           
}                                                                     
3000f260:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000eabc <pthread_attr_getdetachstate>: int pthread_attr_getdetachstate( const pthread_attr_t *attr, int *detachstate ) { if ( !attr || !attr->is_initialized || !detachstate )
3000eabc:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000eac0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getdetachstate(                                      
  const pthread_attr_t  *attr,                                        
  int                   *detachstate                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !detachstate )               
3000eac4:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000eac8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000eacc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ead0:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *detachstate = attr->detachstate;                                   
3000ead4:	1593303c 	ldrne	r3, [r3, #60]	; 0x3c                        <== NOT EXECUTED
int pthread_attr_getdetachstate(                                      
  const pthread_attr_t  *attr,                                        
  int                   *detachstate                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !detachstate )               
3000ead8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000eadc:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *detachstate = attr->detachstate;                                   
3000eae0:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  int                   *detachstate                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !detachstate )               
    return EINVAL;                                                    
3000eae4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *detachstate = attr->detachstate;                                   
  return 0;                                                           
}                                                                     
3000eae8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000eaec <pthread_attr_getguardsize>: int pthread_attr_getguardsize( const pthread_attr_t *attr, size_t *guardsize ) { if ( !attr || !attr->is_initialized || !guardsize )
3000eaec:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000eaf0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getguardsize(                                        
  const pthread_attr_t  *attr,                                        
  size_t                *guardsize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !guardsize )                 
3000eaf4:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000eaf8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000eafc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000eb00:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *guardsize = attr->guardsize;                                       
3000eb04:	15933034 	ldrne	r3, [r3, #52]	; 0x34                        <== NOT EXECUTED
int pthread_attr_getguardsize(                                        
  const pthread_attr_t  *attr,                                        
  size_t                *guardsize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !guardsize )                 
3000eb08:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000eb0c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *guardsize = attr->guardsize;                                       
3000eb10:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  size_t                *guardsize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !guardsize )                 
    return EINVAL;                                                    
3000eb14:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *guardsize = attr->guardsize;                                       
  return 0;                                                           
}                                                                     
3000eb18:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000eb1c <pthread_attr_getinheritsched>: int pthread_attr_getinheritsched( const pthread_attr_t *attr, int *inheritsched ) { if ( !attr || !attr->is_initialized || !inheritsched )
3000eb1c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000eb20:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getinheritsched(                                     
  const pthread_attr_t  *attr,                                        
  int                   *inheritsched                                 
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !inheritsched )              
3000eb24:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000eb28:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000eb2c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000eb30:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *inheritsched = attr->inheritsched;                                 
3000eb34:	15933010 	ldrne	r3, [r3, #16]                               <== NOT EXECUTED
int pthread_attr_getinheritsched(                                     
  const pthread_attr_t  *attr,                                        
  int                   *inheritsched                                 
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !inheritsched )              
3000eb38:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000eb3c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *inheritsched = attr->inheritsched;                                 
3000eb40:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  int                   *inheritsched                                 
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !inheritsched )              
    return EINVAL;                                                    
3000eb44:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *inheritsched = attr->inheritsched;                                 
  return 0;                                                           
}                                                                     
3000eb48:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000eb4c <pthread_attr_getschedparam>: int pthread_attr_getschedparam( const pthread_attr_t *attr, struct sched_param *param ) { if ( !attr || !attr->is_initialized || !param )
3000eb4c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
                                                                      
int pthread_attr_getschedparam(                                       
  const pthread_attr_t   *attr,                                       
  struct sched_param     *param                                       
)                                                                     
{                                                                     
3000eb50:	e92d0030 	push	{r4, r5}                                     <== NOT EXECUTED
3000eb54:	e1a0c001 	mov	ip, r1                                        <== NOT EXECUTED
  if ( !attr || !attr->is_initialized || !param )                     
3000eb58:	0a00000d 	beq	3000eb94 <pthread_attr_getschedparam+0x48>    <== NOT EXECUTED
3000eb5c:	e5905000 	ldr	r5, [r0]                                      <== NOT EXECUTED
3000eb60:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000eb64:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
3000eb68:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
3000eb6c:	03a05001 	moveq	r5, #1                                      <== NOT EXECUTED
3000eb70:	0a000007 	beq	3000eb94 <pthread_attr_getschedparam+0x48>    <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *param = attr->schedparam;                                          
3000eb74:	e2804018 	add	r4, r0, #24                                   <== NOT EXECUTED
3000eb78:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3000eb7c:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
3000eb80:	e8940007 	ldm	r4, {r0, r1, r2}                              <== NOT EXECUTED
3000eb84:	e88c0007 	stm	ip, {r0, r1, r2}                              <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000eb88:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000eb8c:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
3000eb90:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  const pthread_attr_t   *attr,                                       
  struct sched_param     *param                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !param )                     
    return EINVAL;                                                    
3000eb94:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
3000eb98:	eafffffa 	b	3000eb88 <pthread_attr_getschedparam+0x3c>      <== NOT EXECUTED
                                                                      

3000eb9c <pthread_attr_getschedpolicy>: int pthread_attr_getschedpolicy( const pthread_attr_t *attr, int *policy ) { if ( !attr || !attr->is_initialized || !policy )
3000eb9c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000eba0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getschedpolicy(                                      
  const pthread_attr_t  *attr,                                        
  int                   *policy                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !policy )                    
3000eba4:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000eba8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ebac:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ebb0:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *policy = attr->schedpolicy;                                        
3000ebb4:	15933014 	ldrne	r3, [r3, #20]                               <== NOT EXECUTED
int pthread_attr_getschedpolicy(                                      
  const pthread_attr_t  *attr,                                        
  int                   *policy                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !policy )                    
3000ebb8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000ebbc:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *policy = attr->schedpolicy;                                        
3000ebc0:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  int                   *policy                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !policy )                    
    return EINVAL;                                                    
3000ebc4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *policy = attr->schedpolicy;                                        
  return 0;                                                           
}                                                                     
3000ebc8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ebcc <pthread_attr_getscope>: int pthread_attr_getscope( const pthread_attr_t *attr, int *contentionscope ) { if ( !attr || !attr->is_initialized || !contentionscope )
3000ebcc:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000ebd0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getscope(                                            
  const pthread_attr_t  *attr,                                        
  int                   *contentionscope                              
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !contentionscope )           
3000ebd4:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ebd8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ebdc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ebe0:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *contentionscope = attr->contentionscope;                           
3000ebe4:	1593300c 	ldrne	r3, [r3, #12]                               <== NOT EXECUTED
int pthread_attr_getscope(                                            
  const pthread_attr_t  *attr,                                        
  int                   *contentionscope                              
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !contentionscope )           
3000ebe8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000ebec:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *contentionscope = attr->contentionscope;                           
3000ebf0:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  int                   *contentionscope                              
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !contentionscope )           
    return EINVAL;                                                    
3000ebf4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *contentionscope = attr->contentionscope;                           
  return 0;                                                           
}                                                                     
3000ebf8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ec2c <pthread_attr_getstack>: const pthread_attr_t *attr, void **stackaddr, size_t *stacksize ) { if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )
3000ec2c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
3000ec30:	0a00000c 	beq	3000ec68 <pthread_attr_getstack+0x3c>         <== NOT EXECUTED
3000ec34:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ec38:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ec3c:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
3000ec40:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000ec44:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000ec48:	0a000006 	beq	3000ec68 <pthread_attr_getstack+0x3c>         <== NOT EXECUTED
3000ec4c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000ec50:	0a000006 	beq	3000ec70 <pthread_attr_getstack+0x44>         <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
3000ec54:	e593c004 	ldr	ip, [r3, #4]                                  <== NOT EXECUTED
  *stacksize = attr->stacksize;                                       
3000ec58:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
3000ec5c:	e581c000 	str	ip, [r1]                                      <== NOT EXECUTED
  *stacksize = attr->stacksize;                                       
3000ec60:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
  return 0;                                                           
3000ec64:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  void                  **stackaddr,                                  
  size_t                 *stacksize                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr || !stacksize )   
    return EINVAL;                                                    
3000ec68:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000ec6c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
3000ec70:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  *stackaddr = attr->stackaddr;                                       
  *stacksize = attr->stacksize;                                       
  return 0;                                                           
}                                                                     
3000ec74:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ebfc <pthread_attr_getstackaddr>: int pthread_attr_getstackaddr( const pthread_attr_t *attr, void **stackaddr ) { if ( !attr || !attr->is_initialized || !stackaddr )
3000ebfc:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000ec00:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getstackaddr(                                        
  const pthread_attr_t   *attr,                                       
  void                  **stackaddr                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr )                 
3000ec04:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ec08:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ec0c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ec10:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
3000ec14:	15933004 	ldrne	r3, [r3, #4]                                <== NOT EXECUTED
int pthread_attr_getstackaddr(                                        
  const pthread_attr_t   *attr,                                       
  void                  **stackaddr                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr )                 
3000ec18:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000ec1c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *stackaddr = attr->stackaddr;                                       
3000ec20:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t   *attr,                                       
  void                  **stackaddr                                   
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stackaddr )                 
    return EINVAL;                                                    
3000ec24:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *stackaddr = attr->stackaddr;                                       
  return 0;                                                           
}                                                                     
3000ec28:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ec78 <pthread_attr_getstacksize>: int pthread_attr_getstacksize( const pthread_attr_t *attr, size_t *stacksize ) { if ( !attr || !attr->is_initialized || !stacksize )
3000ec78:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000ec7c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_getstacksize(                                        
  const pthread_attr_t  *attr,                                        
  size_t                *stacksize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stacksize )                 
3000ec80:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ec84:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ec88:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ec8c:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *stacksize = attr->stacksize;                                       
3000ec90:	15933008 	ldrne	r3, [r3, #8]                                <== NOT EXECUTED
int pthread_attr_getstacksize(                                        
  const pthread_attr_t  *attr,                                        
  size_t                *stacksize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stacksize )                 
3000ec94:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000ec98:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *stacksize = attr->stacksize;                                       
3000ec9c:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_attr_t  *attr,                                        
  size_t                *stacksize                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !stacksize )                 
    return EINVAL;                                                    
3000eca0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *stacksize = attr->stacksize;                                       
  return 0;                                                           
}                                                                     
3000eca4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000f718 <pthread_attr_setcputime>: int pthread_attr_setcputime( pthread_attr_t *attr, int clock_allowed ) { if ( !attr || !attr->is_initialized )
3000f718:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000f71c:	0a000008 	beq	3000f744 <pthread_attr_setcputime+0x2c>       <== NOT EXECUTED
3000f720:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000f724:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000f728:	0a000005 	beq	3000f744 <pthread_attr_setcputime+0x2c>       <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( clock_allowed ) {                                          
3000f72c:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case CLOCK_ENABLED:                                               
    case CLOCK_DISABLED:                                              
      attr->cputime_clock_allowed = clock_allowed;                    
3000f730:	95801038 	strls	r1, [r0, #56]	; 0x38                        <== NOT EXECUTED
      return 0;                                                       
3000f734:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( clock_allowed ) {                                          
3000f738:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case CLOCK_DISABLED:                                              
      attr->cputime_clock_allowed = clock_allowed;                    
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000f73c:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000f740:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int              clock_allowed                                      
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000f744:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000f748:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ecf4 <pthread_attr_setdetachstate>: int pthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate ) { if ( !attr || !attr->is_initialized )
3000ecf4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ecf8:	0a000008 	beq	3000ed20 <pthread_attr_setdetachstate+0x2c>   <== NOT EXECUTED
3000ecfc:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ed00:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ed04:	0a000005 	beq	3000ed20 <pthread_attr_setdetachstate+0x2c>   <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( detachstate ) {                                            
3000ed08:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case PTHREAD_CREATE_DETACHED:                                     
    case PTHREAD_CREATE_JOINABLE:                                     
      attr->detachstate = detachstate;                                
3000ed0c:	9580103c 	strls	r1, [r0, #60]	; 0x3c                        <== NOT EXECUTED
      return 0;                                                       
3000ed10:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( detachstate ) {                                            
3000ed14:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case PTHREAD_CREATE_JOINABLE:                                     
      attr->detachstate = detachstate;                                
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000ed18:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000ed1c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int              detachstate                                        
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000ed20:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000ed24:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ed28 <pthread_attr_setguardsize>: int pthread_attr_setguardsize( pthread_attr_t *attr, size_t guardsize ) { if ( !attr || !attr->is_initialized )
3000ed28:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000ed2c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_setguardsize(                                        
  pthread_attr_t  *attr,                                              
  size_t           guardsize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000ed30:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ed34:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ed38:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->guardsize = guardsize;                                        
3000ed3c:	15801034 	strne	r1, [r0, #52]	; 0x34                        <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  size_t           guardsize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000ed40:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->guardsize = guardsize;                                        
  return 0;                                                           
3000ed44:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
}                                                                     
3000ed48:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300107ac <pthread_attr_setinheritsched>: int pthread_attr_setinheritsched( pthread_attr_t *attr, int inheritsched ) { if ( !attr || !attr->is_initialized )
300107ac:	e3500000 	cmp	r0, #0                                        
300107b0:	0a000009 	beq	300107dc <pthread_attr_setinheritsched+0x30>  
300107b4:	e5903000 	ldr	r3, [r0]                                      
300107b8:	e3530000 	cmp	r3, #0                                        
300107bc:	0a000006 	beq	300107dc <pthread_attr_setinheritsched+0x30>  
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
300107c0:	e2413001 	sub	r3, r1, #1                                    
300107c4:	e3530001 	cmp	r3, #1                                        
    case PTHREAD_INHERIT_SCHED:                                       
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
300107c8:	95801010 	strls	r1, [r0, #16]                               
      return 0;                                                       
300107cc:	93a00000 	movls	r0, #0                                      
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( inheritsched ) {                                           
300107d0:	912fff1e 	bxls	lr                                           
    case PTHREAD_EXPLICIT_SCHED:                                      
      attr->inheritsched = inheritsched;                              
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
300107d4:	e3a00086 	mov	r0, #134	; 0x86                               <== NOT EXECUTED
  }                                                                   
}                                                                     
300107d8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int              inheritsched                                       
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
300107dc:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
300107e0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ed84 <pthread_attr_setschedparam>: int pthread_attr_setschedparam( pthread_attr_t *attr, const struct sched_param *param ) { if ( !attr || !attr->is_initialized || !param )
3000ed84:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
                                                                      
int pthread_attr_setschedparam(                                       
  pthread_attr_t           *attr,                                     
  const struct sched_param *param                                     
)                                                                     
{                                                                     
3000ed88:	e92d0030 	push	{r4, r5}                                     <== NOT EXECUTED
  if ( !attr || !attr->is_initialized || !param )                     
3000ed8c:	0a00000e 	beq	3000edcc <pthread_attr_setschedparam+0x48>    <== NOT EXECUTED
3000ed90:	e5905000 	ldr	r5, [r0]                                      <== NOT EXECUTED
3000ed94:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000ed98:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
3000ed9c:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
3000eda0:	03a05001 	moveq	r5, #1                                      <== NOT EXECUTED
3000eda4:	0a000008 	beq	3000edcc <pthread_attr_setschedparam+0x48>    <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->schedparam = *param;                                          
3000eda8:	e280c018 	add	ip, r0, #24                                   <== NOT EXECUTED
3000edac:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000edb0:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3000edb4:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
3000edb8:	e8940007 	ldm	r4, {r0, r1, r2}                              <== NOT EXECUTED
3000edbc:	e88c0007 	stm	ip, {r0, r1, r2}                              <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000edc0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000edc4:	e8bd0030 	pop	{r4, r5}                                      <== NOT EXECUTED
3000edc8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t           *attr,                                     
  const struct sched_param *param                                     
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !param )                     
    return EINVAL;                                                    
3000edcc:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
3000edd0:	eafffffa 	b	3000edc0 <pthread_attr_setschedparam+0x3c>      <== NOT EXECUTED
                                                                      

3000edd4 <pthread_attr_setschedpolicy>: int pthread_attr_setschedpolicy( pthread_attr_t *attr, int policy ) { if ( !attr || !attr->is_initialized )
3000edd4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000edd8:	0a00000e 	beq	3000ee18 <pthread_attr_setschedpolicy+0x44>   <== NOT EXECUTED
3000eddc:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ede0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ede4:	0a00000b 	beq	3000ee18 <pthread_attr_setschedpolicy+0x44>   <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
3000ede8:	e3510004 	cmp	r1, #4                                        <== NOT EXECUTED
3000edec:	9a000001 	bls	3000edf8 <pthread_attr_setschedpolicy+0x24>   <== NOT EXECUTED
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
3000edf0:	e3a00086 	mov	r0, #134	; 0x86                               <== NOT EXECUTED
  }                                                                   
}                                                                     
3000edf4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
3000edf8:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000edfc:	e1a03113 	lsl	r3, r3, r1                                    <== NOT EXECUTED
3000ee00:	e3130017 	tst	r3, #23                                       <== NOT EXECUTED
    case SCHED_OTHER:                                                 
    case SCHED_FIFO:                                                  
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
3000ee04:	15801014 	strne	r1, [r0, #20]                               <== NOT EXECUTED
      return 0;                                                       
3000ee08:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( policy ) {                                                 
3000ee0c:	112fff1e 	bxne	lr                                           <== NOT EXECUTED
    case SCHED_SPORADIC:                                              
      attr->schedpolicy = policy;                                     
      return 0;                                                       
                                                                      
    default:                                                          
      return ENOTSUP;                                                 
3000ee10:	e3a00086 	mov	r0, #134	; 0x86                               <== NOT EXECUTED
  }                                                                   
}                                                                     
3000ee14:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int              policy                                             
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000ee18:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000ee1c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ee20 <pthread_attr_setscope>: int pthread_attr_setscope( pthread_attr_t *attr, int contentionscope ) { if ( !attr || !attr->is_initialized )
3000ee20:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000ee24:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_setscope(                                            
  pthread_attr_t  *attr,                                              
  int              contentionscope                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000ee28:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ee2c:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ee30:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ee34:	0a000007 	beq	3000ee58 <pthread_attr_setscope+0x38>         <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
3000ee38:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    case PTHREAD_SCOPE_PROCESS:                                       
      attr->contentionscope = contentionscope;                        
3000ee3c:	0580100c 	streq	r1, [r0, #12]                               <== NOT EXECUTED
      return 0;                                                       
3000ee40:	01a00001 	moveq	r0, r1                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( contentionscope ) {                                        
3000ee44:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
                                                                      
    case PTHREAD_SCOPE_SYSTEM:                                        
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000ee48:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
3000ee4c:	03a00086 	moveq	r0, #134	; 0x86                             <== NOT EXECUTED
3000ee50:	13a00016 	movne	r0, #22                                     <== NOT EXECUTED
3000ee54:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  int              contentionscope                                    
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000ee58:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
      return ENOTSUP;                                                 
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
3000ee5c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ee84 <pthread_attr_setstack>: pthread_attr_t *attr, void *stackaddr, size_t stacksize ) { if ( !attr || !attr->is_initialized )
3000ee84:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000ee88:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  void            *stackaddr,                                         
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000ee8c:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ee90:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000ee94:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000ee98:	0a000008 	beq	3000eec0 <pthread_attr_setstack+0x3c>         <== NOT EXECUTED
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
3000ee9c:	e5831004 	str	r1, [r3, #4]                                  <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
3000eea0:	e59f1020 	ldr	r1, [pc, #32]	; 3000eec8 <pthread_attr_setstack+0x44><== NOT EXECUTED
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
3000eea4:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
3000eea8:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
3000eeac:	e1a01081 	lsl	r1, r1, #1                                    <== NOT EXECUTED
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
3000eeb0:	e1510002 	cmp	r1, r2                                        <== NOT EXECUTED
3000eeb4:	25831008 	strcs	r1, [r3, #8]                                <== NOT EXECUTED
3000eeb8:	35832008 	strcc	r2, [r3, #8]                                <== NOT EXECUTED
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
3000eebc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  void            *stackaddr,                                         
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000eec0:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  else                                                                
    attr->stacksize = stacksize;                                      
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
}                                                                     
3000eec4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000ee60 <pthread_attr_setstackaddr>: int pthread_attr_setstackaddr( pthread_attr_t *attr, void *stackaddr ) { if ( !attr || !attr->is_initialized )
3000ee60:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000ee64:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_attr_setstackaddr(                                        
  pthread_attr_t  *attr,                                              
  void            *stackaddr                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000ee68:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000ee6c:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ee70:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->stackaddr = stackaddr;                                        
3000ee74:	15801004 	strne	r1, [r0, #4]                                <== NOT EXECUTED
  pthread_attr_t  *attr,                                              
  void            *stackaddr                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000ee78:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->stackaddr = stackaddr;                                        
  return 0;                                                           
3000ee7c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
}                                                                     
3000ee80:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300107e4 <pthread_attr_setstacksize>: int pthread_attr_setstacksize( pthread_attr_t *attr, size_t stacksize ) { if ( !attr || !attr->is_initialized )
300107e4:	e3500000 	cmp	r0, #0                                        
    return EINVAL;                                                    
300107e8:	03a00016 	moveq	r0, #22                                     
int pthread_attr_setstacksize(                                        
  pthread_attr_t  *attr,                                              
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
300107ec:	012fff1e 	bxeq	lr                                           
300107f0:	e5903000 	ldr	r3, [r0]                                      
300107f4:	e3530000 	cmp	r3, #0                                        
300107f8:	0a000008 	beq	30010820 <pthread_attr_setstacksize+0x3c>     
    return EINVAL;                                                    
                                                                      
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
300107fc:	e59f3024 	ldr	r3, [pc, #36]	; 30010828 <pthread_attr_setstacksize+0x44>
30010800:	e5933000 	ldr	r3, [r3]                                      
30010804:	e1a03083 	lsl	r3, r3, #1                                    
30010808:	e1530001 	cmp	r3, r1                                        
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
3001080c:	85803008 	strhi	r3, [r0, #8]                                
  else                                                                
    attr->stacksize = stacksize;                                      
30010810:	95801008 	strls	r1, [r0, #8]                                
  return 0;                                                           
30010814:	83a00000 	movhi	r0, #0                                      
30010818:	93a00000 	movls	r0, #0                                      
3001081c:	e12fff1e 	bx	lr                                             
  pthread_attr_t  *attr,                                              
  size_t           stacksize                                          
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
30010820:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)                         
    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;                     
  else                                                                
    attr->stacksize = stacksize;                                      
  return 0;                                                           
}                                                                     
30010824:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a1b4 <pthread_barrier_destroy>: */ int pthread_barrier_destroy( pthread_barrier_t *barrier ) {
3000a1b4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  POSIX_Barrier_Control *the_barrier = NULL;                          
  Objects_Locations      location;                                    
                                                                      
  if ( !barrier )                                                     
3000a1b8:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_barrier_destroy(                                          
  pthread_barrier_t *barrier                                          
)                                                                     
{                                                                     
3000a1bc:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_Barrier_Control *the_barrier = NULL;                          
  Objects_Locations      location;                                    
                                                                      
  if ( !barrier )                                                     
3000a1c0:	0a000007 	beq	3000a1e4 <pthread_barrier_destroy+0x30>       <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (      
  pthread_barrier_t *barrier,                                         
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Barrier_Control *) _Objects_Get(                      
3000a1c4:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000a1c8:	e59f005c 	ldr	r0, [pc, #92]	; 3000a22c <pthread_barrier_destroy+0x78><== NOT EXECUTED
3000a1cc:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a1d0:	eb000993 	bl	3000c824 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  switch ( location ) {                                               
3000a1d4:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000a1d8:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000a1dc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a1e0:	0a000002 	beq	3000a1f0 <pthread_barrier_destroy+0x3c>       <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000a1e4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000a1e8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a1ec:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_barrier->Barrier.number_of_waiting_threads != 0 ) {    
3000a1f0:	e5905058 	ldr	r5, [r0, #88]	; 0x58                          <== NOT EXECUTED
3000a1f4:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000a1f8:	0a000002 	beq	3000a208 <pthread_barrier_destroy+0x54>       <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
3000a1fc:	eb000cc2 	bl	3000d50c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EBUSY;                                                 
3000a200:	e3a00010 	mov	r0, #16                                       <== NOT EXECUTED
3000a204:	eafffff7 	b	3000a1e8 <pthread_barrier_destroy+0x34>         <== NOT EXECUTED
      }                                                               
                                                                      
      _Objects_Close( &_POSIX_Barrier_Information, &the_barrier->Object );
3000a208:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000a20c:	e59f0018 	ldr	r0, [pc, #24]	; 3000a22c <pthread_barrier_destroy+0x78><== NOT EXECUTED
3000a210:	eb000877 	bl	3000c3f4 <_Objects_Close>                      <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Barrier_Free (                       
  POSIX_Barrier_Control *the_barrier                                  
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Barrier_Information, &the_barrier->Object ); 
3000a214:	e59f0010 	ldr	r0, [pc, #16]	; 3000a22c <pthread_barrier_destroy+0x78><== NOT EXECUTED
3000a218:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000a21c:	eb000929 	bl	3000c6c8 <_Objects_Free>                       <== NOT EXECUTED
                                                                      
      _POSIX_Barrier_Free( the_barrier );                             
                                                                      
      _Thread_Enable_dispatch();                                      
3000a220:	eb000cb9 	bl	3000d50c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000a224:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a228:	eaffffee 	b	3000a1e8 <pthread_barrier_destroy+0x34>         <== NOT EXECUTED
                                                                      

3000a230 <pthread_barrier_init>: int pthread_barrier_init( pthread_barrier_t *barrier, const pthread_barrierattr_t *attr, unsigned int count ) {
3000a230:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  const pthread_barrierattr_t   *the_attr;                            
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !barrier )                                                     
3000a234:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
int pthread_barrier_init(                                             
  pthread_barrier_t           *barrier,                               
  const pthread_barrierattr_t *attr,                                  
  unsigned int                 count                                  
)                                                                     
{                                                                     
3000a238:	e24dd014 	sub	sp, sp, #20                                   <== NOT EXECUTED
  const pthread_barrierattr_t   *the_attr;                            
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !barrier )                                                     
3000a23c:	0a000020 	beq	3000a2c4 <pthread_barrier_init+0x94>          <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( count == 0 )                                                   
3000a240:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000a244:	0a00001e 	beq	3000a2c4 <pthread_barrier_init+0x94>          <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
3000a248:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000a24c:	0a000022 	beq	3000a2dc <pthread_barrier_init+0xac>          <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
3000a250:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
3000a254:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a258:	0a000019 	beq	3000a2c4 <pthread_barrier_init+0x94>          <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
3000a25c:	e5915004 	ldr	r5, [r1, #4]                                  <== NOT EXECUTED
3000a260:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000a264:	1a000016 	bne	3000a2c4 <pthread_barrier_init+0x94>          <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000a268:	e59f3088 	ldr	r3, [pc, #136]	; 3000a2f8 <pthread_barrier_init+0xc8><== NOT EXECUTED
                                                                      
  /*                                                                  
   * Convert from POSIX attributes to Core Barrier attributes         
   */                                                                 
  the_attributes.discipline    = CORE_BARRIER_AUTOMATIC_RELEASE;      
  the_attributes.maximum_count = count;                               
3000a26c:	e58d2010 	str	r2, [sp, #16]                                 <== NOT EXECUTED
3000a270:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   * Convert from POSIX attributes to Core Barrier attributes         
   */                                                                 
  the_attributes.discipline    = CORE_BARRIER_AUTOMATIC_RELEASE;      
3000a274:	e58d500c 	str	r5, [sp, #12]                                 <== NOT EXECUTED
3000a278:	e2812001 	add	r2, r1, #1                                    <== NOT EXECUTED
3000a27c:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 *  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 );                 
3000a280:	e59f7074 	ldr	r7, [pc, #116]	; 3000a2fc <pthread_barrier_init+0xcc><== NOT EXECUTED
3000a284:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000a288:	eb000834 	bl	3000c360 <_Objects_Allocate>                   <== NOT EXECUTED
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
3000a28c:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000a290:	0a00000e 	beq	3000a2d0 <pthread_barrier_init+0xa0>          <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
3000a294:	e2860010 	add	r0, r6, #16                                   <== NOT EXECUTED
3000a298:	e28d100c 	add	r1, sp, #12                                   <== NOT EXECUTED
3000a29c:	eb0005b6 	bl	3000b97c <_CORE_barrier_Initialize>            <== NOT EXECUTED
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000a2a0:	e5963008 	ldr	r3, [r6, #8]                                  <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a2a4:	e597201c 	ldr	r2, [r7, #28]                                 <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000a2a8:	e1a01803 	lsl	r1, r3, #16                                   <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a2ac:	e7826721 	str	r6, [r2, r1, lsr #14]                         <== NOT EXECUTED
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
3000a2b0:	e586500c 	str	r5, [r6, #12]                                 <== NOT EXECUTED
  );                                                                  
                                                                      
  /*                                                                  
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
3000a2b4:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
3000a2b8:	eb000c93 	bl	3000d50c <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
3000a2bc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a2c0:	ea000000 	b	3000a2c8 <pthread_barrier_init+0x98>            <== NOT EXECUTED
  switch ( the_attr->process_shared ) {                               
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
3000a2c4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
   * Exit the critical section and return the user an operational barrier
   */                                                                 
  *barrier = the_barrier->Object.id;                                  
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
3000a2c8:	e28dd014 	add	sp, sp, #20                                   <== NOT EXECUTED
3000a2cc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _POSIX_Barrier_Allocate();                            
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
3000a2d0:	eb000c8d 	bl	3000d50c <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return EAGAIN;                                                    
3000a2d4:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
3000a2d8:	eafffffa 	b	3000a2c8 <pthread_barrier_init+0x98>            <== NOT EXECUTED
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_barrierattr_init( &my_attr );                      
3000a2dc:	e28d5004 	add	r5, sp, #4                                    <== NOT EXECUTED
3000a2e0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a2e4:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
3000a2e8:	ebffff9d 	bl	3000a164 <pthread_barrierattr_init>            <== NOT EXECUTED
    the_attr = &my_attr;                                              
3000a2ec:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000a2f0:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000a2f4:	eaffffd5 	b	3000a250 <pthread_barrier_init+0x20>            <== NOT EXECUTED
                                                                      

3000a300 <pthread_barrier_wait>: */ int pthread_barrier_wait( pthread_barrier_t *barrier ) {
3000a300:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  POSIX_Barrier_Control   *the_barrier = NULL;                        
  Objects_Locations        location;                                  
                                                                      
  if ( !barrier )                                                     
3000a304:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_barrier_wait(                                             
  pthread_barrier_t *barrier                                          
)                                                                     
{                                                                     
3000a308:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_Barrier_Control   *the_barrier = NULL;                        
  Objects_Locations        location;                                  
                                                                      
  if ( !barrier )                                                     
3000a30c:	0a000006 	beq	3000a32c <pthread_barrier_wait+0x2c>          <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_Barrier_Control *_POSIX_Barrier_Get (      
  pthread_barrier_t *barrier,                                         
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Barrier_Control *) _Objects_Get(                      
3000a310:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000a314:	e59f0048 	ldr	r0, [pc, #72]	; 3000a364 <pthread_barrier_wait+0x64><== NOT EXECUTED
3000a318:	e28d2004 	add	r2, sp, #4                                    <== NOT EXECUTED
3000a31c:	eb000940 	bl	3000c824 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  switch ( location ) {                                               
3000a320:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000a324:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a328:	0a000002 	beq	3000a338 <pthread_barrier_wait+0x38>          <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000a32c:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000a330:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000a334:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      
  the_barrier = _POSIX_Barrier_Get( barrier, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_barrier_Wait(                                             
3000a338:	e5901008 	ldr	r1, [r0, #8]                                  <== NOT EXECUTED
3000a33c:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000a340:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000a344:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000a348:	eb000596 	bl	3000b9a8 <_CORE_barrier_Wait>                  <== NOT EXECUTED
        the_barrier->Object.id,                                       
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
3000a34c:	eb000c6e 	bl	3000d50c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
                _Thread_Executing->Wait.return_code );                
3000a350:	e59f3010 	ldr	r3, [pc, #16]	; 3000a368 <pthread_barrier_wait+0x68><== NOT EXECUTED
3000a354:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
        true,                                                         
        0,                                                            
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _POSIX_Barrier_Translate_core_barrier_return_code(       
3000a358:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000a35c:	eb00184d 	bl	30010498 <_POSIX_Barrier_Translate_core_barrier_return_code><== NOT EXECUTED
3000a360:	eafffff2 	b	3000a330 <pthread_barrier_wait+0x30>            <== NOT EXECUTED
                                                                      

3000a118 <pthread_barrierattr_destroy>: int pthread_barrierattr_destroy( pthread_barrierattr_t *attr ) { if ( !attr || attr->is_initialized == false )
3000a118:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000a11c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
int pthread_barrierattr_destroy(                                      
  pthread_barrierattr_t *attr                                         
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
3000a120:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000a124:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000a128:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
3000a12c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000a130:	15830000 	strne	r0, [r3]                                    <== NOT EXECUTED
int pthread_barrierattr_destroy(                                      
  pthread_barrierattr_t *attr                                         
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
3000a134:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
3000a138:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a13c <pthread_barrierattr_getpshared>: int pthread_barrierattr_getpshared( const pthread_barrierattr_t *attr, int *pshared ) { if ( !attr )
3000a13c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000a140:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_barrierattr_getpshared(                                   
  const pthread_barrierattr_t *attr,                                  
  int                         *pshared                                
)                                                                     
{                                                                     
  if ( !attr )                                                        
3000a144:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
3000a148:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000a14c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000a150:	15903004 	ldrne	r3, [r0, #4]                                <== NOT EXECUTED
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
3000a154:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
3000a158:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000a15c:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000a160:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a164 <pthread_barrierattr_init>: int pthread_barrierattr_init( pthread_barrierattr_t *attr ) { if ( !attr )
3000a164:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = true;                                        
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
3000a168:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = true;                                        
3000a16c:	13a02001 	movne	r2, #1                                      <== NOT EXECUTED
3000a170:	15832000 	strne	r2, [r3]                                    <== NOT EXECUTED
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
3000a174:	15830004 	strne	r0, [r3, #4]                                <== NOT EXECUTED
int pthread_barrierattr_init(                                         
  pthread_barrierattr_t *attr                                         
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
3000a178:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = true;                                        
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
  return 0;                                                           
}                                                                     
3000a17c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a180 <pthread_barrierattr_setpshared>: int pthread_barrierattr_setpshared( pthread_barrierattr_t *attr, int pshared ) { if ( !attr )
3000a180:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a184:	0a000008 	beq	3000a1ac <pthread_barrierattr_setpshared+0x2c><== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
3000a188:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000a18c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a190:	0a000005 	beq	3000a1ac <pthread_barrierattr_setpshared+0x2c><== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000a194:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
3000a198:	95801004 	strls	r1, [r0, #4]                                <== NOT EXECUTED
      return 0;                                                       
3000a19c:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000a1a0:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000a1a4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000a1a8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
3000a1ac:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000a1b0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300096b8 <pthread_cancel>: */ int pthread_cancel( pthread_t thread ) {
300096b8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Don't even think about deleting a resource from an ISR.         
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
300096bc:	e59f304c 	ldr	r3, [pc, #76]	; 30009710 <pthread_cancel+0x58><== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_cancel(                                                   
  pthread_t  thread                                                   
)                                                                     
{                                                                     
300096c0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Don't even think about deleting a resource from an ISR.         
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
300096c4:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
300096c8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return EPROTO;                                                    
300096cc:	13a00047 	movne	r0, #71	; 0x47                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Don't even think about deleting a resource from an ISR.         
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
300096d0:	0a000001 	beq	300096dc <pthread_cancel+0x24>                <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
300096d4:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
300096d8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
300096dc:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
300096e0:	eb000b87 	bl	3000c504 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
300096e4:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
300096e8:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
300096ec:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
300096f0:	13a00016 	movne	r0, #22                                     <== NOT EXECUTED
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
300096f4:	1afffff6 	bne	300096d4 <pthread_cancel+0x1c>                <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      thread_support = the_thread->API_Extensions[ THREAD_API_POSIX ];
                                                                      
      thread_support->cancelation_requested = 1;                      
300096f8:	e59330fc 	ldr	r3, [r3, #252]	; 0xfc                         <== NOT EXECUTED
300096fc:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
30009700:	e58320e0 	str	r2, [r3, #224]	; 0xe0                         <== NOT EXECUTED
                                                                      
      /* This enables dispatch implicitly */                          
      _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch( the_thread );
30009704:	eb001685 	bl	3000f120 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch><== NOT EXECUTED
      return 0;                                                       
30009708:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000970c:	eafffff0 	b	300096d4 <pthread_cancel+0x1c>                  <== NOT EXECUTED
                                                                      

300094b0 <pthread_cleanup_pop>: */ void pthread_cleanup_pop( int execute ) {
300094b0:	e92d4070 	push	{r4, r5, r6, lr}                             
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
300094b4:	e59f2080 	ldr	r2, [pc, #128]	; 3000953c <pthread_cleanup_pop+0x8c>
  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 ];
300094b8:	e59f3080 	ldr	r3, [pc, #128]	; 30009540 <pthread_cleanup_pop+0x90>
300094bc:	e5921000 	ldr	r1, [r2]                                      
300094c0:	e5933004 	ldr	r3, [r3, #4]                                  
300094c4:	e2811001 	add	r1, r1, #1                                    
300094c8:	e59330fc 	ldr	r3, [r3, #252]	; 0xfc                         
300094cc:	e5821000 	str	r1, [r2]                                      
 */                                                                   
                                                                      
void pthread_cleanup_pop(                                             
  int    execute                                                      
)                                                                     
{                                                                     
300094d0:	e1a04000 	mov	r4, r0                                        
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
300094d4:	e10f5000 	mrs	r5, CPSR                                      
300094d8:	e3852080 	orr	r2, r5, #128	; 0x80                           
300094dc:	e129f002 	msr	CPSR_fc, r2                                   
   */                                                                 
                                                                      
  _Thread_Disable_dispatch();                                         
  _ISR_Disable( level );                                              
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
300094e0:	e59310e4 	ldr	r1, [r3, #228]	; 0xe4                         
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
300094e4:	e28320e8 	add	r2, r3, #232	; 0xe8                           
300094e8:	e1510002 	cmp	r1, r2                                        
300094ec:	0a00000f 	beq	30009530 <pthread_cleanup_pop+0x80>           
      _Thread_Enable_dispatch();                                      
      _ISR_Enable( level );                                           
      return;                                                         
    }                                                                 
                                                                      
    handler = (POSIX_Cancel_Handler_control *)                        
300094f0:	e59330ec 	ldr	r3, [r3, #236]	; 0xec                         
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
300094f4:	e8930006 	ldm	r3, {r1, r2}                                  
  previous       = the_node->previous;                                
  next->previous = previous;                                          
300094f8:	e5812004 	str	r2, [r1, #4]                                  
  previous->next = next;                                              
300094fc:	e5821000 	str	r1, [r2]                                      
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30009500:	e129f005 	msr	CPSR_fc, r5                                   
                                                                      
  _ISR_Enable( level );                                               
                                                                      
  tmp_handler = *handler;                                             
                                                                      
  _Workspace_Free( handler );                                         
30009504:	e1a00003 	mov	r0, r3                                        
30009508:	e5935008 	ldr	r5, [r3, #8]                                  
3000950c:	e593600c 	ldr	r6, [r3, #12]                                 
30009510:	eb000f7a 	bl	3000d300 <_Workspace_Free>                     
                                                                      
  _Thread_Enable_dispatch();                                          
30009514:	eb000afe 	bl	3000c114 <_Thread_Enable_dispatch>             
                                                                      
  if ( execute )                                                      
30009518:	e3540000 	cmp	r4, #0                                        
3000951c:	08bd8070 	popeq	{r4, r5, r6, pc}                            
    (*tmp_handler.routine)( tmp_handler.arg );                        
30009520:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30009524:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
30009528:	e12fff15 	bx	r5                                             <== NOT EXECUTED
3000952c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
  _ISR_Disable( level );                                              
                                                                      
    if ( _Chain_Is_empty( handler_stack ) ) {                         
      _Thread_Enable_dispatch();                                      
30009530:	eb000af7 	bl	3000c114 <_Thread_Enable_dispatch>             <== NOT EXECUTED
30009534:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
30009538:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000aa7c <pthread_cond_destroy>: */ int pthread_cond_destroy( pthread_cond_t *cond ) {
3000aa7c:	e92d4030 	push	{r4, r5, lr}                                 
3000aa80:	e24dd004 	sub	sp, sp, #4                                    
  POSIX_Condition_variables_Control *the_cond;                        
  Objects_Locations                  location;                        
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
3000aa84:	e1a0100d 	mov	r1, sp                                        
3000aa88:	eb000016 	bl	3000aae8 <_POSIX_Condition_variables_Get>      
  switch ( location ) {                                               
3000aa8c:	e59d3000 	ldr	r3, [sp]                                      
)                                                                     
{                                                                     
  POSIX_Condition_variables_Control *the_cond;                        
  Objects_Locations                  location;                        
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
3000aa90:	e1a04000 	mov	r4, r0                                        
  switch ( location ) {                                               
3000aa94:	e3530000 	cmp	r3, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000aa98:	13a00016 	movne	r0, #22                                     
{                                                                     
  POSIX_Condition_variables_Control *the_cond;                        
  Objects_Locations                  location;                        
                                                                      
  the_cond = _POSIX_Condition_variables_Get( cond, &location );       
  switch ( location ) {                                               
3000aa9c:	1a000005 	bne	3000aab8 <pthread_cond_destroy+0x3c>          
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
3000aaa0:	e2840018 	add	r0, r4, #24                                   
3000aaa4:	eb001008 	bl	3000eacc <_Thread_queue_First>                 
3000aaa8:	e2505000 	subs	r5, r0, #0                                   
3000aaac:	0a000003 	beq	3000aac0 <pthread_cond_destroy+0x44>          
        _Thread_Enable_dispatch();                                    
3000aab0:	eb000e35 	bl	3000e38c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EBUSY;                                                 
3000aab4:	e3a00010 	mov	r0, #16                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
3000aab8:	e28dd004 	add	sp, sp, #4                                    
3000aabc:	e8bd8030 	pop	{r4, r5, pc}                                  
      if ( _Thread_queue_First( &the_cond->Wait_queue ) ) {           
        _Thread_Enable_dispatch();                                    
        return EBUSY;                                                 
      }                                                               
                                                                      
      _Objects_Close(                                                 
3000aac0:	e1a01004 	mov	r1, r4                                        
3000aac4:	e59f0018 	ldr	r0, [pc, #24]	; 3000aae4 <pthread_cond_destroy+0x68>
3000aac8:	eb0009e9 	bl	3000d274 <_Objects_Close>                      
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Condition_variables_Free (           
  POSIX_Condition_variables_Control *the_condition_variable           
)                                                                     
{                                                                     
  _Objects_Free(                                                      
3000aacc:	e59f0010 	ldr	r0, [pc, #16]	; 3000aae4 <pthread_cond_destroy+0x68>
3000aad0:	e1a01004 	mov	r1, r4                                        
3000aad4:	eb000a9b 	bl	3000d548 <_Objects_Free>                       
        &_POSIX_Condition_variables_Information,                      
        &the_cond->Object                                             
      );                                                              
                                                                      
      _POSIX_Condition_variables_Free( the_cond );                    
      _Thread_Enable_dispatch();                                      
3000aad8:	eb000e2b 	bl	3000e38c <_Thread_Enable_dispatch>             
      return 0;                                                       
3000aadc:	e1a00005 	mov	r0, r5                                        
3000aae0:	eafffff4 	b	3000aab8 <pthread_cond_destroy+0x3c>            
                                                                      

3000ab48 <pthread_cond_init>: int pthread_cond_init( pthread_cond_t *cond, const pthread_condattr_t *attr ) {
3000ab48:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  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;
3000ab4c:	e3510000 	cmp	r1, #0                                        
3000ab50:	e59f60a0 	ldr	r6, [pc, #160]	; 3000abf8 <pthread_cond_init+0xb0>
3000ab54:	11a06001 	movne	r6, r1                                      
                                                                      
  /*                                                                  
   *  Be careful about attributes when global!!!                      
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
3000ab58:	e5963004 	ldr	r3, [r6, #4]                                  
                                                                      
int pthread_cond_init(                                                
  pthread_cond_t           *cond,                                     
  const pthread_condattr_t *attr                                      
)                                                                     
{                                                                     
3000ab5c:	e1a05000 	mov	r5, r0                                        
  else        the_attr = &_POSIX_Condition_variables_Default_attributes;
                                                                      
  /*                                                                  
   *  Be careful about attributes when global!!!                      
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
3000ab60:	e3530001 	cmp	r3, #1                                        
    return EINVAL;                                                    
3000ab64:	03a00016 	moveq	r0, #22                                     
  else        the_attr = &_POSIX_Condition_variables_Default_attributes;
                                                                      
  /*                                                                  
   *  Be careful about attributes when global!!!                      
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
3000ab68:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    return EINVAL;                                                    
                                                                      
  if ( !the_attr->is_initialized )                                    
3000ab6c:	e5963000 	ldr	r3, [r6]                                      
3000ab70:	e3530000 	cmp	r3, #0                                        
3000ab74:	1a000001 	bne	3000ab80 <pthread_cond_init+0x38>             
    return EINVAL;                                                    
3000ab78:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  *cond = the_cond->Object.id;                                        
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return 0;                                                           
}                                                                     
3000ab7c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000ab80:	e59f3074 	ldr	r3, [pc, #116]	; 3000abfc <pthread_cond_init+0xb4>
3000ab84:	e5932000 	ldr	r2, [r3]                                      
3000ab88:	e2822001 	add	r2, r2, #1                                    
3000ab8c:	e5832000 	str	r2, [r3]                                      
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Condition_variables_Control                
  *_POSIX_Condition_variables_Allocate( void )                        
{                                                                     
  return (POSIX_Condition_variables_Control *)                        
    _Objects_Allocate( &_POSIX_Condition_variables_Information );     
3000ab90:	e59f7068 	ldr	r7, [pc, #104]	; 3000ac00 <pthread_cond_init+0xb8>
3000ab94:	e1a00007 	mov	r0, r7                                        
3000ab98:	eb000990 	bl	3000d1e0 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
3000ab9c:	e2504000 	subs	r4, r0, #0                                   
3000aba0:	0a000011 	beq	3000abec <pthread_cond_init+0xa4>             
    _Thread_Enable_dispatch();                                        
    return ENOMEM;                                                    
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
3000aba4:	e5963004 	ldr	r3, [r6, #4]                                  
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
3000aba8:	e3a06000 	mov	r6, #0                                        
                                                                      
  _Thread_queue_Initialize(                                           
3000abac:	e2840018 	add	r0, r4, #24                                   
  if ( !the_cond ) {                                                  
    _Thread_Enable_dispatch();                                        
    return ENOMEM;                                                    
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
3000abb0:	e5843010 	str	r3, [r4, #16]                                 
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
                                                                      
  _Thread_queue_Initialize(                                           
3000abb4:	e1a01006 	mov	r1, r6                                        
3000abb8:	e59f2044 	ldr	r2, [pc, #68]	; 3000ac04 <pthread_cond_init+0xbc>
3000abbc:	e3a03074 	mov	r3, #116	; 0x74                               
    return ENOMEM;                                                    
  }                                                                   
                                                                      
  the_cond->process_shared  = the_attr->process_shared;               
                                                                      
  the_cond->Mutex = POSIX_CONDITION_VARIABLES_NO_MUTEX;               
3000abc0:	e5846014 	str	r6, [r4, #20]                                 
                                                                      
  _Thread_queue_Initialize(                                           
3000abc4:	eb000fe5 	bl	3000eb60 <_Thread_queue_Initialize>            
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000abc8:	e5943008 	ldr	r3, [r4, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000abcc:	e597201c 	ldr	r2, [r7, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000abd0:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000abd4:	e7824721 	str	r4, [r2, r1, lsr #14]                         
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
3000abd8:	e584600c 	str	r6, [r4, #12]                                 
    &_POSIX_Condition_variables_Information,                          
    &the_cond->Object,                                                
    0                                                                 
  );                                                                  
                                                                      
  *cond = the_cond->Object.id;                                        
3000abdc:	e5853000 	str	r3, [r5]                                      
                                                                      
  _Thread_Enable_dispatch();                                          
3000abe0:	eb000de9 	bl	3000e38c <_Thread_Enable_dispatch>             
                                                                      
  return 0;                                                           
3000abe4:	e1a00006 	mov	r0, r6                                        
3000abe8:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
  _Thread_Disable_dispatch();                                         
                                                                      
  the_cond = _POSIX_Condition_variables_Allocate();                   
                                                                      
  if ( !the_cond ) {                                                  
    _Thread_Enable_dispatch();                                        
3000abec:	eb000de6 	bl	3000e38c <_Thread_Enable_dispatch>             
    return ENOMEM;                                                    
3000abf0:	e3a0000c 	mov	r0, #12                                       
3000abf4:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

3000ac08 <pthread_cond_signal>: int pthread_cond_signal( pthread_cond_t *cond ) { return _POSIX_Condition_variables_Signal_support( cond, false );
3000ac08:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000ac0c:	eaffffff 	b	3000ac10 <_POSIX_Condition_variables_Signal_support><== NOT EXECUTED
                                                                      

3000ac70 <pthread_cond_timedwait>: int pthread_cond_timedwait( pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime ) {
3000ac70:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000ac74:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000ac78:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000ac7c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
   *  is valid or not.  If it isn't correct and in the future,        
   *  then we do a polling operation and convert the UNSATISFIED      
   *  status into the appropriate error.                              
   */                                                                 
  already_timedout = false;                                           
  status = _POSIX_Absolute_timeout_to_ticks(abstime, &ticks);         
3000ac80:	e1a00002 	mov	r0, r2                                        <== NOT EXECUTED
3000ac84:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000ac88:	eb00012a 	bl	3000b138 <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                     
3000ac8c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000ac90:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
   *  then we do a polling operation and convert the UNSATISFIED      
   *  status into the appropriate error.                              
   */                                                                 
  already_timedout = false;                                           
  status = _POSIX_Absolute_timeout_to_ticks(abstime, &ticks);         
  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                     
3000ac94:	0a000007 	beq	3000acb8 <pthread_cond_timedwait+0x48>        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                 
3000ac98:	e2403001 	sub	r3, r0, #1                                    <== NOT EXECUTED
       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                      
    already_timedout = true;                                          
                                                                      
  return _POSIX_Condition_variables_Wait_support(                     
3000ac9c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000aca0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000aca4:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000aca8:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000acac:	83a03000 	movhi	r3, #0                                      <== NOT EXECUTED
3000acb0:	93a03001 	movls	r3, #1                                      <== NOT EXECUTED
3000acb4:	eb000004 	bl	3000accc <_POSIX_Condition_variables_Wait_support><== NOT EXECUTED
    cond,                                                             
    mutex,                                                            
    ticks,                                                            
    already_timedout                                                  
  );                                                                  
}                                                                     
3000acb8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000acbc:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000acc0 <pthread_cond_wait>: int pthread_cond_wait( pthread_cond_t *cond, pthread_mutex_t *mutex ) { return _POSIX_Condition_variables_Wait_support(
3000acc0:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000acc4:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000acc8:	eaffffff 	b	3000accc <_POSIX_Condition_variables_Wait_support><== NOT EXECUTED
                                                                      

3000a9f0 <pthread_condattr_destroy>: int pthread_condattr_destroy( pthread_condattr_t *attr ) { if ( !attr || attr->is_initialized == false )
3000a9f0:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000a9f4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
int pthread_condattr_destroy(                                         
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
3000a9f8:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000a9fc:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000aa00:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
3000aa04:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000aa08:	15830000 	strne	r0, [r3]                                    <== NOT EXECUTED
int pthread_condattr_destroy(                                         
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
3000aa0c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
3000aa10:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa14 <pthread_condattr_getpshared>: int pthread_condattr_getpshared( const pthread_condattr_t *attr, int *pshared ) { if ( !attr )
3000aa14:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000aa18:	15903004 	ldrne	r3, [r0, #4]                                <== NOT EXECUTED
  const pthread_condattr_t *attr,                                     
  int                      *pshared                                   
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
3000aa1c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
3000aa20:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000aa24:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000aa28:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa2c <pthread_condattr_init>: int pthread_condattr_init( pthread_condattr_t *attr ) { if ( !attr )
3000aa2c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
3000aa30:	0a000004 	beq	3000aa48 <pthread_condattr_init+0x1c>         <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *attr = _POSIX_Condition_variables_Default_attributes;              
3000aa34:	e59f2014 	ldr	r2, [pc, #20]	; 3000aa50 <pthread_condattr_init+0x24><== NOT EXECUTED
  return 0;                                                           
3000aa38:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  *attr = _POSIX_Condition_variables_Default_attributes;              
3000aa3c:	e8920006 	ldm	r2, {r1, r2}                                  <== NOT EXECUTED
3000aa40:	e8830006 	stm	r3, {r1, r2}                                  <== NOT EXECUTED
  return 0;                                                           
3000aa44:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
int pthread_condattr_init(                                            
  pthread_condattr_t *attr                                            
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
3000aa48:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  *attr = _POSIX_Condition_variables_Default_attributes;              
  return 0;                                                           
}                                                                     
3000aa4c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa54 <pthread_condattr_setpshared>: int pthread_condattr_setpshared( pthread_condattr_t *attr, int pshared ) { if ( !attr )
3000aa54:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000aa58:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_condattr_setpshared(                                      
  pthread_condattr_t *attr,                                           
  int                 pshared                                         
)                                                                     
{                                                                     
  if ( !attr )                                                        
3000aa5c:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000aa60:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
3000aa64:	95801004 	strls	r1, [r0, #4]                                <== NOT EXECUTED
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000aa68:	83a00016 	movhi	r0, #22                                     <== NOT EXECUTED
                                                                      
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
3000aa6c:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
                                                                      
    default:                                                          
      return EINVAL;                                                  
  }                                                                   
}                                                                     
3000aa70:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30009e64 <pthread_create>: pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)( void * ), void *arg ) {
30009e64:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  int                                 schedpolicy = SCHED_RR;         
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
30009e68:	e2527000 	subs	r7, r2, #0                                   
  pthread_t              *thread,                                     
  const pthread_attr_t   *attr,                                       
  void                 *(*start_routine)( void * ),                   
  void                   *arg                                         
)                                                                     
{                                                                     
30009e6c:	e24dd048 	sub	sp, sp, #72	; 0x48                            
30009e70:	e1a08000 	mov	r8, r0                                        
30009e74:	e1a06003 	mov	r6, r3                                        
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
    return EFAULT;                                                    
30009e78:	03a0500e 	moveq	r5, #14                                     
  int                                 schedpolicy = SCHED_RR;         
  struct sched_param                  schedparam;                     
  Objects_Name                        name;                           
  int                                 rc;                             
                                                                      
  if ( !start_routine )                                               
30009e7c:	0a000013 	beq	30009ed0 <pthread_create+0x6c>                
    return EFAULT;                                                    
                                                                      
  the_attr = (attr) ? attr : &_POSIX_Threads_Default_attributes;      
30009e80:	e59f4260 	ldr	r4, [pc, #608]	; 3000a0e8 <pthread_create+0x284>
30009e84:	e3510000 	cmp	r1, #0                                        
30009e88:	11a04001 	movne	r4, r1                                      
                                                                      
  if ( !the_attr->is_initialized )                                    
30009e8c:	e5943000 	ldr	r3, [r4]                                      
30009e90:	e3530000 	cmp	r3, #0                                        
30009e94:	0a00000c 	beq	30009ecc <pthread_create+0x68>                
   *  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) )
30009e98:	e5943004 	ldr	r3, [r4, #4]                                  
30009e9c:	e3530000 	cmp	r3, #0                                        
30009ea0:	0a000004 	beq	30009eb8 <pthread_create+0x54>                
30009ea4:	e59f3240 	ldr	r3, [pc, #576]	; 3000a0ec <pthread_create+0x288><== NOT EXECUTED
30009ea8:	e5942008 	ldr	r2, [r4, #8]                                  <== NOT EXECUTED
30009eac:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
30009eb0:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
30009eb4:	3a000004 	bcc	30009ecc <pthread_create+0x68>                <== NOT EXECUTED
   *  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 ) {                                 
30009eb8:	e5943010 	ldr	r3, [r4, #16]                                 
30009ebc:	e3530001 	cmp	r3, #1                                        
30009ec0:	0a000048 	beq	30009fe8 <pthread_create+0x184>               
30009ec4:	e3530002 	cmp	r3, #2                                        
30009ec8:	0a000003 	beq	30009edc <pthread_create+0x78>                
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
    return EINVAL;                                                    
30009ecc:	e3a05016 	mov	r5, #22                                       <== NOT EXECUTED
   */                                                                 
  *thread = the_thread->Object.id;                                    
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return 0;                                                           
}                                                                     
30009ed0:	e1a00005 	mov	r0, r5                                        
30009ed4:	e28dd048 	add	sp, sp, #72	; 0x48                            
30009ed8:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
      schedparam  = api->schedparam;                                  
      break;                                                          
                                                                      
    case PTHREAD_EXPLICIT_SCHED:                                      
      schedpolicy = the_attr->schedpolicy;                            
      schedparam  = the_attr->schedparam;                             
30009edc:	e28da024 	add	sl, sp, #36	; 0x24                            
30009ee0:	e284c018 	add	ip, r4, #24                                   
30009ee4:	e1a0500a 	mov	r5, sl                                        
30009ee8:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         
30009eec:	e8a5000f 	stmia	r5!, {r0, r1, r2, r3}                       
30009ef0:	e89c0007 	ldm	ip, {r0, r1, r2}                              
30009ef4:	e8850007 	stm	r5, {r0, r1, r2}                              
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
      break;                                                          
                                                                      
    case PTHREAD_EXPLICIT_SCHED:                                      
      schedpolicy = the_attr->schedpolicy;                            
30009ef8:	e5949014 	ldr	r9, [r4, #20]                                 
                                                                      
  /*                                                                  
   *  Check the contentionscope since rtems only supports PROCESS wide
   *  contention (i.e. no system wide contention).                    
   */                                                                 
  if ( the_attr->contentionscope != PTHREAD_SCOPE_PROCESS )           
30009efc:	e594300c 	ldr	r3, [r4, #12]                                 
30009f00:	e3530000 	cmp	r3, #0                                        
    return ENOTSUP;                                                   
30009f04:	13a05086 	movne	r5, #134	; 0x86                             
                                                                      
  /*                                                                  
   *  Check the contentionscope since rtems only supports PROCESS wide
   *  contention (i.e. no system wide contention).                    
   */                                                                 
  if ( the_attr->contentionscope != PTHREAD_SCOPE_PROCESS )           
30009f08:	1afffff0 	bne	30009ed0 <pthread_create+0x6c>                
    return ENOTSUP;                                                   
                                                                      
  /*                                                                  
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
30009f0c:	e59d0024 	ldr	r0, [sp, #36]	; 0x24                          
30009f10:	eb0019cd 	bl	3001064c <_POSIX_Priority_Is_valid>            
30009f14:	e3500000 	cmp	r0, #0                                        
30009f18:	0affffeb 	beq	30009ecc <pthread_create+0x68>                
    return EINVAL;                                                    
                                                                      
  core_priority = _POSIX_Priority_To_core( schedparam.sched_priority );
30009f1c:	e59dc024 	ldr	ip, [sp, #36]	; 0x24                          
                                                                      
  /*                                                                  
   *  Set the core scheduling policy information.                     
   */                                                                 
  rc = _POSIX_Thread_Translate_sched_param(                           
30009f20:	e1a00009 	mov	r0, r9                                        
   *  Interpret the scheduling parameters.                            
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( schedparam.sched_priority ) )       
    return EINVAL;                                                    
                                                                      
  core_priority = _POSIX_Priority_To_core( schedparam.sched_priority );
30009f24:	e58dc01c 	str	ip, [sp, #28]                                 
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
30009f28:	e59fc1c0 	ldr	ip, [pc, #448]	; 3000a0f0 <pthread_create+0x28c>
                                                                      
  /*                                                                  
   *  Set the core scheduling policy information.                     
   */                                                                 
  rc = _POSIX_Thread_Translate_sched_param(                           
30009f2c:	e1a0100a 	mov	r1, sl                                        
30009f30:	e28d2044 	add	r2, sp, #68	; 0x44                            
30009f34:	e28d3040 	add	r3, sp, #64	; 0x40                            
30009f38:	e5dcb000 	ldrb	fp, [ip]                                     
30009f3c:	eb0019cd 	bl	30010678 <_POSIX_Thread_Translate_sched_param> 
    schedpolicy,                                                      
    &schedparam,                                                      
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
30009f40:	e2505000 	subs	r5, r0, #0                                   
30009f44:	1affffe1 	bne	30009ed0 <pthread_create+0x6c>                
  #endif                                                              
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
30009f48:	e59f21a4 	ldr	r2, [pc, #420]	; 3000a0f4 <pthread_create+0x290>
30009f4c:	e5920000 	ldr	r0, [r2]                                      
30009f50:	eb0005f0 	bl	3000b718 <_API_Mutex_Lock>                     
 *  _POSIX_Threads_Allocate                                           
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE Thread_Control *_POSIX_Threads_Allocate( void )  
{                                                                     
  return (Thread_Control *) _Objects_Allocate( &_POSIX_Threads_Information );
30009f54:	e59f019c 	ldr	r0, [pc, #412]	; 3000a0f8 <pthread_create+0x294>
30009f58:	eb000883 	bl	3000c16c <_Objects_Allocate>                   
   *  Allocate the thread control block.                              
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
30009f5c:	e3500000 	cmp	r0, #0                                        
30009f60:	e58d0020 	str	r0, [sp, #32]                                 
30009f64:	0a000052 	beq	3000a0b4 <pthread_create+0x250>               
                                                                      
static inline size_t _POSIX_Threads_Ensure_minimum_stack (            
  size_t size                                                         
)                                                                     
{                                                                     
  if ( size >= PTHREAD_MINIMUM_STACK_SIZE )                           
30009f68:	e59f317c 	ldr	r3, [pc, #380]	; 3000a0ec <pthread_create+0x288>
30009f6c:	e59dc01c 	ldr	ip, [sp, #28]                                 
30009f70:	e5931000 	ldr	r1, [r3]                                      
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
  name.name_p = NULL;   /* posix threads don't have a name by default */
  status = _Thread_Initialize(                                        
30009f74:	e5943008 	ldr	r3, [r4, #8]                                  
                                                                      
static inline size_t _POSIX_Threads_Ensure_minimum_stack (            
  size_t size                                                         
)                                                                     
{                                                                     
  if ( size >= PTHREAD_MINIMUM_STACK_SIZE )                           
30009f78:	e1a01081 	lsl	r1, r1, #1                                    
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
  name.name_p = NULL;   /* posix threads don't have a name by default */
  status = _Thread_Initialize(                                        
30009f7c:	e1510003 	cmp	r1, r3                                        
30009f80:	21a03001 	movcs	r3, r1                                      
30009f84:	e59d1044 	ldr	r1, [sp, #68]	; 0x44                          
30009f88:	e5942004 	ldr	r2, [r4, #4]                                  
30009f8c:	e58d100c 	str	r1, [sp, #12]                                 
30009f90:	e59d1040 	ldr	r1, [sp, #64]	; 0x40                          
30009f94:	e06cb00b 	rsb	fp, ip, fp                                    
30009f98:	e58db004 	str	fp, [sp, #4]                                  
30009f9c:	e58d1010 	str	r1, [sp, #16]                                 
30009fa0:	e3a0b001 	mov	fp, #1                                        
30009fa4:	e59f014c 	ldr	r0, [pc, #332]	; 3000a0f8 <pthread_create+0x294>
30009fa8:	e59d1020 	ldr	r1, [sp, #32]                                 
30009fac:	e58d5000 	str	r5, [sp]                                      
30009fb0:	e58db008 	str	fp, [sp, #8]                                  
30009fb4:	e58d5014 	str	r5, [sp, #20]                                 
30009fb8:	e58d5018 	str	r5, [sp, #24]                                 
30009fbc:	eb000d03 	bl	3000d3d0 <_Thread_Initialize>                  
    budget_callout,                                                   
    0,                    /* isr level */                             
    name                  /* posix threads don't have a name */       
  );                                                                  
                                                                      
  if ( !status ) {                                                    
30009fc0:	e3500000 	cmp	r0, #0                                        
30009fc4:	1a000014 	bne	3000a01c <pthread_create+0x1b8>               
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Threads_Free (                       
  Thread_Control *the_pthread                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Threads_Information, &the_pthread->Object ); 
30009fc8:	e59f0128 	ldr	r0, [pc, #296]	; 3000a0f8 <pthread_create+0x294>
30009fcc:	e59d1020 	ldr	r1, [sp, #32]                                 
30009fd0:	eb00093f 	bl	3000c4d4 <_Objects_Free>                       
    _POSIX_Threads_Free( the_thread );                                
    _RTEMS_Unlock_allocator();                                        
30009fd4:	e59f2118 	ldr	r2, [pc, #280]	; 3000a0f4 <pthread_create+0x290>
    return EAGAIN;                                                    
30009fd8:	e3a0500b 	mov	r5, #11                                       
    name                  /* posix threads don't have a name */       
  );                                                                  
                                                                      
  if ( !status ) {                                                    
    _POSIX_Threads_Free( the_thread );                                
    _RTEMS_Unlock_allocator();                                        
30009fdc:	e5920000 	ldr	r0, [r2]                                      
30009fe0:	eb0005e8 	bl	3000b788 <_API_Mutex_Unlock>                   
    return EAGAIN;                                                    
30009fe4:	eaffffb9 	b	30009ed0 <pthread_create+0x6c>                  
   *  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 ];    
30009fe8:	e59f310c 	ldr	r3, [pc, #268]	; 3000a0fc <pthread_create+0x298>
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
30009fec:	e28da024 	add	sl, sp, #36	; 0x24                            
   *  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 ];    
30009ff0:	e5933004 	ldr	r3, [r3, #4]                                  
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
30009ff4:	e1a0900a 	mov	r9, sl                                        
   *  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 ];    
30009ff8:	e59350fc 	ldr	r5, [r3, #252]	; 0xfc                         
      schedpolicy = api->schedpolicy;                                 
      schedparam  = api->schedparam;                                  
30009ffc:	e285c088 	add	ip, r5, #136	; 0x88                           
3000a000:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         
3000a004:	e8a9000f 	stmia	r9!, {r0, r1, r2, r3}                       
3000a008:	e89c0007 	ldm	ip, {r0, r1, r2}                              
3000a00c:	e1a03009 	mov	r3, r9                                        
3000a010:	e8830007 	stm	r3, {r0, r1, r2}                              
   *  attributes structure.                                           
   */                                                                 
  switch ( the_attr->inheritsched ) {                                 
    case PTHREAD_INHERIT_SCHED:                                       
      api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];    
      schedpolicy = api->schedpolicy;                                 
3000a014:	e5959084 	ldr	r9, [r5, #132]	; 0x84                         
      schedparam  = api->schedparam;                                  
      break;                                                          
3000a018:	eaffffb7 	b	30009efc <pthread_create+0x98>                  
  }                                                                   
                                                                      
  /*                                                                  
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
3000a01c:	e59d3020 	ldr	r3, [sp, #32]                                 
                                                                      
  api->Attributes  = *the_attr;                                       
3000a020:	e1a0e004 	mov	lr, r4                                        
  }                                                                   
                                                                      
  /*                                                                  
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
3000a024:	e59330fc 	ldr	r3, [r3, #252]	; 0xfc                         
3000a028:	e58d301c 	str	r3, [sp, #28]                                 
                                                                      
  api->Attributes  = *the_attr;                                       
3000a02c:	e59dc01c 	ldr	ip, [sp, #28]                                 
3000a030:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         
3000a034:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000a038:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         
3000a03c:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000a040:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         
3000a044:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000a048:	e89e000f 	ldm	lr, {r0, r1, r2, r3}                          
3000a04c:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
  api->detachstate = the_attr->detachstate;                           
  api->schedpolicy = schedpolicy;                                     
  api->schedparam  = schedparam;                                      
3000a050:	e59d001c 	ldr	r0, [sp, #28]                                 
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  api->Attributes  = *the_attr;                                       
  api->detachstate = the_attr->detachstate;                           
3000a054:	e594303c 	ldr	r3, [r4, #60]	; 0x3c                          
  api->schedpolicy = schedpolicy;                                     
  api->schedparam  = schedparam;                                      
3000a058:	e280c088 	add	ip, r0, #136	; 0x88                           
   *  finish initializing the per API structure                       
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  api->Attributes  = *the_attr;                                       
  api->detachstate = the_attr->detachstate;                           
3000a05c:	e5803040 	str	r3, [r0, #64]	; 0x40                          
  api->schedpolicy = schedpolicy;                                     
  api->schedparam  = schedparam;                                      
3000a060:	e8ba000f 	ldm	sl!, {r0, r1, r2, r3}                         
3000a064:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000a068:	e89a0007 	ldm	sl, {r0, r1, r2}                              
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  api->Attributes  = *the_attr;                                       
  api->detachstate = the_attr->detachstate;                           
  api->schedpolicy = schedpolicy;                                     
3000a06c:	e59d301c 	ldr	r3, [sp, #28]                                 
  api->schedparam  = schedparam;                                      
3000a070:	e88c0007 	stm	ip, {r0, r1, r2}                              
   */                                                                 
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
                                                                      
  api->Attributes  = *the_attr;                                       
  api->detachstate = the_attr->detachstate;                           
  api->schedpolicy = schedpolicy;                                     
3000a074:	e5839084 	str	r9, [r3, #132]	; 0x84                         
  api->schedparam  = schedparam;                                      
                                                                      
  /*                                                                  
   *  POSIX threads are allocated and started in one operation.       
   */                                                                 
  status = _Thread_Start(                                             
3000a078:	e59d0020 	ldr	r0, [sp, #32]                                 
3000a07c:	e1a0100b 	mov	r1, fp                                        
3000a080:	e1a02007 	mov	r2, r7                                        
3000a084:	e1a03006 	mov	r3, r6                                        
3000a088:	e58d5000 	str	r5, [sp]                                      
3000a08c:	eb000f25 	bl	3000dd28 <_Thread_Start>                       
      _RTEMS_Unlock_allocator();                                      
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
3000a090:	e3590004 	cmp	r9, #4                                        
3000a094:	0a00000b 	beq	3000a0c8 <pthread_create+0x264>               
  }                                                                   
                                                                      
  /*                                                                  
   *  Return the id and indicate we successfully created the thread   
   */                                                                 
  *thread = the_thread->Object.id;                                    
3000a098:	e59dc020 	ldr	ip, [sp, #32]                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
3000a09c:	e59f2050 	ldr	r2, [pc, #80]	; 3000a0f4 <pthread_create+0x290>
  }                                                                   
                                                                      
  /*                                                                  
   *  Return the id and indicate we successfully created the thread   
   */                                                                 
  *thread = the_thread->Object.id;                                    
3000a0a0:	e59c3008 	ldr	r3, [ip, #8]                                  
                                                                      
  _RTEMS_Unlock_allocator();                                          
3000a0a4:	e5920000 	ldr	r0, [r2]                                      
  }                                                                   
                                                                      
  /*                                                                  
   *  Return the id and indicate we successfully created the thread   
   */                                                                 
  *thread = the_thread->Object.id;                                    
3000a0a8:	e5883000 	str	r3, [r8]                                      
                                                                      
  _RTEMS_Unlock_allocator();                                          
3000a0ac:	eb0005b5 	bl	3000b788 <_API_Mutex_Unlock>                   
  return 0;                                                           
3000a0b0:	eaffff86 	b	30009ed0 <pthread_create+0x6c>                  
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
3000a0b4:	e59f3038 	ldr	r3, [pc, #56]	; 3000a0f4 <pthread_create+0x290><== NOT EXECUTED
    return EAGAIN;                                                    
3000a0b8:	e3a0500b 	mov	r5, #11                                       <== NOT EXECUTED
   *                                                                  
   *  NOTE:  Global threads are not currently supported.              
   */                                                                 
  the_thread = _POSIX_Threads_Allocate();                             
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
3000a0bc:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000a0c0:	eb0005b0 	bl	3000b788 <_API_Mutex_Unlock>                   <== NOT EXECUTED
    return EAGAIN;                                                    
3000a0c4:	eaffff81 	b	30009ed0 <pthread_create+0x6c>                  <== NOT EXECUTED
      return EINVAL;                                                  
    }                                                                 
  #endif                                                              
                                                                      
  if ( schedpolicy == SCHED_SPORADIC ) {                              
    _Watchdog_Insert_ticks(                                           
3000a0c8:	e59d901c 	ldr	r9, [sp, #28]                                 <== NOT EXECUTED
3000a0cc:	e2890090 	add	r0, r9, #144	; 0x90                           <== NOT EXECUTED
3000a0d0:	eb000f8d 	bl	3000df0c <_Timespec_To_ticks>                  <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000a0d4:	e28910a8 	add	r1, r9, #168	; 0xa8                           <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000a0d8:	e58900b4 	str	r0, [r9, #180]	; 0xb4                         <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000a0dc:	e59f001c 	ldr	r0, [pc, #28]	; 3000a100 <pthread_create+0x29c><== NOT EXECUTED
3000a0e0:	eb00105b 	bl	3000e254 <_Watchdog_Insert>                    <== NOT EXECUTED
3000a0e4:	eaffffeb 	b	3000a098 <pthread_create+0x234>                 <== NOT EXECUTED
                                                                      

30009e5c <pthread_detach>: #include <rtems/posix/pthread.h> int pthread_detach( pthread_t thread ) {
30009e5c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
30009e60:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
30009e64:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
30009e68:	eb000c13 	bl	3000cebc <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
30009e6c:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
30009e70:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
30009e74:	13a00003 	movne	r0, #3                                      <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
30009e78:	1a000003 	bne	30009e8c <pthread_detach+0x30>                <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
      api->detachstate = PTHREAD_CREATE_DETACHED;                     
30009e7c:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         <== NOT EXECUTED
30009e80:	e5834040 	str	r4, [r3, #64]	; 0x40                          <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30009e84:	eb000c03 	bl	3000ce98 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
30009e88:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
30009e8c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009e90:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000a104 <pthread_equal>: break; } return status; #endif }
3000a104:	e1500001 	cmp	r0, r1                                        <== NOT EXECUTED
3000a108:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000a10c:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000a110:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300099c8 <pthread_getcpuclockid>: int pthread_getcpuclockid( pthread_t pid, clockid_t *clock_id ) {
300099c8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
300099cc:	eb002402 	bl	300129dc <__errno>                             <== NOT EXECUTED
300099d0:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
300099d4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300099d8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300099dc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c878 <pthread_getschedparam>: int pthread_getschedparam( pthread_t thread, int *policy, struct sched_param *param ) {
3000c878:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
3000c87c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000c880:	13520000 	cmpne	r2, #0                                      <== NOT EXECUTED
int pthread_getschedparam(                                            
  pthread_t           thread,                                         
  int                *policy,                                         
  struct sched_param *param                                           
)                                                                     
{                                                                     
3000c884:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
3000c888:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
3000c88c:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000c890:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
{                                                                     
  Objects_Locations        location;                                  
  POSIX_API_Control       *api;                                       
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
3000c894:	1a000001 	bne	3000c8a0 <pthread_getschedparam+0x28>         <== NOT EXECUTED
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
                                                                      
}                                                                     
3000c898:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c89c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
    return EINVAL;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
3000c8a0:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000c8a4:	eb000c31 	bl	3000f970 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000c8a8:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
  register Thread_Control *the_thread;                                
                                                                      
  if ( !policy || !param  )                                           
    return EINVAL;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
3000c8ac:	e1a0c000 	mov	ip, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
3000c8b0:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
3000c8b4:	13a00003 	movne	r0, #3                                      <== NOT EXECUTED
                                                                      
  if ( !policy || !param  )                                           
    return EINVAL;                                                    
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
3000c8b8:	1afffff6 	bne	3000c898 <pthread_getschedparam+0x20>         <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
3000c8bc:	e59ce0fc 	ldr	lr, [ip, #252]	; 0xfc                         <== NOT EXECUTED
      if ( policy )                                                   
        *policy = api->schedpolicy;                                   
3000c8c0:	e59e3084 	ldr	r3, [lr, #132]	; 0x84                         <== NOT EXECUTED
      if ( param ) {                                                  
        *param  = api->schedparam;                                    
3000c8c4:	e28ee088 	add	lr, lr, #136	; 0x88                           <== NOT EXECUTED
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
      if ( policy )                                                   
        *policy = api->schedpolicy;                                   
3000c8c8:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
      if ( param ) {                                                  
        *param  = api->schedparam;                                    
3000c8cc:	e1a06004 	mov	r6, r4                                        <== NOT EXECUTED
3000c8d0:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3000c8d4:	e8a6000f 	stmia	r6!, {r0, r1, r2, r3}                       <== NOT EXECUTED
3000c8d8:	e89e0007 	ldm	lr, {r0, r1, r2}                              <== NOT EXECUTED
3000c8dc:	e8860007 	stm	r6, {r0, r1, r2}                              <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
3000c8e0:	e59f3018 	ldr	r3, [pc, #24]	; 3000c900 <pthread_getschedparam+0x88><== NOT EXECUTED
3000c8e4:	e5d32000 	ldrb	r2, [r3]                                     <== NOT EXECUTED
3000c8e8:	e59c3014 	ldr	r3, [ip, #20]                                 <== NOT EXECUTED
3000c8ec:	e0633002 	rsb	r3, r3, r2                                    <== NOT EXECUTED
        param->sched_priority =                                       
3000c8f0:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
          _POSIX_Priority_From_core( the_thread->current_priority );  
      }                                                               
      _Thread_Enable_dispatch();                                      
3000c8f4:	eb000c14 	bl	3000f94c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000c8f8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000c8fc:	eaffffe5 	b	3000c898 <pthread_getschedparam+0x20>           <== NOT EXECUTED
                                                                      

30009d3c <pthread_getspecific>: */ void *pthread_getspecific( pthread_key_t key ) {
30009d3c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
30009d40:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30009d44:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  pthread_key_t      id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Keys_Control *)                                       
    _Objects_Get( &_POSIX_Keys_Information, (Objects_Id) id, location );
30009d48:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30009d4c:	e59f0044 	ldr	r0, [pc, #68]	; 30009d98 <pthread_getspecific+0x5c><== NOT EXECUTED
30009d50:	eb000974 	bl	3000c328 <_Objects_Get>                        <== NOT EXECUTED
  uint32_t                     index;                                 
  Objects_Locations            location;                              
  void                        *key_data;                              
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
30009d54:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
30009d58:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
30009d5c:	13a04000 	movne	r4, #0                                      <== NOT EXECUTED
  uint32_t                     index;                                 
  Objects_Locations            location;                              
  void                        *key_data;                              
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
30009d60:	1a000009 	bne	30009d8c <pthread_getspecific+0x50>           <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api      = _Objects_Get_API( _Thread_Executing->Object.id );    
30009d64:	e59f3030 	ldr	r3, [pc, #48]	; 30009d9c <pthread_getspecific+0x60><== NOT EXECUTED
30009d68:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
30009d6c:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
30009d70:	e1a02c23 	lsr	r2, r3, #24                                   <== NOT EXECUTED
30009d74:	e2022007 	and	r2, r2, #7                                    <== NOT EXECUTED
      index    = _Objects_Get_index( _Thread_Executing->Object.id );  
      key_data = (void *) the_key->Values[ api ][ index ];            
30009d78:	e2822005 	add	r2, r2, #5                                    <== NOT EXECUTED
30009d7c:	e7902102 	ldr	r2, [r0, r2, lsl #2]                          <== NOT EXECUTED
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api      = _Objects_Get_API( _Thread_Executing->Object.id );    
      index    = _Objects_Get_index( _Thread_Executing->Object.id );  
30009d80:	e1a03803 	lsl	r3, r3, #16                                   <== NOT EXECUTED
      key_data = (void *) the_key->Values[ api ][ index ];            
30009d84:	e7924723 	ldr	r4, [r2, r3, lsr #14]                         <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30009d88:	eb000ca0 	bl	3000d010 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return NULL;                                                        
}                                                                     
30009d8c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009d90:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009d94:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000f384 <pthread_join>: int pthread_join( pthread_t thread, void **value_ptr ) {
3000f384:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000f388:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
3000f38c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
  void                    *return_pointer;                            
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
3000f390:	e28d1004 	add	r1, sp, #4                                    <== NOT EXECUTED
3000f394:	eb000c33 	bl	30012468 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000f398:	e59d4004 	ldr	r4, [sp, #4]                                  <== NOT EXECUTED
3000f39c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
3000f3a0:	13a00003 	movne	r0, #3                                      <== NOT EXECUTED
  POSIX_API_Control       *api;                                       
  Objects_Locations        location;                                  
  void                    *return_pointer;                            
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
3000f3a4:	1a000014 	bne	3000f3fc <pthread_join+0x78>                  <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
3000f3a8:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
      if ( api->detachstate == PTHREAD_CREATE_DETACHED ) {            
3000f3ac:	e5932040 	ldr	r2, [r3, #64]	; 0x40                          <== NOT EXECUTED
3000f3b0:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000f3b4:	0a000012 	beq	3000f404 <pthread_join+0x80>                  <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
3000f3b8:	e59f205c 	ldr	r2, [pc, #92]	; 3000f41c <pthread_join+0x98>  <== NOT EXECUTED
3000f3bc:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        return EINVAL;                                                
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
3000f3c0:	e1500002 	cmp	r0, r2                                        <== NOT EXECUTED
3000f3c4:	0a000011 	beq	3000f410 <pthread_join+0x8c>                  <== NOT EXECUTED
                                                                      
      /*                                                              
       *  Put ourself on the threads join list                        
       */                                                             
                                                                      
      _Thread_Executing->Wait.return_argument = &return_pointer;      
3000f3c8:	e582d028 	str	sp, [r2, #40]	; 0x28                          <== NOT EXECUTED
                                                                      
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;
3000f3cc:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
                                                                      
      _Thread_queue_Enter_critical_section( &api->Join_List );        
                                                                      
      _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT );  
3000f3d0:	e2830044 	add	r0, r3, #68	; 0x44                            <== NOT EXECUTED
3000f3d4:	e5832074 	str	r2, [r3, #116]	; 0x74                         <== NOT EXECUTED
3000f3d8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000f3dc:	e59f203c 	ldr	r2, [pc, #60]	; 3000f420 <pthread_join+0x9c>  <== NOT EXECUTED
3000f3e0:	eb000d43 	bl	300128f4 <_Thread_queue_Enqueue_with_handler>  <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3000f3e4:	eb000c16 	bl	30012444 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
      if ( value_ptr )                                                
3000f3e8:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
        *value_ptr = return_pointer;                                  
3000f3ec:	159d3000 	ldrne	r3, [sp]                                    <== NOT EXECUTED
      return 0;                                                       
3000f3f0:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
      _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT );  
                                                                      
      _Thread_Enable_dispatch();                                      
                                                                      
      if ( value_ptr )                                                
        *value_ptr = return_pointer;                                  
3000f3f4:	15853000 	strne	r3, [r5]                                    <== NOT EXECUTED
      return 0;                                                       
3000f3f8:	01a00005 	moveq	r0, r5                                      <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
3000f3fc:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000f400:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( api->detachstate == PTHREAD_CREATE_DETACHED ) {            
        _Thread_Enable_dispatch();                                    
3000f404:	eb000c0e 	bl	30012444 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EINVAL;                                                
3000f408:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000f40c:	eafffffa 	b	3000f3fc <pthread_join+0x78>                    <== NOT EXECUTED
      }                                                               
                                                                      
      if ( _Thread_Is_executing( the_thread ) ) {                     
        _Thread_Enable_dispatch();                                    
3000f410:	eb000c0b 	bl	30012444 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EDEADLK;                                               
3000f414:	e3a0002d 	mov	r0, #45	; 0x2d                                <== NOT EXECUTED
3000f418:	eafffff7 	b	3000f3fc <pthread_join+0x78>                    <== NOT EXECUTED
                                                                      

30009bd4 <pthread_key_create>:
30009bd4:	e59f30d0 	ldr	r3, [pc, #208]	; 30009cac <pthread_key_create+0xd8>
                                                                      
int pthread_key_create(                                               
  pthread_key_t  *key,                                                
  void          (*destructor)( void * )                               
)                                                                     
{                                                                     
30009bd8:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
30009bdc:	e5932000 	ldr	r2, [r3]                                      
30009be0:	e1a0a000 	mov	sl, r0                                        
30009be4:	e2822001 	add	r2, r2, #1                                    
30009be8:	e5832000 	str	r2, [r3]                                      
30009bec:	e1a04001 	mov	r4, r1                                        
 *  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 );
30009bf0:	e59f00b8 	ldr	r0, [pc, #184]	; 30009cb0 <pthread_key_create+0xdc>
30009bf4:	eb00089a 	bl	3000be64 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
30009bf8:	e2508000 	subs	r8, r0, #0                                   
30009bfc:	0a00001f 	beq	30009c80 <pthread_key_create+0xac>            
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_key->destructor = destructor;                                   
30009c00:	e59f70ac 	ldr	r7, [pc, #172]	; 30009cb4 <pthread_key_create+0xe0>
30009c04:	e5884010 	str	r4, [r8, #16]                                 
30009c08:	e3a05003 	mov	r5, #3                                        
30009c0c:	e1a04008 	mov	r4, r8                                        
   *  APIs are optional.                                              
   *                                                                  
   *  NOTE: Currently RTEMS Classic API tasks are always enabled.     
   */                                                                 
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) {      
    the_key->Values[ the_api ] = NULL;                                
30009c10:	e3a06000 	mov	r6, #0                                        
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
30009c14:	e5b73004 	ldr	r3, [r7, #4]!                                 
   *  APIs are optional.                                              
   *                                                                  
   *  NOTE: Currently RTEMS Classic API tasks are always enabled.     
   */                                                                 
  for ( the_api = 1; the_api <= OBJECTS_APIS_LAST; the_api++ ) {      
    the_key->Values[ the_api ] = NULL;                                
30009c18:	e5846018 	str	r6, [r4, #24]                                 
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
30009c1c:	e5933004 	ldr	r3, [r3, #4]                                  
30009c20:	e1d391b0 	ldrh	r9, [r3, #16]                                
30009c24:	e2899001 	add	r9, r9, #1                                    
	  true,                                                              
	  INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY             
	);                                                                   
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
30009c28:	e1a09109 	lsl	r9, r9, #2                                    
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
    table = _Workspace_Allocate( bytes_to_allocate );                 
30009c2c:	e1a00009 	mov	r0, r9                                        
30009c30:	eb0011c0 	bl	3000e338 <_Workspace_Allocate>                 
    if ( !table ) {                                                   
30009c34:	e2503000 	subs	r3, r0, #0                                   
      _Thread_Enable_dispatch();                                      
      return ENOMEM;                                                  
    }                                                                 
                                                                      
    the_key->Values[ the_api ] = table;                               
    memset( table, '\0', bytes_to_allocate );                         
30009c38:	e1a01006 	mov	r1, r6                                        
30009c3c:	e1a02009 	mov	r2, r9                                        
    #endif                                                            
                                                                      
    bytes_to_allocate = sizeof( void * ) *                            
      (_Objects_Information_table[ the_api ][ 1 ]->maximum + 1);      
    table = _Workspace_Allocate( bytes_to_allocate );                 
    if ( !table ) {                                                   
30009c40:	0a000011 	beq	30009c8c <pthread_key_create+0xb8>            
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
      return ENOMEM;                                                  
    }                                                                 
                                                                      
    the_key->Values[ the_api ] = table;                               
30009c44:	e5843018 	str	r3, [r4, #24]                                 
    memset( table, '\0', bytes_to_allocate );                         
30009c48:	eb002703 	bl	3001385c <memset>                              
   *  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++ ) {      
30009c4c:	e2555001 	subs	r5, r5, #1                                   
      _Thread_Enable_dispatch();                                      
      return ENOMEM;                                                  
    }                                                                 
                                                                      
    the_key->Values[ the_api ] = table;                               
    memset( table, '\0', bytes_to_allocate );                         
30009c50:	e2844004 	add	r4, r4, #4                                    
   *  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++ ) {      
30009c54:	1affffee 	bne	30009c14 <pthread_key_create+0x40>            
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009c58:	e59f2050 	ldr	r2, [pc, #80]	; 30009cb0 <pthread_key_create+0xdc>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30009c5c:	e5983008 	ldr	r3, [r8, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009c60:	e592201c 	ldr	r2, [r2, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30009c64:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009c68:	e7828721 	str	r8, [r2, r1, lsr #14]                         
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
30009c6c:	e588500c 	str	r5, [r8, #12]                                 
    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;                                          
30009c70:	e58a3000 	str	r3, [sl]                                      
  _Thread_Enable_dispatch();                                          
30009c74:	eb000ce5 	bl	3000d010 <_Thread_Enable_dispatch>             
  return 0;                                                           
30009c78:	e1a00005 	mov	r0, r5                                        
}                                                                     
30009c7c:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
  _Thread_Disable_dispatch();                                         
                                                                      
  the_key = _POSIX_Keys_Allocate();                                   
                                                                      
  if ( !the_key ) {                                                   
    _Thread_Enable_dispatch();                                        
30009c80:	eb000ce2 	bl	3000d010 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return EAGAIN;                                                    
30009c84:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
30009c88:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      
    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 );                             
30009c8c:	e1a00008 	mov	r0, r8                                        
30009c90:	eb000020 	bl	30009d18 <_POSIX_Keys_Free_memory>             
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Keys_Free (                          
  POSIX_Keys_Control *the_key                                         
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Keys_Information, &the_key->Object );        
30009c94:	e59f0014 	ldr	r0, [pc, #20]	; 30009cb0 <pthread_key_create+0xdc>
30009c98:	e1a01008 	mov	r1, r8                                        
30009c9c:	eb00094a 	bl	3000c1cc <_Objects_Free>                       
                                                                      
      _POSIX_Keys_Free( the_key );                                    
      _Thread_Enable_dispatch();                                      
30009ca0:	eb000cda 	bl	3000d010 <_Thread_Enable_dispatch>             
      return ENOMEM;                                                  
30009ca4:	e3a0000c 	mov	r0, #12                                       
30009ca8:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      

300270e8 <pthread_kill>: int pthread_kill( pthread_t thread, int sig ) {
300270e8:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
  Thread_Control     *the_thread;                                     
  Objects_Locations  location;                                        
                                                                      
  if ( !sig )                                                         
300270ec:	e2516000 	subs	r6, r1, #0                                   <== NOT EXECUTED
                                                                      
int pthread_kill(                                                     
  pthread_t   thread,                                                 
  int         sig                                                     
)                                                                     
{                                                                     
300270f0:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
  Thread_Control     *the_thread;                                     
  Objects_Locations  location;                                        
                                                                      
  if ( !sig )                                                         
300270f4:	0a000025 	beq	30027190 <pthread_kill+0xa8>                  <== NOT EXECUTED
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
300270f8:	e2467001 	sub	r7, r6, #1                                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
300270fc:	e357001f 	cmp	r7, #31                                       <== NOT EXECUTED
30027100:	8a000022 	bhi	30027190 <pthread_kill+0xa8>                  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
30027104:	e28d1004 	add	r1, sp, #4                                    <== NOT EXECUTED
30027108:	ebffa98a 	bl	30011738 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3002710c:	e59d2004 	ldr	r2, [sp, #4]                                  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  the_thread = _Thread_Get( thread, &location );                      
30027110:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
30027114:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30027118:	1a000021 	bne	300271a4 <pthread_kill+0xbc>                  <== NOT EXECUTED
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
3002711c:	e59f3094 	ldr	r3, [pc, #148]	; 300271b8 <pthread_kill+0xd0> <== NOT EXECUTED
30027120:	e0861086 	add	r1, r6, r6, lsl #1                            <== NOT EXECUTED
30027124:	e0833101 	add	r3, r3, r1, lsl #2                            <== NOT EXECUTED
30027128:	e5931008 	ldr	r1, [r3, #8]                                  <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  If sig == 0 then just validate arguments                    
       */                                                             
                                                                      
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
3002712c:	e59030fc 	ldr	r3, [r0, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
30027130:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
30027134:	0a000010 	beq	3002717c <pthread_kill+0x94>                  <== NOT EXECUTED
          return 0;                                                   
        }                                                             
                                                                      
        /* XXX critical section */                                    
                                                                      
        api->signals_pending |= signo_to_mask( sig );                 
30027138:	e59310d4 	ldr	r1, [r3, #212]	; 0xd4                         <== NOT EXECUTED
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
3002713c:	e3a05001 	mov	r5, #1                                        <== NOT EXECUTED
30027140:	e1817715 	orr	r7, r1, r5, lsl r7                            <== NOT EXECUTED
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
30027144:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
          return 0;                                                   
        }                                                             
                                                                      
        /* XXX critical section */                                    
                                                                      
        api->signals_pending |= signo_to_mask( sig );                 
30027148:	e58370d4 	str	r7, [r3, #212]	; 0xd4                         <== NOT EXECUTED
                                                                      
        (void) _POSIX_signals_Unblock_thread( the_thread, sig, NULL );
3002714c:	ebffff9a 	bl	30026fbc <_POSIX_signals_Unblock_thread>       <== NOT EXECUTED
                                                                      
        if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
30027150:	e59f3064 	ldr	r3, [pc, #100]	; 300271bc <pthread_kill+0xd4> <== NOT EXECUTED
30027154:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30027158:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3002715c:	0a000002 	beq	3002716c <pthread_kill+0x84>                  <== NOT EXECUTED
30027160:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
30027164:	e1540002 	cmp	r4, r2                                        <== NOT EXECUTED
	  _Thread_Dispatch_necessary = true;                                 
30027168:	05c35010 	strbeq	r5, [r3, #16]                              <== NOT EXECUTED
      }                                                               
      _Thread_Enable_dispatch();                                      
3002716c:	ebffa968 	bl	30011714 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
30027170:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
}                                                                     
30027174:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
30027178:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( sig ) {                                                    
                                                                      
        if ( _POSIX_signals_Vectors[ sig ].sa_handler == SIG_IGN ) {  
          _Thread_Enable_dispatch();                                  
3002717c:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
30027180:	ebffa963 	bl	30011714 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return 0;                                                   
30027184:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
30027188:	e1a00002 	mov	r0, r2                                        <== NOT EXECUTED
3002718c:	eafffff8 	b	30027174 <pthread_kill+0x8c>                    <== NOT EXECUTED
                                                                      
  if ( !sig )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
30027190:	ebffc17f 	bl	30017794 <__errno>                             <== NOT EXECUTED
30027194:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30027198:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3002719c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300271a0:	eafffff3 	b	30027174 <pthread_kill+0x8c>                    <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( ESRCH );                      
300271a4:	ebffc17a 	bl	30017794 <__errno>                             <== NOT EXECUTED
300271a8:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
300271ac:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
300271b0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300271b4:	eaffffee 	b	30027174 <pthread_kill+0x8c>                    <== NOT EXECUTED
                                                                      

3000bfe4 <pthread_mutex_destroy>: */ int pthread_mutex_destroy( pthread_mutex_t *mutex ) {
3000bfe4:	e92d4030 	push	{r4, r5, lr}                                 
3000bfe8:	e24dd004 	sub	sp, sp, #4                                    
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
                                                                      
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
3000bfec:	e1a0100d 	mov	r1, sp                                        
3000bff0:	eb000019 	bl	3000c05c <_POSIX_Mutex_Get>                    
  switch ( location ) {                                               
3000bff4:	e59d4000 	ldr	r4, [sp]                                      
)                                                                     
{                                                                     
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
                                                                      
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
3000bff8:	e1a05000 	mov	r5, r0                                        
  switch ( location ) {                                               
3000bffc:	e3540000 	cmp	r4, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000c000:	13a00016 	movne	r0, #22                                     
{                                                                     
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
                                                                      
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
  switch ( location ) {                                               
3000c004:	1a000004 	bne	3000c01c <pthread_mutex_destroy+0x38>         
       /*                                                             
        * XXX: There is an error for the mutex being locked           
        *  or being in use by a condition variable.                   
        */                                                            
                                                                      
      if ( _CORE_mutex_Is_locked( &the_mutex->Mutex ) ) {             
3000c008:	e5953064 	ldr	r3, [r5, #100]	; 0x64                         
3000c00c:	e3530000 	cmp	r3, #0                                        
3000c010:	1a000003 	bne	3000c024 <pthread_mutex_destroy+0x40>         
        _Thread_Enable_dispatch();                                    
3000c014:	eb000e4c 	bl	3000f94c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EBUSY;                                                 
3000c018:	e3a00010 	mov	r0, #16                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
3000c01c:	e28dd004 	add	sp, sp, #4                                    
3000c020:	e8bd8030 	pop	{r4, r5, pc}                                  
      if ( _CORE_mutex_Is_locked( &the_mutex->Mutex ) ) {             
        _Thread_Enable_dispatch();                                    
        return EBUSY;                                                 
      }                                                               
                                                                      
      _Objects_Close( &_POSIX_Mutex_Information, &the_mutex->Object );
3000c024:	e1a01005 	mov	r1, r5                                        
3000c028:	e59f0028 	ldr	r0, [pc, #40]	; 3000c058 <pthread_mutex_destroy+0x74>
3000c02c:	eb000a00 	bl	3000e834 <_Objects_Close>                      
                                                                      
      _CORE_mutex_Flush( &the_mutex->Mutex, NULL, EINVAL );           
3000c030:	e3a02016 	mov	r2, #22                                       
3000c034:	e2850014 	add	r0, r5, #20                                   
3000c038:	e1a01004 	mov	r1, r4                                        
3000c03c:	eb00076b 	bl	3000ddf0 <_CORE_mutex_Flush>                   
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Mutex_Free (                         
  POSIX_Mutex_Control *the_mutex                                      
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Mutex_Information, &the_mutex->Object );     
3000c040:	e59f0010 	ldr	r0, [pc, #16]	; 3000c058 <pthread_mutex_destroy+0x74>
3000c044:	e1a01005 	mov	r1, r5                                        
3000c048:	eb000aae 	bl	3000eb08 <_Objects_Free>                       
                                                                      
      _POSIX_Mutex_Free( the_mutex );                                 
      _Thread_Enable_dispatch();                                      
3000c04c:	eb000e3e 	bl	3000f94c <_Thread_Enable_dispatch>             
      return 0;                                                       
3000c050:	e1a00004 	mov	r0, r4                                        
3000c054:	eafffff0 	b	3000c01c <pthread_mutex_destroy+0x38>           
                                                                      

3000c178 <pthread_mutex_init>: 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;
3000c178:	e59f3134 	ldr	r3, [pc, #308]	; 3000c2b4 <pthread_mutex_init+0x13c>
3000c17c:	e3510000 	cmp	r1, #0                                        
                                                                      
int pthread_mutex_init(                                               
  pthread_mutex_t           *mutex,                                   
  const pthread_mutexattr_t *attr                                     
)                                                                     
{                                                                     
3000c180:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  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;            
3000c184:	11a06001 	movne	r6, r1                                      
3000c188:	01a06003 	moveq	r6, r3                                      
                                                                      
  /* Check for NULL mutex */                                          
  if ( !mutex )                                                       
3000c18c:	e2504000 	subs	r4, r0, #0                                   
3000c190:	0a00003c 	beq	3000c288 <pthread_mutex_init+0x110>           
      }                                                               
    }                                                                 
  }                                                                   
  #endif                                                              
                                                                      
  if ( !the_attr->is_initialized )                                    
3000c194:	e5963000 	ldr	r3, [r6]                                      
3000c198:	e3530000 	cmp	r3, #0                                        
3000c19c:	0a000039 	beq	3000c288 <pthread_mutex_init+0x110>           
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
3000c1a0:	e5963004 	ldr	r3, [r6, #4]                                  
3000c1a4:	e3530001 	cmp	r3, #1                                        
    return ENOSYS;                                                    
3000c1a8:	03a00058 	moveq	r0, #88	; 0x58                              
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  We only support process private mutexes.                        
   */                                                                 
  if ( the_attr->process_shared == PTHREAD_PROCESS_SHARED )           
3000c1ac:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    return ENOSYS;                                                    
                                                                      
  if ( the_attr->process_shared != PTHREAD_PROCESS_PRIVATE )          
3000c1b0:	e3530000 	cmp	r3, #0                                        
3000c1b4:	1a000033 	bne	3000c288 <pthread_mutex_init+0x110>           
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   *  Determine the discipline of the mutex                           
   */                                                                 
  switch ( the_attr->protocol ) {                                     
3000c1b8:	e596700c 	ldr	r7, [r6, #12]                                 
3000c1bc:	e3570001 	cmp	r7, #1                                        
3000c1c0:	0a000036 	beq	3000c2a0 <pthread_mutex_init+0x128>           
3000c1c4:	e3570002 	cmp	r7, #2                                        
3000c1c8:	0a000030 	beq	3000c290 <pthread_mutex_init+0x118>           
3000c1cc:	e3570000 	cmp	r7, #0                                        
3000c1d0:	1a00002c 	bne	3000c288 <pthread_mutex_init+0x110>           
  }                                                                   
                                                                      
  /*                                                                  
   *  Validate the priority ceiling field -- should always be valid.  
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( the_attr->prio_ceiling ) )          
3000c1d4:	e5960008 	ldr	r0, [r6, #8]                                  
3000c1d8:	eb0000d3 	bl	3000c52c <_POSIX_Priority_Is_valid>            
3000c1dc:	e3500000 	cmp	r0, #0                                        
3000c1e0:	0a000028 	beq	3000c288 <pthread_mutex_init+0x110>           
#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)                          
  /*                                                                  
   *  Validate the mutex type and set appropriate SuperCore mutex     
   *  attributes.                                                     
   */                                                                 
  switch ( the_attr->type ) {                                         
3000c1e4:	e5963010 	ldr	r3, [r6, #16]                                 
3000c1e8:	e3530003 	cmp	r3, #3                                        
3000c1ec:	8a000029 	bhi	3000c298 <pthread_mutex_init+0x120>           
3000c1f0:	e59f30c0 	ldr	r3, [pc, #192]	; 3000c2b8 <pthread_mutex_init+0x140>
3000c1f4:	e5932000 	ldr	r2, [r3]                                      
3000c1f8:	e2822001 	add	r2, r2, #1                                    
3000c1fc:	e5832000 	str	r2, [r3]                                      
 *  _POSIX_Mutex_Allocate                                             
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE POSIX_Mutex_Control *_POSIX_Mutex_Allocate( void )
{                                                                     
  return (POSIX_Mutex_Control *) _Objects_Allocate( &_POSIX_Mutex_Information );
3000c200:	e59f00b4 	ldr	r0, [pc, #180]	; 3000c2bc <pthread_mutex_init+0x144>
3000c204:	eb000965 	bl	3000e7a0 <_Objects_Allocate>                   
   */                                                                 
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
3000c208:	e2505000 	subs	r5, r0, #0                                   
3000c20c:	0a000025 	beq	3000c2a8 <pthread_mutex_init+0x130>           
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
                                                                      
  if ( the_attr->recursive )                                          
3000c210:	e5962014 	ldr	r2, [r6, #20]                                 
  if ( !the_mutex ) {                                                 
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
3000c214:	e5963004 	ldr	r3, [r6, #4]                                  
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
                                                                      
  if ( the_attr->recursive )                                          
3000c218:	e3520000 	cmp	r2, #0                                        
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
3000c21c:	e59f009c 	ldr	r0, [pc, #156]	; 3000c2c0 <pthread_mutex_init+0x148>
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
  the_mutex_attr->only_owner_release = true;                          
3000c220:	e3a02001 	mov	r2, #1                                        
  if ( !the_mutex ) {                                                 
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
3000c224:	e5853010 	str	r3, [r5, #16]                                 
                                                                      
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
  the_mutex_attr->only_owner_release = true;                          
3000c228:	e5c52058 	strb	r2, [r5, #88]	; 0x58                         
  the_mutex->process_shared = the_attr->process_shared;               
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
                                                                      
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
3000c22c:	13a03000 	movne	r3, #0                                      
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
3000c230:	03a03001 	moveq	r3, #1                                      
  the_mutex->process_shared = the_attr->process_shared;               
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
                                                                      
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
3000c234:	15853054 	strne	r3, [r5, #84]	; 0x54                        
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
3000c238:	05853054 	streq	r3, [r5, #84]	; 0x54                        
3000c23c:	e5d00000 	ldrb	r0, [r0]                                     
3000c240:	e5963008 	ldr	r3, [r6, #8]                                  
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  the_mutex->process_shared = the_attr->process_shared;               
                                                                      
  the_mutex_attr = &the_mutex->Mutex.Attributes;                      
3000c244:	e2851054 	add	r1, r5, #84	; 0x54                            
3000c248:	e0633000 	rsb	r3, r3, r0                                    
  if ( the_attr->recursive )                                          
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
  else                                                                
    the_mutex_attr->lock_nesting_behavior = CORE_MUTEX_NESTING_IS_ERROR;
  the_mutex_attr->only_owner_release = true;                          
  the_mutex_attr->priority_ceiling =                                  
3000c24c:	e5853060 	str	r3, [r5, #96]	; 0x60                          
    _POSIX_Priority_To_core( the_attr->prio_ceiling );                
  the_mutex_attr->discipline = the_discipline;                        
3000c250:	e585705c 	str	r7, [r5, #92]	; 0x5c                          
                                                                      
  /*                                                                  
   *  Must be initialized to unlocked.                                
   */                                                                 
  _CORE_mutex_Initialize(                                             
3000c254:	e2850014 	add	r0, r5, #20                                   
3000c258:	eb0006e5 	bl	3000ddf4 <_CORE_mutex_Initialize>              
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000c25c:	e59f2058 	ldr	r2, [pc, #88]	; 3000c2bc <pthread_mutex_init+0x144>
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000c260:	e5953008 	ldr	r3, [r5, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000c264:	e592201c 	ldr	r2, [r2, #28]                                 
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
3000c268:	e3a06000 	mov	r6, #0                                        
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000c26c:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000c270:	e7825721 	str	r5, [r2, r1, lsr #14]                         
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
3000c274:	e585600c 	str	r6, [r5, #12]                                 
    CORE_MUTEX_UNLOCKED                                               
  );                                                                  
                                                                      
  _Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 );
                                                                      
  *mutex = the_mutex->Object.id;                                      
3000c278:	e5843000 	str	r3, [r4]                                      
                                                                      
  _Thread_Enable_dispatch();                                          
3000c27c:	eb000db2 	bl	3000f94c <_Thread_Enable_dispatch>             
  return 0;                                                           
3000c280:	e1a00006 	mov	r0, r6                                        
3000c284:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
  /*                                                                  
   *  Validate the priority ceiling field -- should always be valid.  
   */                                                                 
  if ( !_POSIX_Priority_Is_valid( the_attr->prio_ceiling ) )          
    return EINVAL;                                                    
3000c288:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000c28c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
      break;                                                          
    case PTHREAD_PRIO_INHERIT:                                        
      the_discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;       
      break;                                                          
    case PTHREAD_PRIO_PROTECT:                                        
      the_discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;       
3000c290:	e3a07003 	mov	r7, #3                                        <== NOT EXECUTED
      break;                                                          
3000c294:	eaffffce 	b	3000c1d4 <pthread_mutex_init+0x5c>              <== NOT EXECUTED
    case PTHREAD_MUTEX_ERRORCHECK:                                    
    case PTHREAD_MUTEX_DEFAULT:                                       
      break;                                                          
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000c298:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  *mutex = the_mutex->Object.id;                                      
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
3000c29c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  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;       
3000c2a0:	e3a07002 	mov	r7, #2                                        <== NOT EXECUTED
3000c2a4:	eaffffca 	b	3000c1d4 <pthread_mutex_init+0x5c>              <== NOT EXECUTED
  _Thread_Disable_dispatch();                                         
                                                                      
  the_mutex = _POSIX_Mutex_Allocate();                                
                                                                      
  if ( !the_mutex ) {                                                 
    _Thread_Enable_dispatch();                                        
3000c2a8:	eb000da7 	bl	3000f94c <_Thread_Enable_dispatch>             
    return EAGAIN;                                                    
3000c2ac:	e3a0000b 	mov	r0, #11                                       
3000c2b0:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

3000c338 <pthread_mutex_setprioceiling>: int pthread_mutex_setprioceiling( pthread_mutex_t *mutex, int prioceiling, int *old_ceiling ) {
3000c338:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
  Priority_Control              the_priority;                         
                                                                      
  if ( !old_ceiling )                                                 
3000c33c:	e2526000 	subs	r6, r2, #0                                   <== NOT EXECUTED
int pthread_mutex_setprioceiling(                                     
  pthread_mutex_t   *mutex,                                           
  int                prioceiling,                                     
  int               *old_ceiling                                      
)                                                                     
{                                                                     
3000c340:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000c344:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000c348:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  register POSIX_Mutex_Control *the_mutex;                            
  Objects_Locations             location;                             
  Priority_Control              the_priority;                         
                                                                      
  if ( !old_ceiling )                                                 
3000c34c:	0a000003 	beq	3000c360 <pthread_mutex_setprioceiling+0x28>  <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
3000c350:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000c354:	eb000074 	bl	3000c52c <_POSIX_Priority_Is_valid>            <== NOT EXECUTED
3000c358:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000c35c:	1a000002 	bne	3000c36c <pthread_mutex_setprioceiling+0x34>  <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000c360:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000c364:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c368:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
3000c36c:	e59f7058 	ldr	r7, [pc, #88]	; 3000c3cc <pthread_mutex_setprioceiling+0x94><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Must acquire the mutex before we can change it's ceiling.       
   *  POSIX says block until we acquire it.                           
   */                                                                 
  (void) pthread_mutex_lock( mutex );                                 
3000c370:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c374:	e5d78000 	ldrb	r8, [r7]                                     <== NOT EXECUTED
3000c378:	ebffffd1 	bl	3000c2c4 <pthread_mutex_lock>                  <== NOT EXECUTED
   *  operations.                                                     
   *                                                                  
   *  NOTE: This makes it easier to get 100% binary coverage since the
   *        bad Id case is handled by the switch.                     
   */                                                                 
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
3000c37c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c380:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000c384:	ebffff34 	bl	3000c05c <_POSIX_Mutex_Get>                    <== NOT EXECUTED
  switch ( location ) {                                               
3000c388:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
   *  operations.                                                     
   *                                                                  
   *  NOTE: This makes it easier to get 100% binary coverage since the
   *        bad Id case is handled by the switch.                     
   */                                                                 
  the_mutex = _POSIX_Mutex_Get( mutex, &location );                   
3000c38c:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
3000c390:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000c394:	1afffff1 	bne	3000c360 <pthread_mutex_setprioceiling+0x28>  <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
3000c398:	e5902060 	ldr	r2, [r0, #96]	; 0x60                          <== NOT EXECUTED
3000c39c:	e5d71000 	ldrb	r1, [r7]                                     <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE Priority_Control _POSIX_Priority_To_core(        
  int priority                                                        
)                                                                     
{                                                                     
  return (Priority_Control) (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);
3000c3a0:	e0655008 	rsb	r5, r5, r8                                    <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE int _POSIX_Priority_From_core(                   
  Priority_Control priority                                           
)                                                                     
{                                                                     
  return (POSIX_SCHEDULER_MAXIMUM_PRIORITY - priority + 1);           
3000c3a4:	e0622001 	rsb	r2, r2, r1                                    <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      *old_ceiling = _POSIX_Priority_From_core(                       
3000c3a8:	e5862000 	str	r2, [r6]                                      <== NOT EXECUTED
      );                                                              
      the_mutex->Mutex.Attributes.priority_ceiling = the_priority;    
      /*                                                              
       *  We are required to unlock the mutex before we return.       
       */                                                             
      _CORE_mutex_Surrender(                                          
3000c3ac:	e5931008 	ldr	r1, [r3, #8]                                  <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      *old_ceiling = _POSIX_Priority_From_core(                       
        the_mutex->Mutex.Attributes.priority_ceiling                  
      );                                                              
      the_mutex->Mutex.Attributes.priority_ceiling = the_priority;    
3000c3b0:	e5835060 	str	r5, [r3, #96]	; 0x60                          <== NOT EXECUTED
      /*                                                              
       *  We are required to unlock the mutex before we return.       
       */                                                             
      _CORE_mutex_Surrender(                                          
3000c3b4:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000c3b8:	e2800014 	add	r0, r0, #20                                   <== NOT EXECUTED
3000c3bc:	eb000708 	bl	3000dfe4 <_CORE_mutex_Surrender>               <== NOT EXECUTED
        &the_mutex->Mutex,                                            
        the_mutex->Object.id,                                         
        NULL                                                          
      );                                                              
      _Thread_Enable_dispatch();                                      
3000c3c0:	eb000d61 	bl	3000f94c <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
      return 0;                                                       
3000c3c4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c3c8:	eaffffe5 	b	3000c364 <pthread_mutex_setprioceiling+0x2c>    <== NOT EXECUTED
                                                                      

3000c3d0 <pthread_mutex_timedlock>: int pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abstime ) {
3000c3d0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000c3d4:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000c3d8:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000c3dc:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000c3e0:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000c3e4:	eb000030 	bl	3000c4ac <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
3000c3e8:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000c3ec:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
3000c3f0:	0a00000f 	beq	3000c434 <pthread_mutex_timedlock+0x64>       <== NOT EXECUTED
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Mutex_Lock_support( mutex, do_wait, ticks );   
3000c3f4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000c3f8:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000c3fc:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000c400:	ebffffb2 	bl	3000c2d0 <_POSIX_Mutex_Lock_support>           <== NOT EXECUTED
   *  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) ) {                         
3000c404:	e3500010 	cmp	r0, #16                                       <== NOT EXECUTED
3000c408:	0a000001 	beq	3000c414 <pthread_mutex_timedlock+0x44>       <== NOT EXECUTED
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
3000c40c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c410:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
   *  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 )                   
3000c414:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
      return EINVAL;                                                  
3000c418:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
   *  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 )                   
3000c41c:	0afffffa 	beq	3000c40c <pthread_mutex_timedlock+0x3c>       <== NOT EXECUTED
      return EINVAL;                                                  
    if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||               
3000c420:	e2444001 	sub	r4, r4, #1                                    <== NOT EXECUTED
         status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                    
      return ETIMEDOUT;                                               
3000c424:	e3540001 	cmp	r4, #1                                        <== NOT EXECUTED
3000c428:	83a00010 	movhi	r0, #16                                     <== NOT EXECUTED
3000c42c:	93a00074 	movls	r0, #116	; 0x74                             <== NOT EXECUTED
3000c430:	eafffff5 	b	3000c40c <pthread_mutex_timedlock+0x3c>         <== NOT EXECUTED
   */                                                                 
  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 );   
3000c434:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000c438:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000c43c:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000c440:	ebffffa2 	bl	3000c2d0 <_POSIX_Mutex_Lock_support>           <== NOT EXECUTED
3000c444:	eafffff0 	b	3000c40c <pthread_mutex_timedlock+0x3c>         <== NOT EXECUTED
                                                                      

3000c458 <pthread_mutex_trylock>: int pthread_mutex_trylock( pthread_mutex_t *mutex ) { return _POSIX_Mutex_Lock_support( mutex, false, THREAD_QUEUE_WAIT_FOREVER );
3000c458:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000c45c:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000c460:	eaffff9a 	b	3000c2d0 <_POSIX_Mutex_Lock_support>            <== NOT EXECUTED
                                                                      

3000be4c <pthread_mutexattr_destroy>: int pthread_mutexattr_destroy( pthread_mutexattr_t *attr ) { if ( !attr || !attr->is_initialized )
3000be4c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000be50:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
int pthread_mutexattr_destroy(                                        
  pthread_mutexattr_t *attr                                           
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
3000be54:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000be58:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000be5c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
3000be60:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000be64:	15830000 	strne	r0, [r3]                                    <== NOT EXECUTED
int pthread_mutexattr_destroy(                                        
  pthread_mutexattr_t *attr                                           
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000be68:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
3000be6c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000be70 <pthread_mutexattr_getprioceiling>: int pthread_mutexattr_getprioceiling( const pthread_mutexattr_t *attr, int *prioceiling ) { if ( !attr || !attr->is_initialized || !prioceiling )
3000be70:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000be74:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_mutexattr_getprioceiling(                                 
  const pthread_mutexattr_t   *attr,                                  
  int                         *prioceiling                            
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !prioceiling )               
3000be78:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000be7c:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000be80:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000be84:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *prioceiling = attr->prio_ceiling;                                  
3000be88:	15933008 	ldrne	r3, [r3, #8]                                <== NOT EXECUTED
int pthread_mutexattr_getprioceiling(                                 
  const pthread_mutexattr_t   *attr,                                  
  int                         *prioceiling                            
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !prioceiling )               
3000be8c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000be90:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *prioceiling = attr->prio_ceiling;                                  
3000be94:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_mutexattr_t   *attr,                                  
  int                         *prioceiling                            
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !prioceiling )               
    return EINVAL;                                                    
3000be98:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *prioceiling = attr->prio_ceiling;                                  
  return 0;                                                           
}                                                                     
3000be9c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bea0 <pthread_mutexattr_getprotocol>: int pthread_mutexattr_getprotocol( const pthread_mutexattr_t *attr, int *protocol ) { if ( !attr || !attr->is_initialized || !protocol )
3000bea0:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000bea4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_mutexattr_getprotocol(                                    
  const pthread_mutexattr_t   *attr,                                  
  int                         *protocol                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !protocol )                  
3000bea8:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000beac:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000beb0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000beb4:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *protocol = attr->protocol;                                         
3000beb8:	1593300c 	ldrne	r3, [r3, #12]                               <== NOT EXECUTED
int pthread_mutexattr_getprotocol(                                    
  const pthread_mutexattr_t   *attr,                                  
  int                         *protocol                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !protocol )                  
3000bebc:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000bec0:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *protocol = attr->protocol;                                         
3000bec4:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_mutexattr_t   *attr,                                  
  int                         *protocol                               
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !protocol )                  
    return EINVAL;                                                    
3000bec8:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *protocol = attr->protocol;                                         
  return 0;                                                           
}                                                                     
3000becc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bed0 <pthread_mutexattr_getpshared>: int pthread_mutexattr_getpshared( const pthread_mutexattr_t *attr, int *pshared ) { if ( !attr || !attr->is_initialized || !pshared )
3000bed0:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000bed4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_mutexattr_getpshared(                                     
  const pthread_mutexattr_t *attr,                                    
  int                       *pshared                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !pshared )                   
3000bed8:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000bedc:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000bee0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bee4:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000bee8:	15933004 	ldrne	r3, [r3, #4]                                <== NOT EXECUTED
int pthread_mutexattr_getpshared(                                     
  const pthread_mutexattr_t *attr,                                    
  int                       *pshared                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !pshared )                   
3000beec:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000bef0:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000bef4:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  const pthread_mutexattr_t *attr,                                    
  int                       *pshared                                  
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized || !pshared )                   
    return EINVAL;                                                    
3000bef8:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
}                                                                     
3000befc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bf38 <pthread_mutexattr_setprioceiling>: int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr, int prioceiling ) {
3000bf38:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  if ( !attr || !attr->is_initialized )                               
3000bf3c:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
                                                                      
int pthread_mutexattr_setprioceiling(                                 
  pthread_mutexattr_t   *attr,                                        
  int                    prioceiling                                  
)                                                                     
{                                                                     
3000bf40:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  if ( !attr || !attr->is_initialized )                               
3000bf44:	0a000002 	beq	3000bf54 <pthread_mutexattr_setprioceiling+0x1c><== NOT EXECUTED
3000bf48:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
3000bf4c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bf50:	1a000001 	bne	3000bf5c <pthread_mutexattr_setprioceiling+0x24><== NOT EXECUTED
    return EINVAL;                                                    
3000bf54:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000bf58:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
3000bf5c:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000bf60:	eb000171 	bl	3000c52c <_POSIX_Priority_Is_valid>            <== NOT EXECUTED
3000bf64:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->prio_ceiling = prioceiling;                                   
3000bf68:	15845008 	strne	r5, [r4, #8]                                <== NOT EXECUTED
  return 0;                                                           
3000bf6c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  if ( !_POSIX_Priority_Is_valid( prioceiling ) )                     
3000bf70:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
    return EINVAL;                                                    
3000bf74:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  attr->prio_ceiling = prioceiling;                                   
  return 0;                                                           
}                                                                     
3000bf78:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000bf7c <pthread_mutexattr_setprotocol>: int pthread_mutexattr_setprotocol( pthread_mutexattr_t *attr, int protocol ) { if ( !attr || !attr->is_initialized )
3000bf7c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bf80:	0a000008 	beq	3000bfa8 <pthread_mutexattr_setprotocol+0x2c> <== NOT EXECUTED
3000bf84:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000bf88:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bf8c:	0a000005 	beq	3000bfa8 <pthread_mutexattr_setprotocol+0x2c> <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( protocol ) {                                               
3000bf90:	e3510002 	cmp	r1, #2                                        <== NOT EXECUTED
    case PTHREAD_PRIO_NONE:                                           
    case PTHREAD_PRIO_INHERIT:                                        
    case PTHREAD_PRIO_PROTECT:                                        
      attr->protocol = protocol;                                      
3000bf94:	9580100c 	strls	r1, [r0, #12]                               <== NOT EXECUTED
      return 0;                                                       
3000bf98:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( protocol ) {                                               
3000bf9c:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case PTHREAD_PRIO_PROTECT:                                        
      attr->protocol = protocol;                                      
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000bfa0:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000bfa4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_mutexattr_t   *attr,                                        
  int                    protocol                                     
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000bfa8:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000bfac:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bfb0 <pthread_mutexattr_setpshared>: int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared ) { if ( !attr || !attr->is_initialized )
3000bfb0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bfb4:	0a000008 	beq	3000bfdc <pthread_mutexattr_setpshared+0x2c>  <== NOT EXECUTED
3000bfb8:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000bfbc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bfc0:	0a000005 	beq	3000bfdc <pthread_mutexattr_setpshared+0x2c>  <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000bfc4:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
3000bfc8:	95801004 	strls	r1, [r0, #4]                                <== NOT EXECUTED
      return 0;                                                       
3000bfcc:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000bfd0:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000bfd4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000bfd8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  pthread_mutexattr_t *attr,                                          
  int                  pshared                                        
)                                                                     
{                                                                     
  if ( !attr || !attr->is_initialized )                               
    return EINVAL;                                                    
3000bfdc:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000bfe0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a508 <pthread_once>: int pthread_once( pthread_once_t *once_control, void (*init_routine)(void) ) {
3000a508:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  if ( !once_control || !init_routine )                               
3000a50c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a510:	13510000 	cmpne	r1, #0                                      <== NOT EXECUTED
3000a514:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
int pthread_once(                                                     
  pthread_once_t  *once_control,                                      
  void           (*init_routine)(void)                                
)                                                                     
{                                                                     
3000a518:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  if ( !once_control || !init_routine )                               
3000a51c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000a520:	03a00001 	moveq	r0, #1                                      <== NOT EXECUTED
3000a524:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000a528:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_once(                                                     
  pthread_once_t  *once_control,                                      
  void           (*init_routine)(void)                                
)                                                                     
{                                                                     
  if ( !once_control || !init_routine )                               
3000a52c:	0a000002 	beq	3000a53c <pthread_once+0x34>                  <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !once_control->init_executed ) {                               
3000a530:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
3000a534:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a538:	0a000001 	beq	3000a544 <pthread_once+0x3c>                  <== NOT EXECUTED
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
  }                                                                   
  return 0;                                                           
}                                                                     
3000a53c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a540:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
  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); 
3000a544:	e3a00c01 	mov	r0, #256	; 0x100                              <== NOT EXECUTED
3000a548:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000a54c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a550:	eb0002e6 	bl	3000b0f0 <rtems_task_mode>                     <== NOT EXECUTED
    if ( !once_control->init_executed ) {                             
3000a554:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
  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); 
3000a558:	e1a0600d 	mov	r6, sp                                        <== NOT EXECUTED
    if ( !once_control->init_executed ) {                             
3000a55c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a560:	0a000005 	beq	3000a57c <pthread_once+0x74>                  <== NOT EXECUTED
      once_control->is_initialized = true;                            
      once_control->init_executed = true;                             
      (*init_routine)();                                              
    }                                                                 
    rtems_task_mode(saveMode, RTEMS_PREEMPT_MASK, &saveMode);         
3000a564:	e59d0000 	ldr	r0, [sp]                                      <== NOT EXECUTED
3000a568:	e3a01c01 	mov	r1, #256	; 0x100                              <== NOT EXECUTED
3000a56c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a570:	eb0002de 	bl	3000b0f0 <rtems_task_mode>                     <== NOT EXECUTED
  }                                                                   
  return 0;                                                           
3000a574:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a578:	eaffffef 	b	3000a53c <pthread_once+0x34>                    <== NOT EXECUTED
                                                                      
  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;                            
3000a57c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000a580:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
      once_control->init_executed = true;                             
3000a584:	e5843004 	str	r3, [r4, #4]                                  <== NOT EXECUTED
      (*init_routine)();                                              
3000a588:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000a58c:	e12fff15 	bx	r5                                             <== NOT EXECUTED
3000a590:	eafffff3 	b	3000a564 <pthread_once+0x5c>                    <== NOT EXECUTED
                                                                      

3000b104 <pthread_rwlock_destroy>: */ int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ) {
3000b104:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  POSIX_RWLock_Control *the_rwlock = NULL;                            
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b108:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_destroy(                                           
  pthread_rwlock_t *rwlock                                            
)                                                                     
{                                                                     
3000b10c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_RWLock_Control *the_rwlock = NULL;                            
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b110:	0a00000e 	beq	3000b150 <pthread_rwlock_destroy+0x4c>        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (        
  pthread_rwlock_t *RWLock,                                           
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_RWLock_Control *) _Objects_Get(                       
3000b114:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000b118:	e59f0060 	ldr	r0, [pc, #96]	; 3000b180 <pthread_rwlock_destroy+0x7c><== NOT EXECUTED
3000b11c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000b120:	eb000b13 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b124:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000b128:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000b12c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b130:	1a000006 	bne	3000b150 <pthread_rwlock_destroy+0x4c>        <== NOT EXECUTED
                                                                      
    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 ) {
3000b134:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b138:	eb001058 	bl	3000f2a0 <_Thread_queue_First>                 <== NOT EXECUTED
3000b13c:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000b140:	0a000005 	beq	3000b15c <pthread_rwlock_destroy+0x58>        <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
3000b144:	eb000e44 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EBUSY;                                                 
3000b148:	e3a00010 	mov	r0, #16                                       <== NOT EXECUTED
3000b14c:	ea000000 	b	3000b154 <pthread_rwlock_destroy+0x50>          <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b150:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b154:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000b158:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
      /*                                                              
       *  POSIX doesn't require behavior when it is locked.           
       */                                                             
                                                                      
      _Objects_Close( &_POSIX_RWLock_Information, &the_rwlock->Object );
3000b15c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000b160:	e59f0018 	ldr	r0, [pc, #24]	; 3000b180 <pthread_rwlock_destroy+0x7c><== NOT EXECUTED
3000b164:	eb0009f6 	bl	3000d944 <_Objects_Close>                      <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_RWLock_Free (                        
  POSIX_RWLock_Control *the_RWLock                                    
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_RWLock_Information, &the_RWLock->Object );   
3000b168:	e59f0010 	ldr	r0, [pc, #16]	; 3000b180 <pthread_rwlock_destroy+0x7c><== NOT EXECUTED
3000b16c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000b170:	eb000aa8 	bl	3000dc18 <_Objects_Free>                       <== NOT EXECUTED
                                                                      
      _POSIX_RWLock_Free( the_rwlock );                               
                                                                      
      _Thread_Enable_dispatch();                                      
3000b174:	eb000e38 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000b178:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000b17c:	eafffff4 	b	3000b154 <pthread_rwlock_destroy+0x50>          <== NOT EXECUTED
                                                                      

3000b184 <pthread_rwlock_init>: int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr ) {
3000b184:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  const pthread_rwlockattr_t  *the_attr;                              
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !rwlock )                                                      
3000b188:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
                                                                      
int pthread_rwlock_init(                                              
  pthread_rwlock_t           *rwlock,                                 
  const pthread_rwlockattr_t *attr                                    
)                                                                     
{                                                                     
3000b18c:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
  const pthread_rwlockattr_t  *the_attr;                              
                                                                      
  /*                                                                  
   *  Error check parameters                                          
   */                                                                 
  if ( !rwlock )                                                      
3000b190:	0a000007 	beq	3000b1b4 <pthread_rwlock_init+0x30>           <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  /*                                                                  
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
3000b194:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000b198:	0a000021 	beq	3000b224 <pthread_rwlock_init+0xa0>           <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   * Now start error checking the attributes that we are going to use 
   */                                                                 
  if ( !the_attr->is_initialized )                                    
3000b19c:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
3000b1a0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b1a4:	0a000002 	beq	3000b1b4 <pthread_rwlock_init+0x30>           <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( the_attr->process_shared ) {                               
3000b1a8:	e5914004 	ldr	r4, [r1, #4]                                  <== NOT EXECUTED
3000b1ac:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000b1b0:	0a000002 	beq	3000b1c0 <pthread_rwlock_init+0x3c>           <== NOT EXECUTED
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
3000b1b4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
3000b1b8:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000b1bc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000b1c0:	e59f3070 	ldr	r3, [pc, #112]	; 3000b238 <pthread_rwlock_init+0xb4><== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _CORE_RWLock_Initialize_attributes(         
  CORE_RWLock_Attributes *the_attributes                              
)                                                                     
{                                                                     
  the_attributes->XXX = 0;                                            
3000b1c4:	e58d4008 	str	r4, [sp, #8]                                  <== NOT EXECUTED
3000b1c8:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000b1cc:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000b1d0:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 *  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 );                  
3000b1d4:	e59f7060 	ldr	r7, [pc, #96]	; 3000b23c <pthread_rwlock_init+0xb8><== NOT EXECUTED
3000b1d8:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000b1dc:	eb0009b3 	bl	3000d8b0 <_Objects_Allocate>                   <== NOT EXECUTED
   */                                                                 
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
3000b1e0:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000b1e4:	0a00000b 	beq	3000b218 <pthread_rwlock_init+0x94>           <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_RWLock_Initialize( &the_rwlock->RWLock, &the_attributes );    
3000b1e8:	e2860010 	add	r0, r6, #16                                   <== NOT EXECUTED
3000b1ec:	e28d1008 	add	r1, sp, #8                                    <== NOT EXECUTED
3000b1f0:	eb000775 	bl	3000cfcc <_CORE_RWLock_Initialize>             <== NOT EXECUTED
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000b1f4:	e5963008 	ldr	r3, [r6, #8]                                  <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000b1f8:	e597201c 	ldr	r2, [r7, #28]                                 <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000b1fc:	e1a01803 	lsl	r1, r3, #16                                   <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000b200:	e7826721 	str	r6, [r2, r1, lsr #14]                         <== NOT EXECUTED
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
3000b204:	e586400c 	str	r4, [r6, #12]                                 <== NOT EXECUTED
    &_POSIX_RWLock_Information,                                       
    &the_rwlock->Object,                                              
    0                                                                 
  );                                                                  
                                                                      
  *rwlock = the_rwlock->Object.id;                                    
3000b208:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
3000b20c:	eb000e12 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
3000b210:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b214:	eaffffe7 	b	3000b1b8 <pthread_rwlock_init+0x34>             <== NOT EXECUTED
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_rwlock = _POSIX_RWLock_Allocate();                              
                                                                      
  if ( !the_rwlock ) {                                                
    _Thread_Enable_dispatch();                                        
3000b218:	eb000e0f 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return EAGAIN;                                                    
3000b21c:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
3000b220:	eaffffe4 	b	3000b1b8 <pthread_rwlock_init+0x34>             <== NOT EXECUTED
   * If the user passed in NULL, use the default attributes           
   */                                                                 
  if ( attr ) {                                                       
    the_attr = attr;                                                  
  } else {                                                            
    (void) pthread_rwlockattr_init( &default_attr );                  
3000b224:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000b228:	eb000265 	bl	3000bbc4 <pthread_rwlockattr_init>             <== NOT EXECUTED
3000b22c:	e1a0400d 	mov	r4, sp                                        <== NOT EXECUTED
    the_attr = &default_attr;                                         
3000b230:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000b234:	eaffffd8 	b	3000b19c <pthread_rwlock_init+0x18>             <== NOT EXECUTED
                                                                      

3000b240 <pthread_rwlock_rdlock>: */ int pthread_rwlock_rdlock( pthread_rwlock_t *rwlock ) {
3000b240:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b244:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_rdlock(                                            
  pthread_rwlock_t  *rwlock                                           
)                                                                     
{                                                                     
3000b248:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b24c:	0a000006 	beq	3000b26c <pthread_rwlock_rdlock+0x2c>         <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_RWLock_Control *_POSIX_RWLock_Get (        
  pthread_rwlock_t *RWLock,                                           
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_RWLock_Control *) _Objects_Get(                       
3000b250:	e59f004c 	ldr	r0, [pc, #76]	; 3000b2a4 <pthread_rwlock_rdlock+0x64><== NOT EXECUTED
3000b254:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b258:	e28d2004 	add	r2, sp, #4                                    <== NOT EXECUTED
3000b25c:	eb000ac4 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b260:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000b264:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b268:	0a000002 	beq	3000b278 <pthread_rwlock_rdlock+0x38>         <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b26c:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b270:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000b274:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
3000b278:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b27c:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000b280:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b284:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000b288:	eb000757 	bl	3000cfec <_CORE_RWLock_Obtain_for_reading>     <== NOT EXECUTED
	true,                 /* we are willing to wait forever */           
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000b28c:	eb000df2 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
3000b290:	e59f3010 	ldr	r3, [pc, #16]	; 3000b2a8 <pthread_rwlock_rdlock+0x68><== NOT EXECUTED
3000b294:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b298:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000b29c:	eb00006a 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b2a0:	eafffff2 	b	3000b270 <pthread_rwlock_rdlock+0x30>           <== NOT EXECUTED
                                                                      

3000b2ac <pthread_rwlock_timedrdlock>: int pthread_rwlock_timedrdlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
3000b2ac:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
3000b2b0:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
                                                                      
int pthread_rwlock_timedrdlock(                                       
  pthread_rwlock_t      *rwlock,                                      
  const struct timespec *abstime                                      
)                                                                     
{                                                                     
3000b2b4:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
3000b2b8:	0a00001d 	beq	3000b334 <pthread_rwlock_timedrdlock+0x88>    <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000b2bc:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000b2c0:	e28d1004 	add	r1, sp, #4                                    <== NOT EXECUTED
3000b2c4:	eb001a36 	bl	30011ba4 <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
3000b2c8:	e5951000 	ldr	r1, [r5]                                      <== NOT EXECUTED
3000b2cc:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000b2d0:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
3000b2d4:	e59f0098 	ldr	r0, [pc, #152]	; 3000b374 <pthread_rwlock_timedrdlock+0xc8><== NOT EXECUTED
3000b2d8:	eb000aa5 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b2dc:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
3000b2e0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b2e4:	1a000012 	bne	3000b334 <pthread_rwlock_timedrdlock+0x88>    <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
3000b2e8:	e5951000 	ldr	r1, [r5]                                      <== NOT EXECUTED
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,                                
3000b2ec:	e3540003 	cmp	r4, #3                                        <== NOT EXECUTED
3000b2f0:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
3000b2f4:	03a05001 	moveq	r5, #1                                      <== NOT EXECUTED
3000b2f8:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000b2fc:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b300:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
3000b304:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000b308:	eb000737 	bl	3000cfec <_CORE_RWLock_Obtain_for_reading>     <== NOT EXECUTED
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000b30c:	eb000dd2 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      if ( !do_wait ) {                                               
3000b310:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000b314:	1a000011 	bne	3000b360 <pthread_rwlock_timedrdlock+0xb4>    <== NOT EXECUTED
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
3000b318:	e59f3058 	ldr	r3, [pc, #88]	; 3000b378 <pthread_rwlock_timedrdlock+0xcc><== NOT EXECUTED
3000b31c:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b320:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000b324:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000b328:	0a000004 	beq	3000b340 <pthread_rwlock_timedrdlock+0x94>    <== NOT EXECUTED
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b32c:	eb000046 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b330:	ea000000 	b	3000b338 <pthread_rwlock_timedrdlock+0x8c>      <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
	    return EINVAL;                                                   
3000b334:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
3000b338:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000b33c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
3000b340:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000b344:	0afffffa 	beq	3000b334 <pthread_rwlock_timedrdlock+0x88>    <== NOT EXECUTED
	    return EINVAL;                                                   
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
3000b348:	e2444001 	sub	r4, r4, #1                                    <== NOT EXECUTED
3000b34c:	e3540001 	cmp	r4, #1                                        <== NOT EXECUTED
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
3000b350:	93a00074 	movls	r0, #116	; 0x74                             <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
        if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) {
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                    
	    return EINVAL;                                                   
	  if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                
3000b354:	9afffff7 	bls	3000b338 <pthread_rwlock_timedrdlock+0x8c>    <== NOT EXECUTED
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b358:	eb00003b 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b35c:	eafffff5 	b	3000b338 <pthread_rwlock_timedrdlock+0x8c>      <== NOT EXECUTED
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait ) {                                               
3000b360:	e59f3010 	ldr	r3, [pc, #16]	; 3000b378 <pthread_rwlock_timedrdlock+0xcc><== NOT EXECUTED
3000b364:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b368:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
	       status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                     
	    return ETIMEDOUT;                                                
        }                                                             
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b36c:	eb000036 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b370:	eafffff0 	b	3000b338 <pthread_rwlock_timedrdlock+0x8c>      <== NOT EXECUTED
                                                                      

3000b37c <pthread_rwlock_timedwrlock>: int pthread_rwlock_timedwrlock( pthread_rwlock_t *rwlock, const struct timespec *abstime ) {
3000b37c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
3000b380:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
                                                                      
int pthread_rwlock_timedwrlock(                                       
  pthread_rwlock_t      *rwlock,                                      
  const struct timespec *abstime                                      
)                                                                     
{                                                                     
3000b384:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
  Objects_Locations                            location;              
  Watchdog_Interval                            ticks;                 
  bool                                         do_wait = true;        
  POSIX_Absolute_timeout_conversion_results_t  status;                
                                                                      
  if ( !rwlock )                                                      
3000b388:	0a00001d 	beq	3000b404 <pthread_rwlock_timedwrlock+0x88>    <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000b38c:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000b390:	e28d1004 	add	r1, sp, #4                                    <== NOT EXECUTED
3000b394:	eb001a02 	bl	30011ba4 <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
3000b398:	e5951000 	ldr	r1, [r5]                                      <== NOT EXECUTED
3000b39c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000b3a0:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
3000b3a4:	e59f0098 	ldr	r0, [pc, #152]	; 3000b444 <pthread_rwlock_timedwrlock+0xc8><== NOT EXECUTED
3000b3a8:	eb000a71 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
    do_wait = false;                                                  
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b3ac:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
3000b3b0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b3b4:	1a000012 	bne	3000b404 <pthread_rwlock_timedwrlock+0x88>    <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
3000b3b8:	e5951000 	ldr	r1, [r5]                                      <== NOT EXECUTED
        (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,                                
3000b3bc:	e3540003 	cmp	r4, #3                                        <== NOT EXECUTED
3000b3c0:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
3000b3c4:	03a05001 	moveq	r5, #1                                      <== NOT EXECUTED
3000b3c8:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000b3cc:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b3d0:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
3000b3d4:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000b3d8:	eb00073a 	bl	3000d0c8 <_CORE_RWLock_Obtain_for_writing>     <== NOT EXECUTED
	do_wait,                                                             
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000b3dc:	eb000d9e 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      if ( !do_wait &&                                                
3000b3e0:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000b3e4:	1a000011 	bne	3000b430 <pthread_rwlock_timedwrlock+0xb4>    <== NOT EXECUTED
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
3000b3e8:	e59f3058 	ldr	r3, [pc, #88]	; 3000b448 <pthread_rwlock_timedwrlock+0xcc><== NOT EXECUTED
3000b3ec:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b3f0:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
3000b3f4:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
3000b3f8:	0a000004 	beq	3000b410 <pthread_rwlock_timedwrlock+0x94>    <== NOT EXECUTED
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b3fc:	eb000012 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b400:	ea000000 	b	3000b408 <pthread_rwlock_timedwrlock+0x8c>      <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
	  return EINVAL;                                                     
3000b404:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
3000b408:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000b40c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
3000b410:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000b414:	0afffffa 	beq	3000b404 <pthread_rwlock_timedwrlock+0x88>    <== NOT EXECUTED
	  return EINVAL;                                                     
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
3000b418:	e2444001 	sub	r4, r4, #1                                    <== NOT EXECUTED
3000b41c:	e3540001 	cmp	r4, #1                                        <== NOT EXECUTED
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
3000b420:	93a00074 	movls	r0, #116	; 0x74                             <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
           (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) {
	if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID )                      
	  return EINVAL;                                                     
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
3000b424:	9afffff7 	bls	3000b408 <pthread_rwlock_timedwrlock+0x8c>    <== NOT EXECUTED
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b428:	eb000007 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b42c:	eafffff5 	b	3000b408 <pthread_rwlock_timedwrlock+0x8c>      <== NOT EXECUTED
	ticks,                                                               
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      if ( !do_wait &&                                                
3000b430:	e59f3010 	ldr	r3, [pc, #16]	; 3000b448 <pthread_rwlock_timedwrlock+0xcc><== NOT EXECUTED
3000b434:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b438:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
	if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST ||                  
	     status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )                       
	  return ETIMEDOUT;                                                  
      }                                                               
                                                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b43c:	eb000002 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b440:	eafffff0 	b	3000b408 <pthread_rwlock_timedwrlock+0x8c>      <== NOT EXECUTED
                                                                      

3000b45c <pthread_rwlock_tryrdlock>: */ int pthread_rwlock_tryrdlock( pthread_rwlock_t *rwlock ) {
3000b45c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b460:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_tryrdlock(                                         
  pthread_rwlock_t  *rwlock                                           
)                                                                     
{                                                                     
3000b464:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b468:	0a000006 	beq	3000b488 <pthread_rwlock_tryrdlock+0x2c>      <== NOT EXECUTED
3000b46c:	e28d2004 	add	r2, sp, #4                                    <== NOT EXECUTED
3000b470:	e59f0048 	ldr	r0, [pc, #72]	; 3000b4c0 <pthread_rwlock_tryrdlock+0x64><== NOT EXECUTED
3000b474:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b478:	eb000a3d 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b47c:	e59d2004 	ldr	r2, [sp, #4]                                  <== NOT EXECUTED
3000b480:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000b484:	0a000002 	beq	3000b494 <pthread_rwlock_tryrdlock+0x38>      <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b488:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b48c:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000b490:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_reading(                                
3000b494:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b498:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000b49c:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b4a0:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
3000b4a4:	eb0006d0 	bl	3000cfec <_CORE_RWLock_Obtain_for_reading>     <== NOT EXECUTED
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
                                                                      
      _Thread_Enable_dispatch();                                      
3000b4a8:	eb000d6b 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
3000b4ac:	e59f3010 	ldr	r3, [pc, #16]	; 3000b4c4 <pthread_rwlock_tryrdlock+0x68><== NOT EXECUTED
3000b4b0:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
	NULL                                                                 
      );                                                              
                                                                      
                                                                      
      _Thread_Enable_dispatch();                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b4b4:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000b4b8:	ebffffe3 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b4bc:	eafffff2 	b	3000b48c <pthread_rwlock_tryrdlock+0x30>        <== NOT EXECUTED
                                                                      

3000b4c8 <pthread_rwlock_trywrlock>: */ int pthread_rwlock_trywrlock( pthread_rwlock_t *rwlock ) {
3000b4c8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b4cc:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_trywrlock(                                         
  pthread_rwlock_t  *rwlock                                           
)                                                                     
{                                                                     
3000b4d0:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b4d4:	0a000006 	beq	3000b4f4 <pthread_rwlock_trywrlock+0x2c>      <== NOT EXECUTED
3000b4d8:	e28d2004 	add	r2, sp, #4                                    <== NOT EXECUTED
3000b4dc:	e59f0048 	ldr	r0, [pc, #72]	; 3000b52c <pthread_rwlock_trywrlock+0x64><== NOT EXECUTED
3000b4e0:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b4e4:	eb000a22 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b4e8:	e59d2004 	ldr	r2, [sp, #4]                                  <== NOT EXECUTED
3000b4ec:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000b4f0:	0a000002 	beq	3000b500 <pthread_rwlock_trywrlock+0x38>      <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b4f4:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b4f8:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000b4fc:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
3000b500:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b504:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000b508:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b50c:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
3000b510:	eb0006ec 	bl	3000d0c8 <_CORE_RWLock_Obtain_for_writing>     <== NOT EXECUTED
	false,                 /* we are not willing to wait */              
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000b514:	eb000d50 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
3000b518:	e59f3010 	ldr	r3, [pc, #16]	; 3000b530 <pthread_rwlock_trywrlock+0x68><== NOT EXECUTED
3000b51c:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b520:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000b524:	ebffffc8 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b528:	eafffff2 	b	3000b4f8 <pthread_rwlock_trywrlock+0x30>        <== NOT EXECUTED
                                                                      

3000b534 <pthread_rwlock_unlock>: */ int pthread_rwlock_unlock( pthread_rwlock_t *rwlock ) {
3000b534:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
  CORE_RWLock_Status     status;                                      
                                                                      
  if ( !rwlock )                                                      
3000b538:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_unlock(                                            
  pthread_rwlock_t  *rwlock                                           
)                                                                     
{                                                                     
3000b53c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
  CORE_RWLock_Status     status;                                      
                                                                      
  if ( !rwlock )                                                      
3000b540:	0a000006 	beq	3000b560 <pthread_rwlock_unlock+0x2c>         <== NOT EXECUTED
3000b544:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000b548:	e59f0038 	ldr	r0, [pc, #56]	; 3000b588 <pthread_rwlock_unlock+0x54><== NOT EXECUTED
3000b54c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000b550:	eb000a07 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b554:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000b558:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b55c:	0a000002 	beq	3000b56c <pthread_rwlock_unlock+0x38>         <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b560:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b564:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000b568:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_RWLock_Release( &the_rwlock->RWLock );           
3000b56c:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b570:	eb0006f9 	bl	3000d15c <_CORE_RWLock_Release>                <== NOT EXECUTED
3000b574:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000b578:	eb000d37 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_RWLock_Translate_core_RWLock_return_code( status );
3000b57c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b580:	ebffffb1 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b584:	eafffff6 	b	3000b564 <pthread_rwlock_unlock+0x30>           <== NOT EXECUTED
                                                                      

3000b58c <pthread_rwlock_wrlock>: */ int pthread_rwlock_wrlock( pthread_rwlock_t *rwlock ) {
3000b58c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b590:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_rwlock_wrlock(                                            
  pthread_rwlock_t  *rwlock                                           
)                                                                     
{                                                                     
3000b594:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  POSIX_RWLock_Control  *the_rwlock;                                  
  Objects_Locations      location;                                    
                                                                      
  if ( !rwlock )                                                      
3000b598:	0a000006 	beq	3000b5b8 <pthread_rwlock_wrlock+0x2c>         <== NOT EXECUTED
3000b59c:	e59f004c 	ldr	r0, [pc, #76]	; 3000b5f0 <pthread_rwlock_wrlock+0x64><== NOT EXECUTED
3000b5a0:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b5a4:	e28d2004 	add	r2, sp, #4                                    <== NOT EXECUTED
3000b5a8:	eb0009f1 	bl	3000dd74 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
3000b5ac:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000b5b0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b5b4:	0a000002 	beq	3000b5c4 <pthread_rwlock_wrlock+0x38>         <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000b5b8:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000b5bc:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000b5c0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  the_rwlock = _POSIX_RWLock_Get( rwlock, &location );                
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      _CORE_RWLock_Obtain_for_writing(                                
3000b5c4:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000b5c8:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000b5cc:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000b5d0:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000b5d4:	eb0006bb 	bl	3000d0c8 <_CORE_RWLock_Obtain_for_writing>     <== NOT EXECUTED
	true,          /* do not timeout -- wait forever */                  
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
3000b5d8:	eb000d1f 	bl	3000ea5c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
        (CORE_RWLock_Status) _Thread_Executing->Wait.return_code      
3000b5dc:	e59f3010 	ldr	r3, [pc, #16]	; 3000b5f4 <pthread_rwlock_wrlock+0x68><== NOT EXECUTED
3000b5e0:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
	0,                                                                   
	NULL                                                                 
      );                                                              
                                                                      
      _Thread_Enable_dispatch();                                      
      return _POSIX_RWLock_Translate_core_RWLock_return_code(         
3000b5e4:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000b5e8:	ebffff97 	bl	3000b44c <_POSIX_RWLock_Translate_core_RWLock_return_code><== NOT EXECUTED
3000b5ec:	eafffff2 	b	3000b5bc <pthread_rwlock_wrlock+0x30>           <== NOT EXECUTED
                                                                      

3000bb78 <pthread_rwlockattr_destroy>: int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr ) { if ( !attr || attr->is_initialized == false )
3000bb78:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
3000bb7c:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
int pthread_rwlockattr_destroy(                                       
  pthread_rwlockattr_t *attr                                          
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
3000bb80:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
3000bb84:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000bb88:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = false;                                       
3000bb8c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
3000bb90:	15830000 	strne	r0, [r3]                                    <== NOT EXECUTED
int pthread_rwlockattr_destroy(                                       
  pthread_rwlockattr_t *attr                                          
)                                                                     
{                                                                     
  if ( !attr || attr->is_initialized == false )                       
    return EINVAL;                                                    
3000bb94:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = false;                                       
  return 0;                                                           
}                                                                     
3000bb98:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bb9c <pthread_rwlockattr_getpshared>: int pthread_rwlockattr_getpshared( const pthread_rwlockattr_t *attr, int *pshared ) { if ( !attr )
3000bb9c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
3000bba0:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
int pthread_rwlockattr_getpshared(                                    
  const pthread_rwlockattr_t *attr,                                   
  int                         *pshared                                
)                                                                     
{                                                                     
  if ( !attr )                                                        
3000bba4:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
3000bba8:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000bbac:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000bbb0:	15903004 	ldrne	r3, [r0, #4]                                <== NOT EXECUTED
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
3000bbb4:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  *pshared = attr->process_shared;                                    
  return 0;                                                           
3000bbb8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
                                                                      
  *pshared = attr->process_shared;                                    
3000bbbc:	15813000 	strne	r3, [r1]                                    <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000bbc0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bbc4 <pthread_rwlockattr_init>: int pthread_rwlockattr_init( pthread_rwlockattr_t *attr ) { if ( !attr )
3000bbc4:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = true;                                        
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
3000bbc8:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  attr->is_initialized = true;                                        
3000bbcc:	13a02001 	movne	r2, #1                                      <== NOT EXECUTED
3000bbd0:	15832000 	strne	r2, [r3]                                    <== NOT EXECUTED
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
3000bbd4:	15830004 	strne	r0, [r3, #4]                                <== NOT EXECUTED
int pthread_rwlockattr_init(                                          
  pthread_rwlockattr_t *attr                                          
)                                                                     
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
3000bbd8:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
                                                                      
  attr->is_initialized = true;                                        
  attr->process_shared = PTHREAD_PROCESS_PRIVATE;                     
  return 0;                                                           
}                                                                     
3000bbdc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bbe0 <pthread_rwlockattr_setpshared>: int pthread_rwlockattr_setpshared( pthread_rwlockattr_t *attr, int pshared ) { if ( !attr )
3000bbe0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bbe4:	0a000008 	beq	3000bc0c <pthread_rwlockattr_setpshared+0x2c> <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
3000bbe8:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000bbec:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000bbf0:	0a000005 	beq	3000bc0c <pthread_rwlockattr_setpshared+0x2c> <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000bbf4:	e3510001 	cmp	r1, #1                                        <== NOT EXECUTED
    case PTHREAD_PROCESS_SHARED:                                      
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
3000bbf8:	95801004 	strls	r1, [r0, #4]                                <== NOT EXECUTED
      return 0;                                                       
3000bbfc:	93a00000 	movls	r0, #0                                      <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
3000bc00:	912fff1e 	bxls	lr                                           <== NOT EXECUTED
    case PTHREAD_PROCESS_PRIVATE:                                     
      attr->process_shared = pshared;                                 
      return 0;                                                       
                                                                      
    default:                                                          
      return EINVAL;                                                  
3000bc04:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  }                                                                   
}                                                                     
3000bc08:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
{                                                                     
  if ( !attr )                                                        
    return EINVAL;                                                    
                                                                      
  if ( !attr->is_initialized )                                        
    return EINVAL;                                                    
3000bc0c:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
3000bc10:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300271c0 <pthread_self>: #include <rtems/system.h> #include <rtems/score/thread.h> pthread_t pthread_self( void ) { return _Thread_Executing->Object.id;
300271c0:	e59f3008 	ldr	r3, [pc, #8]	; 300271d0 <pthread_self+0x10>   <== NOT EXECUTED
300271c4:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
}                                                                     
300271c8:	e5930008 	ldr	r0, [r3, #8]                                  <== NOT EXECUTED
300271cc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300097bc <pthread_setcancelstate>: * 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() )
300097bc:	e59f3064 	ldr	r3, [pc, #100]	; 30009828 <pthread_setcancelstate+0x6c><== NOT EXECUTED
                                                                      
int pthread_setcancelstate(                                           
  int  state,                                                         
  int *oldstate                                                       
)                                                                     
{                                                                     
300097c0:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
   *  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() )                                        
300097c4:	e5934000 	ldr	r4, [r3]                                      <== NOT EXECUTED
                                                                      
int pthread_setcancelstate(                                           
  int  state,                                                         
  int *oldstate                                                       
)                                                                     
{                                                                     
300097c8:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
   *  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() )                                        
300097cc:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
    return EPROTO;                                                    
300097d0:	13a00047 	movne	r0, #71	; 0x47                              <== NOT EXECUTED
   *  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() )                                        
300097d4:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
    return EPROTO;                                                    
                                                                      
  if ( !oldstate )                                                    
300097d8:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
300097dc:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  if ( !oldstate )                                                    
300097e0:	08bd8010 	popeq	{r4, pc}                                    <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE )
300097e4:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
300097e8:	9a000001 	bls	300097f4 <pthread_setcancelstate+0x38>        <== NOT EXECUTED
    return EINVAL;                                                    
300097ec:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
300097f0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
300097f4:	e59f0030 	ldr	r0, [pc, #48]	; 3000982c <pthread_setcancelstate+0x70><== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE )
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
300097f8:	e593c004 	ldr	ip, [r3, #4]                                  <== NOT EXECUTED
300097fc:	e590e000 	ldr	lr, [r0]                                      <== NOT EXECUTED
30009800:	e59cc0fc 	ldr	ip, [ip, #252]	; 0xfc                         <== NOT EXECUTED
30009804:	e28ee001 	add	lr, lr, #1                                    <== NOT EXECUTED
30009808:	e580e000 	str	lr, [r0]                                      <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldstate = thread_support->cancelability_state;                  
3000980c:	e59ce0d8 	ldr	lr, [ip, #216]	; 0xd8                         <== NOT EXECUTED
    thread_support->cancelability_state = state;                      
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
30009810:	e5930004 	ldr	r0, [r3, #4]                                  <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldstate = thread_support->cancelability_state;                  
30009814:	e581e000 	str	lr, [r1]                                      <== NOT EXECUTED
    thread_support->cancelability_state = state;                      
30009818:	e58c20d8 	str	r2, [ip, #216]	; 0xd8                         <== NOT EXECUTED
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
3000981c:	eb00163f 	bl	3000f120 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
                                                                      
  return 0;                                                           
30009820:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009824:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

30009830 <pthread_setcanceltype>: * 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() )
30009830:	e59f3064 	ldr	r3, [pc, #100]	; 3000989c <pthread_setcanceltype+0x6c><== NOT EXECUTED
                                                                      
int pthread_setcanceltype(                                            
  int  type,                                                          
  int *oldtype                                                        
)                                                                     
{                                                                     
30009834:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
   *  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() )                                        
30009838:	e5934000 	ldr	r4, [r3]                                      <== NOT EXECUTED
                                                                      
int pthread_setcanceltype(                                            
  int  type,                                                          
  int *oldtype                                                        
)                                                                     
{                                                                     
3000983c:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
   *  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() )                                        
30009840:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
    return EPROTO;                                                    
30009844:	13a00047 	movne	r0, #71	; 0x47                              <== NOT EXECUTED
   *  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() )                                        
30009848:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
    return EPROTO;                                                    
                                                                      
  if ( !oldtype )                                                     
3000984c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    return EINVAL;                                                    
30009850:	03a00016 	moveq	r0, #22                                     <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( _ISR_Is_in_progress() )                                        
    return EPROTO;                                                    
                                                                      
  if ( !oldtype )                                                     
30009854:	08bd8010 	popeq	{r4, pc}                                    <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS )
30009858:	e3520001 	cmp	r2, #1                                        <== NOT EXECUTED
3000985c:	9a000001 	bls	30009868 <pthread_setcanceltype+0x38>         <== NOT EXECUTED
    return EINVAL;                                                    
30009860:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
}                                                                     
30009864:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
30009868:	e59f0030 	ldr	r0, [pc, #48]	; 300098a0 <pthread_setcanceltype+0x70><== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  if ( type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS )
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
3000986c:	e593c004 	ldr	ip, [r3, #4]                                  <== NOT EXECUTED
30009870:	e590e000 	ldr	lr, [r0]                                      <== NOT EXECUTED
30009874:	e59cc0fc 	ldr	ip, [ip, #252]	; 0xfc                         <== NOT EXECUTED
30009878:	e28ee001 	add	lr, lr, #1                                    <== NOT EXECUTED
3000987c:	e580e000 	str	lr, [r0]                                      <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldtype = thread_support->cancelability_type;                    
30009880:	e59ce0dc 	ldr	lr, [ip, #220]	; 0xdc                         <== NOT EXECUTED
    thread_support->cancelability_type = type;                        
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
30009884:	e5930004 	ldr	r0, [r3, #4]                                  <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
                                                                      
  _Thread_Disable_dispatch();                                         
    *oldtype = thread_support->cancelability_type;                    
30009888:	e581e000 	str	lr, [r1]                                      <== NOT EXECUTED
    thread_support->cancelability_type = type;                        
3000988c:	e58c20dc 	str	r2, [ip, #220]	; 0xdc                         <== NOT EXECUTED
                                                                      
    _POSIX_Thread_Evaluate_cancellation_and_enable_dispatch(_Thread_Executing);
30009890:	eb001622 	bl	3000f120 <_POSIX_Thread_Evaluate_cancellation_and_enable_dispatch><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  _Thread_Enable_dispatch is invoked by above call.               
   */                                                                 
  return 0;                                                           
30009894:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009898:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000cc8c <pthread_setschedparam>: int pthread_setschedparam( pthread_t thread, int policy, struct sched_param *param ) {
3000cc8c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  int                                  rc;                            
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
3000cc90:	e2524000 	subs	r4, r2, #0                                   <== NOT EXECUTED
int pthread_setschedparam(                                            
  pthread_t           thread,                                         
  int                 policy,                                         
  struct sched_param *param                                           
)                                                                     
{                                                                     
3000cc94:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
3000cc98:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
3000cc9c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
    return EINVAL;                                                    
3000cca0:	03a06016 	moveq	r6, #22                                     <== NOT EXECUTED
  int                                  rc;                            
                                                                      
  /*                                                                  
   *  Check all the parameters                                        
   */                                                                 
  if ( !param )                                                       
3000cca4:	0a000006 	beq	3000ccc4 <pthread_setschedparam+0x38>         <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  rc = _POSIX_Thread_Translate_sched_param(                           
3000cca8:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000ccac:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
3000ccb0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000ccb4:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
3000ccb8:	eb00182f 	bl	30012d7c <_POSIX_Thread_Translate_sched_param> <== NOT EXECUTED
    policy,                                                           
    param,                                                            
    &budget_algorithm,                                                
    &budget_callout                                                   
  );                                                                  
  if ( rc )                                                           
3000ccbc:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000ccc0:	0a000002 	beq	3000ccd0 <pthread_setschedparam+0x44>         <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
}                                                                     
3000ccc4:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000ccc8:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000cccc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
3000ccd0:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000ccd4:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000ccd8:	eb000b24 	bl	3000f970 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
3000ccdc:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    return rc;                                                        
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
3000cce0:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
3000cce4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return ESRCH;                                                       
3000cce8:	13a06003 	movne	r6, #3                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Actually change the scheduling policy and parameters            
   */                                                                 
  the_thread = _Thread_Get( thread, &location );                      
  switch ( location ) {                                               
3000ccec:	1afffff4 	bne	3000ccc4 <pthread_setschedparam+0x38>         <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
3000ccf0:	e59070fc 	ldr	r7, [r0, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
3000ccf4:	e5973084 	ldr	r3, [r7, #132]	; 0x84                         <== NOT EXECUTED
3000ccf8:	e3530004 	cmp	r3, #4                                        <== NOT EXECUTED
3000ccfc:	0a000025 	beq	3000cd98 <pthread_setschedparam+0x10c>        <== NOT EXECUTED
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
3000cd00:	e5875084 	str	r5, [r7, #132]	; 0x84                         <== NOT EXECUTED
      api->schedparam  = *param;                                      
3000cd04:	e287c088 	add	ip, r7, #136	; 0x88                           <== NOT EXECUTED
3000cd08:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         <== NOT EXECUTED
3000cd0c:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
      the_thread->budget_algorithm = budget_algorithm;                
3000cd10:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
3000cd14:	e8940007 	ldm	r4, {r0, r1, r2}                              <== NOT EXECUTED
3000cd18:	e88c0007 	stm	ip, {r0, r1, r2}                              <== NOT EXECUTED
      the_thread->budget_algorithm = budget_algorithm;                
3000cd1c:	e588307c 	str	r3, [r8, #124]	; 0x7c                         <== NOT EXECUTED
      the_thread->budget_callout   = budget_callout;                  
3000cd20:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
                                                                      
      switch ( api->schedpolicy ) {                                   
3000cd24:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
                                                                      
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
      the_thread->budget_algorithm = budget_algorithm;                
      the_thread->budget_callout   = budget_callout;                  
3000cd28:	e5883080 	str	r3, [r8, #128]	; 0x80                         <== NOT EXECUTED
                                                                      
      switch ( api->schedpolicy ) {                                   
3000cd2c:	ba00000c 	blt	3000cd64 <pthread_setschedparam+0xd8>         <== NOT EXECUTED
3000cd30:	e3550002 	cmp	r5, #2                                        <== NOT EXECUTED
3000cd34:	ca00000c 	bgt	3000cd6c <pthread_setschedparam+0xe0>         <== NOT EXECUTED
3000cd38:	e59f3064 	ldr	r3, [pc, #100]	; 3000cda4 <pthread_setschedparam+0x118><== NOT EXECUTED
3000cd3c:	e5972088 	ldr	r2, [r7, #136]	; 0x88                         <== NOT EXECUTED
3000cd40:	e5d31000 	ldrb	r1, [r3]                                     <== NOT EXECUTED
        case SCHED_OTHER:                                             
        case SCHED_FIFO:                                              
        case SCHED_RR:                                                
          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;  
3000cd44:	e59f305c 	ldr	r3, [pc, #92]	; 3000cda8 <pthread_setschedparam+0x11c><== NOT EXECUTED
3000cd48:	e0621001 	rsb	r1, r2, r1                                    <== NOT EXECUTED
3000cd4c:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
                                                                      
          the_thread->real_priority =                                 
3000cd50:	e5881018 	str	r1, [r8, #24]                                 <== NOT EXECUTED
                                                                      
      switch ( api->schedpolicy ) {                                   
        case SCHED_OTHER:                                             
        case SCHED_FIFO:                                              
        case SCHED_RR:                                                
          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;  
3000cd54:	e5883078 	str	r3, [r8, #120]	; 0x78                         <== NOT EXECUTED
                                                                      
          the_thread->real_priority =                                 
            _POSIX_Priority_To_core( api->schedparam.sched_priority );
                                                                      
          _Thread_Change_priority(                                    
3000cd58:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000cd5c:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000cd60:	eb0009db 	bl	3000f4d4 <_Thread_Change_priority>             <== NOT EXECUTED
          _Watchdog_Remove( &api->Sporadic_timer );                   
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
          break;                                                      
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
3000cd64:	eb000af8 	bl	3000f94c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000cd68:	eaffffd5 	b	3000ccc4 <pthread_setschedparam+0x38>           <== NOT EXECUTED
      api->schedpolicy = policy;                                      
      api->schedparam  = *param;                                      
      the_thread->budget_algorithm = budget_algorithm;                
      the_thread->budget_callout   = budget_callout;                  
                                                                      
      switch ( api->schedpolicy ) {                                   
3000cd6c:	e3550004 	cmp	r5, #4                                        <== NOT EXECUTED
3000cd70:	1afffffb 	bne	3000cd64 <pthread_setschedparam+0xd8>         <== NOT EXECUTED
             true                                                     
          );                                                          
          break;                                                      
                                                                      
        case SCHED_SPORADIC:                                          
          api->ss_high_priority = api->schedparam.sched_priority;     
3000cd74:	e5973088 	ldr	r3, [r7, #136]	; 0x88                         <== NOT EXECUTED
          _Watchdog_Remove( &api->Sporadic_timer );                   
3000cd78:	e28700a8 	add	r0, r7, #168	; 0xa8                           <== NOT EXECUTED
             true                                                     
          );                                                          
          break;                                                      
                                                                      
        case SCHED_SPORADIC:                                          
          api->ss_high_priority = api->schedparam.sched_priority;     
3000cd7c:	e58730a4 	str	r3, [r7, #164]	; 0xa4                         <== NOT EXECUTED
          _Watchdog_Remove( &api->Sporadic_timer );                   
3000cd80:	eb000f6e 	bl	30010b40 <_Watchdog_Remove>                    <== NOT EXECUTED
          _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread );        
3000cd84:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000cd88:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000cd8c:	ebffff72 	bl	3000cb5c <_POSIX_Threads_Sporadic_budget_TSR>  <== NOT EXECUTED
          break;                                                      
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
3000cd90:	eb000aed 	bl	3000f94c <_Thread_Enable_dispatch>             <== NOT EXECUTED
3000cd94:	eaffffca 	b	3000ccc4 <pthread_setschedparam+0x38>           <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_POSIX ];           
                                                                      
      if ( api->schedpolicy == SCHED_SPORADIC )                       
        (void) _Watchdog_Remove( &api->Sporadic_timer );              
3000cd98:	e28700a8 	add	r0, r7, #168	; 0xa8                           <== NOT EXECUTED
3000cd9c:	eb000f67 	bl	30010b40 <_Watchdog_Remove>                    <== NOT EXECUTED
3000cda0:	eaffffd6 	b	3000cd00 <pthread_setschedparam+0x74>           <== NOT EXECUTED
                                                                      

30009da0 <pthread_setspecific>: int pthread_setspecific( pthread_key_t key, const void *value ) {
30009da0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
30009da4:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
30009da8:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30009dac:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
30009db0:	e59f004c 	ldr	r0, [pc, #76]	; 30009e04 <pthread_setspecific+0x64><== NOT EXECUTED
30009db4:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
30009db8:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30009dbc:	eb000959 	bl	3000c328 <_Objects_Get>                        <== NOT EXECUTED
  uint32_t                     api;                                   
  uint32_t                     index;                                 
  Objects_Locations            location;                              
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
30009dc0:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
30009dc4:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
30009dc8:	13a00016 	movne	r0, #22                                     <== NOT EXECUTED
  uint32_t                     api;                                   
  uint32_t                     index;                                 
  Objects_Locations            location;                              
                                                                      
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
30009dcc:	1a00000a 	bne	30009dfc <pthread_setspecific+0x5c>           <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      api   = _Objects_Get_API( _Thread_Executing->Object.id );       
30009dd0:	e59f3030 	ldr	r3, [pc, #48]	; 30009e08 <pthread_setspecific+0x68><== NOT EXECUTED
30009dd4:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
30009dd8:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
30009ddc:	e1a02c23 	lsr	r2, r3, #24                                   <== NOT EXECUTED
30009de0:	e2022007 	and	r2, r2, #7                                    <== NOT EXECUTED
      index = _Objects_Get_index( _Thread_Executing->Object.id );     
      the_key->Values[ api ][ index ] = (void *) value;               
30009de4:	e2822005 	add	r2, r2, #5                                    <== NOT EXECUTED
30009de8:	e7902102 	ldr	r2, [r0, r2, lsl #2]                          <== NOT EXECUTED
  the_key = _POSIX_Keys_Get( key, &location );                        
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      api   = _Objects_Get_API( _Thread_Executing->Object.id );       
      index = _Objects_Get_index( _Thread_Executing->Object.id );     
30009dec:	e1a03803 	lsl	r3, r3, #16                                   <== NOT EXECUTED
      the_key->Values[ api ][ index ] = (void *) value;               
30009df0:	e7824723 	str	r4, [r2, r3, lsr #14]                         <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30009df4:	eb000c85 	bl	3000d010 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
30009df8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
}                                                                     
30009dfc:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009e00:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

300109f8 <pthread_sigmask>: sigset_t *oset ) { POSIX_API_Control *api; if ( !set && !oset )
300109f8:	e2713001 	rsbs	r3, r1, #1                                   <== NOT EXECUTED
300109fc:	33a03000 	movcc	r3, #0                                      <== NOT EXECUTED
30010a00:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30010a04:	03510000 	cmpeq	r1, #0                                      <== NOT EXECUTED
int pthread_sigmask(                                                  
  int               how,                                              
  const sigset_t   *set,                                              
  sigset_t         *oset                                              
)                                                                     
{                                                                     
30010a08:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
30010a0c:	0a00001e 	beq	30010a8c <pthread_sigmask+0x94>               <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
30010a10:	e59fc0a4 	ldr	ip, [pc, #164]	; 30010abc <pthread_sigmask+0xc4><== NOT EXECUTED
                                                                      
  if ( oset )                                                         
30010a14:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set && !oset )                                                
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
30010a18:	e59cc004 	ldr	ip, [ip, #4]                                  <== NOT EXECUTED
30010a1c:	e59cc0fc 	ldr	ip, [ip, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
  if ( oset )                                                         
    *oset = api->signals_blocked;                                     
30010a20:	159c40d0 	ldrne	r4, [ip, #208]	; 0xd0                       <== NOT EXECUTED
30010a24:	15824000 	strne	r4, [r2]                                    <== NOT EXECUTED
                                                                      
  if ( !set )                                                         
30010a28:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30010a2c:	1a000020 	bne	30010ab4 <pthread_sigmask+0xbc>               <== NOT EXECUTED
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
30010a30:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
30010a34:	0a000019 	beq	30010aa0 <pthread_sigmask+0xa8>               <== NOT EXECUTED
30010a38:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
30010a3c:	0a00000d 	beq	30010a78 <pthread_sigmask+0x80>               <== NOT EXECUTED
30010a40:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30010a44:	1a000010 	bne	30010a8c <pthread_sigmask+0x94>               <== NOT EXECUTED
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
      break;                                                          
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
30010a48:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
30010a4c:	e58c10d0 	str	r1, [ip, #208]	; 0xd0                         <== NOT EXECUTED
  /* XXX are there critical section problems here? */                 
                                                                      
  /* XXX evaluate the new set */                                      
                                                                      
  if ( ~api->signals_blocked &                                        
       (api->signals_pending | _POSIX_signals_Pending) ) {            
30010a50:	e59f2068 	ldr	r2, [pc, #104]	; 30010ac0 <pthread_sigmask+0xc8><== NOT EXECUTED
30010a54:	e59c30d4 	ldr	r3, [ip, #212]	; 0xd4                         <== NOT EXECUTED
30010a58:	e5920000 	ldr	r0, [r2]                                      <== NOT EXECUTED
                                                                      
  /* XXX are there critical section problems here? */                 
                                                                      
  /* XXX evaluate the new set */                                      
                                                                      
  if ( ~api->signals_blocked &                                        
30010a5c:	e1800003 	orr	r0, r0, r3                                    <== NOT EXECUTED
30010a60:	e1c00001 	bic	r0, r0, r1                                    <== NOT EXECUTED
30010a64:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30010a68:	08bd8010 	popeq	{r4, pc}                                    <== NOT EXECUTED
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
30010a6c:	ebfff17d 	bl	3000d068 <_Thread_Dispatch>                    <== NOT EXECUTED
  }                                                                   
                                                                      
  return 0;                                                           
30010a70:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30010a74:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
      break;                                                          
    case SIG_UNBLOCK:                                                 
      api->signals_blocked &= ~*set;                                  
30010a78:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
30010a7c:	e59c30d0 	ldr	r3, [ip, #208]	; 0xd0                         <== NOT EXECUTED
30010a80:	e1c31001 	bic	r1, r3, r1                                    <== NOT EXECUTED
30010a84:	e58c10d0 	str	r1, [ip, #208]	; 0xd0                         <== NOT EXECUTED
      break;                                                          
30010a88:	eafffff0 	b	30010a50 <pthread_sigmask+0x58>                 <== NOT EXECUTED
    case SIG_SETMASK:                                                 
      api->signals_blocked = *set;                                    
      break;                                                          
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
30010a8c:	eb000a37 	bl	30013370 <__errno>                             <== NOT EXECUTED
30010a90:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30010a94:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30010a98:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30010a9c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  if ( !set )                                                         
    return 0;                                                         
                                                                      
  switch ( how ) {                                                    
    case SIG_BLOCK:                                                   
      api->signals_blocked |= *set;                                   
30010aa0:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
30010aa4:	e59c30d0 	ldr	r3, [ip, #208]	; 0xd0                         <== NOT EXECUTED
30010aa8:	e1811003 	orr	r1, r1, r3                                    <== NOT EXECUTED
30010aac:	e58c10d0 	str	r1, [ip, #208]	; 0xd0                         <== NOT EXECUTED
      break;                                                          
30010ab0:	eaffffe6 	b	30010a50 <pthread_sigmask+0x58>                 <== NOT EXECUTED
                                                                      
  if ( oset )                                                         
    *oset = api->signals_blocked;                                     
                                                                      
  if ( !set )                                                         
    return 0;                                                         
30010ab4:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
       (api->signals_pending | _POSIX_signals_Pending) ) {            
    _Thread_Dispatch();                                               
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
30010ab8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

30009e7c <pthread_spin_destroy>: */ int pthread_spin_destroy( pthread_spinlock_t *spinlock ) {
30009e7c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  POSIX_Spinlock_Control *the_spinlock = NULL;                        
  Objects_Locations      location;                                    
                                                                      
  if ( !spinlock )                                                    
30009e80:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_spin_destroy(                                             
  pthread_spinlock_t *spinlock                                        
)                                                                     
{                                                                     
30009e84:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_Spinlock_Control *the_spinlock = NULL;                        
  Objects_Locations      location;                                    
                                                                      
  if ( !spinlock )                                                    
30009e88:	0a000007 	beq	30009eac <pthread_spin_destroy+0x30>          <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get (    
  pthread_spinlock_t *spinlock,                                       
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Spinlock_Control *) _Objects_Get(                     
30009e8c:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
30009e90:	e59f005c 	ldr	r0, [pc, #92]	; 30009ef4 <pthread_spin_destroy+0x78><== NOT EXECUTED
30009e94:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30009e98:	eb000882 	bl	3000c0a8 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
30009e9c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
30009ea0:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
30009ea4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009ea8:	0a000002 	beq	30009eb8 <pthread_spin_destroy+0x3c>          <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
30009eac:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
30009eb0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009eb4:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _CORE_spinlock_Is_busy(                     
  CORE_spinlock_Control  *the_spinlock                                
)                                                                     
{                                                                     
  return (the_spinlock->users != 0);                                  
30009eb8:	e5905018 	ldr	r5, [r0, #24]                                 <== NOT EXECUTED
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _CORE_spinlock_Is_busy( &the_spinlock->Spinlock ) ) {      
30009ebc:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
30009ec0:	0a000002 	beq	30009ed0 <pthread_spin_destroy+0x54>          <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
30009ec4:	eb000bb1 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return EBUSY;                                                 
30009ec8:	e3a00010 	mov	r0, #16                                       <== NOT EXECUTED
30009ecc:	eafffff7 	b	30009eb0 <pthread_spin_destroy+0x34>            <== NOT EXECUTED
      }                                                               
                                                                      
      _Objects_Close( &_POSIX_Spinlock_Information, &the_spinlock->Object );
30009ed0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
30009ed4:	e59f0018 	ldr	r0, [pc, #24]	; 30009ef4 <pthread_spin_destroy+0x78><== NOT EXECUTED
30009ed8:	eb000766 	bl	3000bc78 <_Objects_Close>                      <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free (                      
  POSIX_Spinlock_Control *the_spinlock                                
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Spinlock_Information, &the_spinlock->Object );
30009edc:	e59f0010 	ldr	r0, [pc, #16]	; 30009ef4 <pthread_spin_destroy+0x78><== NOT EXECUTED
30009ee0:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
30009ee4:	eb000818 	bl	3000bf4c <_Objects_Free>                       <== NOT EXECUTED
                                                                      
      _POSIX_Spinlock_Free( the_spinlock );                           
                                                                      
      _Thread_Enable_dispatch();                                      
30009ee8:	eb000ba8 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
30009eec:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30009ef0:	eaffffee 	b	30009eb0 <pthread_spin_destroy+0x34>            <== NOT EXECUTED
                                                                      

30009ef8 <pthread_spin_init>: int pthread_spin_init( pthread_spinlock_t *spinlock, int pshared ) {
30009ef8:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  POSIX_Spinlock_Control   *the_spinlock;                             
  CORE_spinlock_Attributes  attributes;                               
                                                                      
                                                                      
  if ( !spinlock )                                                    
30009efc:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
                                                                      
int pthread_spin_init(                                                
  pthread_spinlock_t  *spinlock,                                      
  int                  pshared                                        
)                                                                     
{                                                                     
30009f00:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30009f04:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  POSIX_Spinlock_Control   *the_spinlock;                             
  CORE_spinlock_Attributes  attributes;                               
                                                                      
                                                                      
  if ( !spinlock )                                                    
30009f08:	0a000018 	beq	30009f70 <pthread_spin_init+0x78>             <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  switch ( pshared ) {                                                
30009f0c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
30009f10:	1a000016 	bne	30009f70 <pthread_spin_init+0x78>             <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009f14:	e59f306c 	ldr	r3, [pc, #108]	; 30009f88 <pthread_spin_init+0x90><== NOT EXECUTED
30009f18:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30009f1c:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30009f20:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 *  the inactive chain of free spinlock control blocks.               
 */                                                                   
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Allocate( void )
{                                                                     
  return (POSIX_Spinlock_Control *)                                   
    _Objects_Allocate( &_POSIX_Spinlock_Information );                
30009f24:	e59f7060 	ldr	r7, [pc, #96]	; 30009f8c <pthread_spin_init+0x94><== NOT EXECUTED
30009f28:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
30009f2c:	eb00072c 	bl	3000bbe4 <_Objects_Allocate>                   <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_spinlock = _POSIX_Spinlock_Allocate();                          
                                                                      
  if ( !the_spinlock ) {                                              
30009f30:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
30009f34:	0a000010 	beq	30009f7c <pthread_spin_init+0x84>             <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _CORE_spinlock_Initialize_attributes(       
  CORE_spinlock_Attributes *the_attributes                            
)                                                                     
{                                                                     
  the_attributes->XXX = 0;                                            
30009f38:	e28d1004 	add	r1, sp, #4                                    <== NOT EXECUTED
    return EAGAIN;                                                    
  }                                                                   
                                                                      
  _CORE_spinlock_Initialize_attributes( &attributes );                
                                                                      
  _CORE_spinlock_Initialize( &the_spinlock->Spinlock, &attributes );  
30009f3c:	e2850010 	add	r0, r5, #16                                   <== NOT EXECUTED
30009f40:	e5214004 	str	r4, [r1, #-4]!                                <== NOT EXECUTED
30009f44:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
30009f48:	eb000566 	bl	3000b4e8 <_CORE_spinlock_Initialize>           <== NOT EXECUTED
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30009f4c:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009f50:	e597201c 	ldr	r2, [r7, #28]                                 <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30009f54:	e1a01803 	lsl	r1, r3, #16                                   <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009f58:	e7825721 	str	r5, [r2, r1, lsr #14]                         <== NOT EXECUTED
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
30009f5c:	e585400c 	str	r4, [r5, #12]                                 <== NOT EXECUTED
                                                                      
  _Objects_Open_u32( &_POSIX_Spinlock_Information, &the_spinlock->Object, 0 );
                                                                      
  *spinlock = the_spinlock->Object.id;                                
30009f60:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
30009f64:	eb000b89 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
30009f68:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009f6c:	ea000000 	b	30009f74 <pthread_spin_init+0x7c>               <== NOT EXECUTED
  switch ( pshared ) {                                                
    case PTHREAD_PROCESS_PRIVATE:    /* only supported values */      
      break;                                                          
    case PTHREAD_PROCESS_SHARED:                                      
    default:                                                          
      return EINVAL;                                                  
30009f70:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
                                                                      
  *spinlock = the_spinlock->Object.id;                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
30009f74:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009f78:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_spinlock = _POSIX_Spinlock_Allocate();                          
                                                                      
  if ( !the_spinlock ) {                                              
    _Thread_Enable_dispatch();                                        
30009f7c:	eb000b83 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return EAGAIN;                                                    
30009f80:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
30009f84:	eafffffa 	b	30009f74 <pthread_spin_init+0x7c>               <== NOT EXECUTED
                                                                      

30009f90 <pthread_spin_lock>: */ int pthread_spin_lock( pthread_spinlock_t *spinlock ) {
30009f90:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
30009f94:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_spin_lock(                                                
  pthread_spinlock_t *spinlock                                        
)                                                                     
{                                                                     
30009f98:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
30009f9c:	0a000006 	beq	30009fbc <pthread_spin_lock+0x2c>             <== NOT EXECUTED
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control *_POSIX_Spinlock_Get (    
  pthread_spinlock_t *spinlock,                                       
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Spinlock_Control *) _Objects_Get(                     
30009fa0:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30009fa4:	e59f003c 	ldr	r0, [pc, #60]	; 30009fe8 <pthread_spin_lock+0x58><== NOT EXECUTED
30009fa8:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
30009fac:	eb00083d 	bl	3000c0a8 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
30009fb0:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
30009fb4:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30009fb8:	0a000002 	beq	30009fc8 <pthread_spin_lock+0x38>             <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
30009fbc:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
30009fc0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009fc4:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, true, 0 );
30009fc8:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
30009fcc:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
30009fd0:	eb000567 	bl	3000b574 <_CORE_spinlock_Wait>                 <== NOT EXECUTED
30009fd4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30009fd8:	eb000b6c 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_Spinlock_Translate_core_spinlock_return_code( status );
30009fdc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009fe0:	eb000001 	bl	30009fec <_POSIX_Spinlock_Translate_core_spinlock_return_code><== NOT EXECUTED
30009fe4:	eafffff5 	b	30009fc0 <pthread_spin_lock+0x30>               <== NOT EXECUTED
                                                                      

30009ffc <pthread_spin_trylock>: */ int pthread_spin_trylock( pthread_spinlock_t *spinlock ) {
30009ffc:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
3000a000:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_spin_trylock(                                             
  pthread_spinlock_t *spinlock                                        
)                                                                     
{                                                                     
3000a004:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
3000a008:	0a000006 	beq	3000a028 <pthread_spin_trylock+0x2c>          <== NOT EXECUTED
3000a00c:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000a010:	e59f003c 	ldr	r0, [pc, #60]	; 3000a054 <pthread_spin_trylock+0x58><== NOT EXECUTED
3000a014:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a018:	eb000822 	bl	3000c0a8 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
3000a01c:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
3000a020:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000a024:	0a000002 	beq	3000a034 <pthread_spin_trylock+0x38>          <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000a028:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000a02c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a030:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_spinlock_Wait( &the_spinlock->Spinlock, false, 0 );
3000a034:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000a038:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000a03c:	eb00054c 	bl	3000b574 <_CORE_spinlock_Wait>                 <== NOT EXECUTED
3000a040:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000a044:	eb000b51 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_Spinlock_Translate_core_spinlock_return_code( status );
3000a048:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a04c:	ebffffe6 	bl	30009fec <_POSIX_Spinlock_Translate_core_spinlock_return_code><== NOT EXECUTED
3000a050:	eafffff5 	b	3000a02c <pthread_spin_trylock+0x30>            <== NOT EXECUTED
                                                                      

3000a058 <pthread_spin_unlock>: */ int pthread_spin_unlock( pthread_spinlock_t *spinlock ) {
3000a058:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
3000a05c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
 */                                                                   
                                                                      
int pthread_spin_unlock(                                              
  pthread_spinlock_t *spinlock                                        
)                                                                     
{                                                                     
3000a060:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  POSIX_Spinlock_Control  *the_spinlock = NULL;                       
  Objects_Locations        location;                                  
  CORE_spinlock_Status     status;                                    
                                                                      
  if ( !spinlock )                                                    
3000a064:	0a000006 	beq	3000a084 <pthread_spin_unlock+0x2c>           <== NOT EXECUTED
3000a068:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000a06c:	e59f0038 	ldr	r0, [pc, #56]	; 3000a0ac <pthread_spin_unlock+0x54><== NOT EXECUTED
3000a070:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a074:	eb00080b 	bl	3000c0a8 <_Objects_Get>                        <== NOT EXECUTED
    return EINVAL;                                                    
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
3000a078:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000a07c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a080:	0a000002 	beq	3000a090 <pthread_spin_unlock+0x38>           <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return EINVAL;                                                      
3000a084:	e3a00016 	mov	r0, #22                                       <== NOT EXECUTED
}                                                                     
3000a088:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a08c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_spinlock = _POSIX_Spinlock_Get( spinlock, &location );          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status = _CORE_spinlock_Release( &the_spinlock->Spinlock );     
3000a090:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
3000a094:	eb00051a 	bl	3000b504 <_CORE_spinlock_Release>              <== NOT EXECUTED
3000a098:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000a09c:	eb000b3b 	bl	3000cd90 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return _POSIX_Spinlock_Translate_core_spinlock_return_code( status );
3000a0a0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a0a4:	ebffffd0 	bl	30009fec <_POSIX_Spinlock_Translate_core_spinlock_return_code><== NOT EXECUTED
3000a0a8:	eafffff6 	b	3000a088 <pthread_spin_unlock+0x30>             <== NOT EXECUTED
                                                                      

3000a188 <pthread_testcancel>: * * 18.2.2 Setting Cancelability State, P1003.1c/Draft 10, p. 183 */ void pthread_testcancel( void ) {
3000a188:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
   *  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() )                                        
3000a18c:	e59f4054 	ldr	r4, [pc, #84]	; 3000a1e8 <pthread_testcancel+0x60><== NOT EXECUTED
3000a190:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
3000a194:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a198:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
3000a19c:	e59f3048 	ldr	r3, [pc, #72]	; 3000a1ec <pthread_testcancel+0x64><== NOT EXECUTED
    return;                                                           
                                                                      
  thread_support = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];
3000a1a0:	e5942004 	ldr	r2, [r4, #4]                                  <== NOT EXECUTED
3000a1a4:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000a1a8:	e59220fc 	ldr	r2, [r2, #252]	; 0xfc                         <== NOT EXECUTED
3000a1ac:	e2811001 	add	r1, r1, #1                                    <== NOT EXECUTED
3000a1b0:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
3000a1b4:	e59230d8 	ldr	r3, [r2, #216]	; 0xd8                         <== NOT EXECUTED
3000a1b8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a1bc:	1a000007 	bne	3000a1e0 <pthread_testcancel+0x58>            <== NOT EXECUTED
3000a1c0:	e59230e0 	ldr	r3, [r2, #224]	; 0xe0                         <== NOT EXECUTED
3000a1c4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a1c8:	0a000004 	beq	3000a1e0 <pthread_testcancel+0x58>            <== NOT EXECUTED
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
3000a1cc:	eb000abe 	bl	3000cccc <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  if ( cancel )                                                       
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
3000a1d0:	e5940004 	ldr	r0, [r4, #4]                                  <== NOT EXECUTED
3000a1d4:	e3e01000 	mvn	r1, #0                                        <== NOT EXECUTED
}                                                                     
3000a1d8:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( cancel )                                                       
    _POSIX_Thread_Exit( _Thread_Executing, PTHREAD_CANCELED );        
3000a1dc:	ea001800 	b	300101e4 <_POSIX_Thread_Exit>                   <== NOT EXECUTED
}                                                                     
3000a1e0:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    if ( thread_support->cancelability_state == PTHREAD_CANCEL_ENABLE &&
         thread_support->cancelation_requested )                      
      cancel = true;                                                  
  _Thread_Enable_dispatch();                                          
3000a1e4:	ea000ab8 	b	3000cccc <_Thread_Enable_dispatch>              <== NOT EXECUTED
                                                                      

3000ae40 <rtems_aio_enqueue>: * errno - otherwise */ int rtems_aio_enqueue (rtems_aio_request *req) {
3000ae40:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  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);             
3000ae44:	e59f41c4 	ldr	r4, [pc, #452]	; 3000b010 <rtems_aio_enqueue+0x1d0><== NOT EXECUTED
 *         errno     - otherwise                                      
 */                                                                   
                                                                      
int                                                                   
rtems_aio_enqueue (rtems_aio_request *req)                            
{                                                                     
3000ae48:	e24dd024 	sub	sp, sp, #36	; 0x24                            <== NOT EXECUTED
3000ae4c:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  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);             
3000ae50:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ae54:	eb000255 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
  if (result != 0) {                                                  
3000ae58:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000ae5c:	1a00002a 	bne	3000af0c <rtems_aio_enqueue+0xcc>             <== NOT EXECUTED
    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);            
3000ae60:	eb000481 	bl	3000c06c <pthread_self>                        <== NOT EXECUTED
3000ae64:	e28d101c 	add	r1, sp, #28                                   <== NOT EXECUTED
3000ae68:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000ae6c:	eb00037e 	bl	3000bc6c <pthread_getschedparam>               <== NOT EXECUTED
                                                                      
  req->caller_thread = pthread_self ();                               
3000ae70:	eb00047d 	bl	3000c06c <pthread_self>                        <== NOT EXECUTED
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
3000ae74:	e5963014 	ldr	r3, [r6, #20]                                 <== NOT EXECUTED
3000ae78:	e59dc000 	ldr	ip, [sp]                                      <== NOT EXECUTED
3000ae7c:	e5932014 	ldr	r2, [r3, #20]                                 <== NOT EXECUTED
  req->policy = policy;                                               
  req->aiocbp->error_code = EINPROGRESS;                              
  req->aiocbp->return_value = 0;                                      
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
3000ae80:	e5941068 	ldr	r1, [r4, #104]	; 0x68                         <== NOT EXECUTED
  /* _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);            
                                                                      
  req->caller_thread = pthread_self ();                               
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
3000ae84:	e062200c 	rsb	r2, r2, ip                                    <== NOT EXECUTED
3000ae88:	e586200c 	str	r2, [r6, #12]                                 <== NOT EXECUTED
  req->policy = policy;                                               
3000ae8c:	e59d201c 	ldr	r2, [sp, #28]                                 <== NOT EXECUTED
  req->aiocbp->error_code = EINPROGRESS;                              
  req->aiocbp->return_value = 0;                                      
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
3000ae90:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
     we can use aio_reqprio to lower the priority of the request */   
  pthread_getschedparam (pthread_self(), &policy, ¶m);            
                                                                      
  req->caller_thread = pthread_self ();                               
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
  req->policy = policy;                                               
3000ae94:	e5862008 	str	r2, [r6, #8]                                  <== NOT EXECUTED
  req->aiocbp->error_code = EINPROGRESS;                              
3000ae98:	e3a02077 	mov	r2, #119	; 0x77                               <== NOT EXECUTED
                                                                      
  /* _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);            
                                                                      
  req->caller_thread = pthread_self ();                               
3000ae9c:	e5860010 	str	r0, [r6, #16]                                 <== NOT EXECUTED
  req->priority = param.sched_priority - req->aiocbp->aio_reqprio;    
  req->policy = policy;                                               
  req->aiocbp->error_code = EINPROGRESS;                              
3000aea0:	e5832030 	str	r2, [r3, #48]	; 0x30                          <== NOT EXECUTED
  req->aiocbp->return_value = 0;                                      
3000aea4:	e5835034 	str	r5, [r3, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
  if ((aio_request_queue.idle_threads == 0) &&                        
3000aea8:	1a000002 	bne	3000aeb8 <rtems_aio_enqueue+0x78>             <== NOT EXECUTED
3000aeac:	e5942064 	ldr	r2, [r4, #100]	; 0x64                         <== NOT EXECUTED
3000aeb0:	e3520004 	cmp	r2, #4                                        <== NOT EXECUTED
3000aeb4:	da000017 	ble	3000af18 <rtems_aio_enqueue+0xd8>             <== NOT EXECUTED
  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,     
3000aeb8:	e59f0154 	ldr	r0, [pc, #340]	; 3000b014 <rtems_aio_enqueue+0x1d4><== NOT EXECUTED
3000aebc:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000aec0:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000aec4:	ebfffeac 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
				     req->aiocbp->aio_fildes, 0);                                 
      if (r_chain != NULL)                                            
3000aec8:	e2507000 	subs	r7, r0, #0                                   <== NOT EXECUTED
3000aecc:	0a00002e 	beq	3000af8c <rtems_aio_enqueue+0x14c>            <== NOT EXECUTED
	{                                                                    
	  pthread_mutex_lock (&r_chain->mutex);                              
3000aed0:	e287401c 	add	r4, r7, #28                                   <== NOT EXECUTED
3000aed4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aed8:	eb000234 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
	  rtems_aio_insert_prio (&r_chain->perfd, req);                      
3000aedc:	e2870008 	add	r0, r7, #8                                    <== NOT EXECUTED
3000aee0:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000aee4:	ebffff8c 	bl	3000ad1c <rtems_aio_insert_prio>               <== NOT EXECUTED
	  pthread_cond_signal (&r_chain->cond);                              
3000aee8:	e2870020 	add	r0, r7, #32                                   <== NOT EXECUTED
3000aeec:	eb000119 	bl	3000b358 <pthread_cond_signal>                 <== NOT EXECUTED
	  pthread_mutex_unlock (&r_chain->mutex);                            
3000aef0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aef4:	eb00024e 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
	if (aio_request_queue.idle_threads > 0)                              
	  pthread_cond_signal (&aio_request_queue.new_req);                  
      }                                                               
    }                                                                 
                                                                      
  pthread_mutex_unlock (&aio_request_queue.mutex);                    
3000aef8:	e59f0110 	ldr	r0, [pc, #272]	; 3000b010 <rtems_aio_enqueue+0x1d0><== NOT EXECUTED
3000aefc:	eb00024c 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000af00:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000af04:	e28dd024 	add	sp, sp, #36	; 0x24                            <== NOT EXECUTED
3000af08:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
  /* 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);                                                       
3000af0c:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000af10:	ebfff0ac 	bl	300071c8 <free>                                <== NOT EXECUTED
    return result;                                                    
3000af14:	eafffff9 	b	3000af00 <rtems_aio_enqueue+0xc0>               <== 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);
3000af18:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000af1c:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
3000af20:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000af24:	ebfffe94 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
                                                                      
      if (r_chain->new_fd == 1) {                                     
3000af28:	e5903018 	ldr	r3, [r0, #24]                                 <== 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);
3000af2c:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
                                                                      
      if (r_chain->new_fd == 1) {                                     
3000af30:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000af34:	1affffe5 	bne	3000aed0 <rtems_aio_enqueue+0x90>             <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Chain_Prepend(                             
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert(_Chain_Head(the_chain), the_node);                    
3000af38:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000af3c:	e2800008 	add	r0, r0, #8                                    <== NOT EXECUTED
3000af40:	eb000897 	bl	3000d1a4 <_Chain_Insert>                       <== NOT EXECUTED
	rtems_chain_prepend (&r_chain->perfd, &req->next_prio);              
	r_chain->new_fd = 0;                                                 
	pthread_mutex_init (&r_chain->mutex, NULL);                          
3000af44:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
      chain = &aio_request_queue.work_req;                            
      r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);
                                                                      
      if (r_chain->new_fd == 1) {                                     
	rtems_chain_prepend (&r_chain->perfd, &req->next_prio);              
	r_chain->new_fd = 0;                                                 
3000af48:	e5875018 	str	r5, [r7, #24]                                 <== NOT EXECUTED
	pthread_mutex_init (&r_chain->mutex, NULL);                          
3000af4c:	e287001c 	add	r0, r7, #28                                   <== NOT EXECUTED
3000af50:	eb0001c3 	bl	3000b664 <pthread_mutex_init>                  <== NOT EXECUTED
	pthread_cond_init (&r_chain->cond, NULL);                            
3000af54:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000af58:	e2870020 	add	r0, r7, #32                                   <== NOT EXECUTED
3000af5c:	eb0000cd 	bl	3000b298 <pthread_cond_init>                   <== NOT EXECUTED
	                                                                     
	AIO_printf ("New thread \n");                                        
	result = pthread_create (&thid, &aio_request_queue.attr,             
3000af60:	e28d0020 	add	r0, sp, #32                                   <== NOT EXECUTED
3000af64:	e2841008 	add	r1, r4, #8                                    <== NOT EXECUTED
3000af68:	e59f20a8 	ldr	r2, [pc, #168]	; 3000b018 <rtems_aio_enqueue+0x1d8><== NOT EXECUTED
3000af6c:	e1a03007 	mov	r3, r7                                        <== NOT EXECUTED
3000af70:	eb000295 	bl	3000b9cc <pthread_create>                      <== NOT EXECUTED
				 rtems_aio_handle, (void *) r_chain);                             
	if (result != 0) {                                                   
3000af74:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000af78:	1a000020 	bne	3000b000 <rtems_aio_enqueue+0x1c0>            <== NOT EXECUTED
	  pthread_mutex_unlock (&aio_request_queue.mutex);                   
	  return result;                                                     
	}                                                                    
	++aio_request_queue.active_threads;                                  
3000af7c:	e5943064 	ldr	r3, [r4, #100]	; 0x64                         <== NOT EXECUTED
3000af80:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000af84:	e5843064 	str	r3, [r4, #100]	; 0x64                         <== NOT EXECUTED
3000af88:	eaffffda 	b	3000aef8 <rtems_aio_enqueue+0xb8>               <== NOT EXECUTED
	                                                                     
	} else {                                                             
                                                                      
	/* or to the idle chain */                                           
	chain = &aio_request_queue.idle_req;                                 
	r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);   
3000af8c:	e5963014 	ldr	r3, [r6, #20]                                 <== NOT EXECUTED
3000af90:	e59f0084 	ldr	r0, [pc, #132]	; 3000b01c <rtems_aio_enqueue+0x1dc><== NOT EXECUTED
3000af94:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
3000af98:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000af9c:	ebfffe76 	bl	3000a97c <rtems_aio_search_fd>                 <== NOT EXECUTED
                                                                      
	if (r_chain->new_fd == 1) {                                          
3000afa0:	e5903018 	ldr	r3, [r0, #24]                                 <== NOT EXECUTED
	                                                                     
	} else {                                                             
                                                                      
	/* or to the idle chain */                                           
	chain = &aio_request_queue.idle_req;                                 
	r_chain = rtems_aio_search_fd (chain, req->aiocbp->aio_fildes, 1);   
3000afa4:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
                                                                      
	if (r_chain->new_fd == 1) {                                          
3000afa8:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000afac:	0a000008 	beq	3000afd4 <rtems_aio_enqueue+0x194>            <== NOT EXECUTED
	  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);                      
3000afb0:	e2800008 	add	r0, r0, #8                                    <== NOT EXECUTED
3000afb4:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000afb8:	ebffff57 	bl	3000ad1c <rtems_aio_insert_prio>               <== NOT EXECUTED
	if (aio_request_queue.idle_threads > 0)                              
3000afbc:	e5943068 	ldr	r3, [r4, #104]	; 0x68                         <== NOT EXECUTED
3000afc0:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000afc4:	daffffcb 	ble	3000aef8 <rtems_aio_enqueue+0xb8>             <== NOT EXECUTED
	  pthread_cond_signal (&aio_request_queue.new_req);                  
3000afc8:	e59f0050 	ldr	r0, [pc, #80]	; 3000b020 <rtems_aio_enqueue+0x1e0><== NOT EXECUTED
3000afcc:	eb0000e1 	bl	3000b358 <pthread_cond_signal>                 <== NOT EXECUTED
3000afd0:	eaffffc8 	b	3000aef8 <rtems_aio_enqueue+0xb8>               <== NOT EXECUTED
3000afd4:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3000afd8:	e2800008 	add	r0, r0, #8                                    <== NOT EXECUTED
3000afdc:	eb000870 	bl	3000d1a4 <_Chain_Insert>                       <== NOT EXECUTED
	  /* 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;                                               
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
3000afe0:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
	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;                                               
3000afe4:	e5887018 	str	r7, [r8, #24]                                 <== NOT EXECUTED
	  pthread_mutex_init (&r_chain->mutex, NULL);                        
3000afe8:	e288001c 	add	r0, r8, #28                                   <== NOT EXECUTED
3000afec:	eb00019c 	bl	3000b664 <pthread_mutex_init>                  <== NOT EXECUTED
	  pthread_cond_init (&r_chain->cond, NULL);                          
3000aff0:	e2880020 	add	r0, r8, #32                                   <== NOT EXECUTED
3000aff4:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000aff8:	eb0000a6 	bl	3000b298 <pthread_cond_init>                   <== NOT EXECUTED
3000affc:	eaffffee 	b	3000afbc <rtems_aio_enqueue+0x17c>              <== NOT EXECUTED
	                                                                     
	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);                   
3000b000:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b004:	eb00020a 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
	  return result;                                                     
3000b008:	e1a05006 	mov	r5, r6                                        <== NOT EXECUTED
3000b00c:	eaffffbb 	b	3000af00 <rtems_aio_enqueue+0xc0>               <== NOT EXECUTED
                                                                      

3000aab0 <rtems_aio_handle>: * NULL - if error */ static void * rtems_aio_handle (void *arg) {
3000aab0:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
3000aab4:	e24dd02c 	sub	sp, sp, #44	; 0x2c                            <== NOT EXECUTED
3000aab8:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000aabc:	e280601c 	add	r6, r0, #28                                   <== NOT EXECUTED
      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);        
3000aac0:	e28d8028 	add	r8, sp, #40	; 0x28                            <== NOT EXECUTED
3000aac4:	e28d7004 	add	r7, sp, #4                                    <== NOT EXECUTED
      if (result == -1) {                                             
        req->aiocbp->return_value = -1;                               
	req->aiocbp->error_code = errno;                                     
      } else {                                                        
        req->aiocbp->return_value = result;                           
        req->aiocbp->error_code = 0;                                  
3000aac8:	e3a09000 	mov	r9, #0                                        <== NOT EXECUTED
    /* 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);                    
3000aacc:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000aad0:	eb000336 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
    if (result != 0)                                                  
3000aad4:	e250a000 	subs	sl, r0, #0                                   <== NOT EXECUTED
3000aad8:	1a000022 	bne	3000ab68 <rtems_aio_handle+0xb8>              <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aadc:	e5954008 	ldr	r4, [r5, #8]                                  <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3000aae0:	e285300c 	add	r3, r5, #12                                   <== NOT EXECUTED
                                                                      
    /* 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)) {                              
3000aae4:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000aae8:	0a000039 	beq	3000abd4 <rtems_aio_handle+0x124>             <== NOT EXECUTED
      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);        
3000aaec:	eb00055e 	bl	3000c06c <pthread_self>                        <== NOT EXECUTED
3000aaf0:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
3000aaf4:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000aaf8:	eb00045b 	bl	3000bc6c <pthread_getschedparam>               <== NOT EXECUTED
      param.sched_priority = req->priority;                           
3000aafc:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
3000ab00:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
      pthread_setschedparam (pthread_self(), req->policy, ¶m);    
3000ab04:	eb000558 	bl	3000c06c <pthread_self>                        <== NOT EXECUTED
3000ab08:	e5941008 	ldr	r1, [r4, #8]                                  <== NOT EXECUTED
3000ab0c:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000ab10:	eb00055a 	bl	3000c080 <pthread_setschedparam>               <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
3000ab14:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ab18:	eb00098c 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
                                                                      
      rtems_chain_extract (node);                                     
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
3000ab1c:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000ab20:	eb000343 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
                                                                      
      switch (req->aiocbp->aio_lio_opcode) {                          
3000ab24:	e594a014 	ldr	sl, [r4, #20]                                 <== NOT EXECUTED
3000ab28:	e59a302c 	ldr	r3, [sl, #44]	; 0x2c                          <== NOT EXECUTED
3000ab2c:	e3530002 	cmp	r3, #2                                        <== NOT EXECUTED
3000ab30:	0a00001f 	beq	3000abb4 <rtems_aio_handle+0x104>             <== NOT EXECUTED
3000ab34:	e3530003 	cmp	r3, #3                                        <== NOT EXECUTED
3000ab38:	0a00001a 	beq	3000aba8 <rtems_aio_handle+0xf8>              <== NOT EXECUTED
3000ab3c:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
3000ab40:	0a00000b 	beq	3000ab74 <rtems_aio_handle+0xc4>              <== NOT EXECUTED
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
        req->aiocbp->return_value = -1;                               
3000ab44:	e3e01000 	mvn	r1, #0                                        <== NOT EXECUTED
3000ab48:	e58a1034 	str	r1, [sl, #52]	; 0x34                          <== NOT EXECUTED
	req->aiocbp->error_code = errno;                                     
3000ab4c:	eb00286b 	bl	30014d00 <__errno>                             <== NOT EXECUTED
3000ab50:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
    /* 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);                    
3000ab54:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
        req->aiocbp->return_value = -1;                               
	req->aiocbp->error_code = errno;                                     
3000ab58:	e58a3030 	str	r3, [sl, #48]	; 0x30                          <== NOT EXECUTED
    /* 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);                    
3000ab5c:	eb000313 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
    if (result != 0)                                                  
3000ab60:	e250a000 	subs	sl, r0, #0                                   <== NOT EXECUTED
3000ab64:	0affffdc 	beq	3000aadc <rtems_aio_handle+0x2c>              <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ab68:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000ab6c:	e28dd02c 	add	sp, sp, #44	; 0x2c                            <== NOT EXECUTED
3000ab70:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
      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,                      
3000ab74:	e59ac008 	ldr	ip, [sl, #8]                                  <== NOT EXECUTED
3000ab78:	e59a0000 	ldr	r0, [sl]                                      <== NOT EXECUTED
3000ab7c:	e59a100c 	ldr	r1, [sl, #12]                                 <== NOT EXECUTED
3000ab80:	e59a2010 	ldr	r2, [sl, #16]                                 <== NOT EXECUTED
3000ab84:	e59a3004 	ldr	r3, [sl, #4]                                  <== NOT EXECUTED
3000ab88:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000ab8c:	eb002b5f 	bl	30015910 <pread>                               <== NOT EXECUTED
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
3000ab90:	e3700001 	cmn	r0, #1                                        <== NOT EXECUTED
3000ab94:	0a000056 	beq	3000acf4 <rtems_aio_handle+0x244>             <== NOT EXECUTED
        req->aiocbp->return_value = -1;                               
	req->aiocbp->error_code = errno;                                     
      } else {                                                        
        req->aiocbp->return_value = result;                           
3000ab98:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000ab9c:	e5830034 	str	r0, [r3, #52]	; 0x34                          <== NOT EXECUTED
        req->aiocbp->error_code = 0;                                  
3000aba0:	e5839030 	str	r9, [r3, #48]	; 0x30                          <== NOT EXECUTED
3000aba4:	eaffffc8 	b	3000aacc <rtems_aio_handle+0x1c>                <== NOT EXECUTED
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_SYNC:                                                  
	AIO_printf ("sync\n");                                               
      	result = fsync (req->aiocbp->aio_fildes);                      
3000aba8:	e59a0000 	ldr	r0, [sl]                                      <== NOT EXECUTED
3000abac:	eb001b03 	bl	300117c0 <fsync>                               <== NOT EXECUTED
      	break;                                                         
3000abb0:	eafffff6 	b	3000ab90 <rtems_aio_handle+0xe0>                <== NOT EXECUTED
                        req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
                                                                      
      case LIO_WRITE:                                                 
	AIO_printf ("write\n");                                              
        result = pwrite (req->aiocbp->aio_fildes,                     
3000abb4:	e59ac008 	ldr	ip, [sl, #8]                                  <== NOT EXECUTED
3000abb8:	e59a0000 	ldr	r0, [sl]                                      <== NOT EXECUTED
3000abbc:	e59a100c 	ldr	r1, [sl, #12]                                 <== NOT EXECUTED
3000abc0:	e59a2010 	ldr	r2, [sl, #16]                                 <== NOT EXECUTED
3000abc4:	e59a3004 	ldr	r3, [sl, #4]                                  <== NOT EXECUTED
3000abc8:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000abcc:	eb002b99 	bl	30015a38 <pwrite>                              <== NOT EXECUTED
                         (void *) req->aiocbp->aio_buf,               
                         req->aiocbp->aio_nbytes, req->aiocbp->aio_offset);
        break;                                                        
3000abd0:	eaffffee 	b	3000ab90 <rtems_aio_handle+0xe0>                <== NOT EXECUTED
      struct timespec timeout;                                        
                                                                      
      AIO_printf ("Chain is empty [WQ], wait for work\n");            
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
3000abd4:	e59fb138 	ldr	fp, [pc, #312]	; 3000ad14 <rtems_aio_handle+0x264><== NOT EXECUTED
                                                                      
      struct timespec timeout;                                        
                                                                      
      AIO_printf ("Chain is empty [WQ], wait for work\n");            
                                                                      
      pthread_mutex_unlock (&r_chain->mutex);                         
3000abd8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000abdc:	eb000314 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
      pthread_mutex_lock (&aio_request_queue.mutex);                  
3000abe0:	e1a0000b 	mov	r0, fp                                        <== NOT EXECUTED
3000abe4:	eb0002f1 	bl	3000b7b0 <pthread_mutex_lock>                  <== NOT EXECUTED
                                                                      
      if (rtems_chain_is_empty (chain))                               
3000abe8:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
3000abec:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000abf0:	0a000002 	beq	3000ac00 <rtems_aio_handle+0x150>             <== NOT EXECUTED
	                                                                     
	  }                                                                  
	}                                                                    
      /* 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);                
3000abf4:	e59f0118 	ldr	r0, [pc, #280]	; 3000ad14 <rtems_aio_handle+0x264><== NOT EXECUTED
3000abf8:	eb00030d 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
3000abfc:	eaffffb2 	b	3000aacc <rtems_aio_handle+0x1c>                <== NOT EXECUTED
      pthread_mutex_unlock (&r_chain->mutex);                         
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
3000ac00:	e28d1020 	add	r1, sp, #32                                   <== NOT EXECUTED
3000ac04:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000ac08:	eb00014d 	bl	3000b144 <clock_gettime>                       <== NOT EXECUTED
	  timeout.tv_sec += 3;                                               
3000ac0c:	e59d3020 	ldr	r3, [sp, #32]                                 <== NOT EXECUTED
	  timeout.tv_nsec = 0;                                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
3000ac10:	e2854020 	add	r4, r5, #32                                   <== NOT EXECUTED
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
	  timeout.tv_sec += 3;                                               
3000ac14:	e2833003 	add	r3, r3, #3                                    <== NOT EXECUTED
	  timeout.tv_nsec = 0;                                               
	  result = pthread_cond_timedwait (&r_chain->cond,                   
3000ac18:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ac1c:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
3000ac20:	e28d2020 	add	r2, sp, #32                                   <== NOT EXECUTED
      pthread_mutex_lock (&aio_request_queue.mutex);                  
                                                                      
      if (rtems_chain_is_empty (chain))                               
	{                                                                    
	  clock_gettime (CLOCK_REALTIME, &timeout);                          
	  timeout.tv_sec += 3;                                               
3000ac24:	e58d3020 	str	r3, [sp, #32]                                 <== NOT EXECUTED
	  timeout.tv_nsec = 0;                                               
3000ac28:	e58da024 	str	sl, [sp, #36]	; 0x24                          <== NOT EXECUTED
	  result = pthread_cond_timedwait (&r_chain->cond,                   
3000ac2c:	eb0001e3 	bl	3000b3c0 <pthread_cond_timedwait>              <== NOT EXECUTED
					   &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) {                                         
3000ac30:	e3500074 	cmp	r0, #116	; 0x74                               <== NOT EXECUTED
3000ac34:	1affffee 	bne	3000abf4 <rtems_aio_handle+0x144>             <== NOT EXECUTED
3000ac38:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000ac3c:	eb000943 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
	    rtems_chain_extract (&r_chain->next_fd);                         
	    pthread_mutex_destroy (&r_chain->mutex);                         
3000ac40:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000ac44:	eb000236 	bl	3000b524 <pthread_mutex_destroy>               <== NOT EXECUTED
	    pthread_cond_destroy (&r_chain->cond);                           
3000ac48:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ac4c:	eb00015e 	bl	3000b1cc <pthread_cond_destroy>                <== NOT EXECUTED
	    free (r_chain);                                                  
3000ac50:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000ac54:	ebfff15b 	bl	300071c8 <free>                                <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ac58:	e59b5054 	ldr	r5, [fp, #84]	; 0x54                          <== NOT EXECUTED
	    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)) {        
3000ac5c:	e59f20b4 	ldr	r2, [pc, #180]	; 3000ad18 <rtems_aio_handle+0x268><== NOT EXECUTED
3000ac60:	e1550002 	cmp	r5, r2                                        <== NOT EXECUTED
3000ac64:	0a00000d 	beq	3000aca0 <rtems_aio_handle+0x1f0>             <== NOT EXECUTED
	      }                                                              
	    }                                                                
	    /* 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;                                
3000ac68:	e59f30a4 	ldr	r3, [pc, #164]	; 3000ad14 <rtems_aio_handle+0x264><== NOT EXECUTED
3000ac6c:	e59fc0a0 	ldr	ip, [pc, #160]	; 3000ad14 <rtems_aio_handle+0x264><== NOT EXECUTED
3000ac70:	e5932068 	ldr	r2, [r3, #104]	; 0x68                         <== NOT EXECUTED
	    ++aio_request_queue.active_threads;                              
3000ac74:	e5933064 	ldr	r3, [r3, #100]	; 0x64                         <== NOT EXECUTED
	      }                                                              
	    }                                                                
	    /* 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;                                
3000ac78:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
	    ++aio_request_queue.active_threads;                              
3000ac7c:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000ac80:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
	      }                                                              
	    }                                                                
	    /* 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;                                
3000ac84:	e58c2068 	str	r2, [ip, #104]	; 0x68                         <== NOT EXECUTED
	    ++aio_request_queue.active_threads;                              
3000ac88:	e58c3064 	str	r3, [ip, #100]	; 0x64                         <== NOT EXECUTED
3000ac8c:	eb00092f 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
                                                                      
	    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);                                
3000ac90:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000ac94:	ebffff6b 	bl	3000aa48 <rtems_aio_move_to_work>              <== NOT EXECUTED
3000ac98:	e285601c 	add	r6, r5, #28                                   <== NOT EXECUTED
3000ac9c:	eaffffd4 	b	3000abf4 <rtems_aio_handle+0x144>               <== NOT EXECUTED
	    /* 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;                              
3000aca0:	e59b2068 	ldr	r2, [fp, #104]	; 0x68                         <== NOT EXECUTED
	      --aio_request_queue.active_threads;                            
3000aca4:	e59b3064 	ldr	r3, [fp, #100]	; 0x64                         <== NOT EXECUTED
	    /* 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;                              
3000aca8:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
	      --aio_request_queue.active_threads;                            
3000acac:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
3000acb0:	e28d1020 	add	r1, sp, #32                                   <== NOT EXECUTED
	    /* 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;                              
3000acb4:	e58b2068 	str	r2, [fp, #104]	; 0x68                         <== NOT EXECUTED
	      --aio_request_queue.active_threads;                            
3000acb8:	e58b3064 	str	r3, [fp, #100]	; 0x64                         <== NOT EXECUTED
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
3000acbc:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000acc0:	eb00011f 	bl	3000b144 <clock_gettime>                       <== NOT EXECUTED
	      timeout.tv_sec += 3;                                           
3000acc4:	e59d3020 	ldr	r3, [sp, #32]                                 <== NOT EXECUTED
	      timeout.tv_nsec = 0;                                           
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
3000acc8:	e28b0004 	add	r0, fp, #4                                    <== NOT EXECUTED
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
	      --aio_request_queue.active_threads;                            
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
	      timeout.tv_sec += 3;                                           
3000accc:	e2833003 	add	r3, r3, #3                                    <== NOT EXECUTED
	      timeout.tv_nsec = 0;                                           
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
3000acd0:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
3000acd4:	e28d2020 	add	r2, sp, #32                                   <== NOT EXECUTED
	      AIO_printf ("Chain is empty [IQ], wait for work\n");	          
                                                                      
	      ++aio_request_queue.idle_threads;                              
	      --aio_request_queue.active_threads;                            
	      clock_gettime (CLOCK_REALTIME, &timeout);                      
	      timeout.tv_sec += 3;                                           
3000acd8:	e58d3020 	str	r3, [sp, #32]                                 <== NOT EXECUTED
	      timeout.tv_nsec = 0;                                           
3000acdc:	e58da024 	str	sl, [sp, #36]	; 0x24                          <== NOT EXECUTED
                                                                      
	      result = pthread_cond_timedwait (&aio_request_queue.new_req,   
3000ace0:	eb0001b6 	bl	3000b3c0 <pthread_cond_timedwait>              <== NOT EXECUTED
					       &aio_request_queue.mutex,                                 
					       &timeout);                                                
	                                                                     
	      /* If no new fd chain was added in the idle requests           
		 then this thread is finished */                                    
	      if (result == ETIMEDOUT) {                                     
3000ace4:	e3500074 	cmp	r0, #116	; 0x74                               <== NOT EXECUTED
3000ace8:	0a000003 	beq	3000acfc <rtems_aio_handle+0x24c>             <== NOT EXECUTED
3000acec:	e59b5054 	ldr	r5, [fp, #84]	; 0x54                          <== NOT EXECUTED
3000acf0:	eaffffdc 	b	3000ac68 <rtems_aio_handle+0x1b8>               <== NOT EXECUTED
      	break;                                                         
                                                                      
      default:                                                        
        result = -1;                                                  
      }                                                               
      if (result == -1) {                                             
3000acf4:	e594a014 	ldr	sl, [r4, #20]                                 <== NOT EXECUTED
3000acf8:	eaffff91 	b	3000ab44 <rtems_aio_handle+0x94>                <== NOT EXECUTED
	                                                                     
	      /* 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;                                   
3000acfc:	e59b3068 	ldr	r3, [fp, #104]	; 0x68                         <== NOT EXECUTED
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
3000ad00:	e1a0000b 	mov	r0, fp                                        <== NOT EXECUTED
	                                                                     
	      /* 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;                                   
3000ad04:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
3000ad08:	e58b3068 	str	r3, [fp, #104]	; 0x68                         <== NOT EXECUTED
		pthread_mutex_unlock (&aio_request_queue.mutex);                    
3000ad0c:	eb0002c8 	bl	3000b834 <pthread_mutex_unlock>                <== NOT EXECUTED
		return NULL;                                                        
3000ad10:	eaffff94 	b	3000ab68 <rtems_aio_handle+0xb8>                <== NOT EXECUTED
                                                                      

3000a878 <rtems_aio_init>: * 0 - if initialization succeeded */ int rtems_aio_init (void) {
3000a878:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  int result = 0;                                                     
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
3000a87c:	e59f00e4 	ldr	r0, [pc, #228]	; 3000a968 <rtems_aio_init+0xf0><== NOT EXECUTED
3000a880:	eb000431 	bl	3000b94c <pthread_attr_init>                   <== NOT EXECUTED
  if (result != 0)                                                    
3000a884:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000a888:	0a000001 	beq	3000a894 <rtems_aio_init+0x1c>                <== NOT EXECUTED
  aio_request_queue.active_threads = 0;                               
  aio_request_queue.idle_threads = 0;                                 
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
                                                                      
  return result;                                                      
}                                                                     
3000a88c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a890:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  result = pthread_attr_init (&aio_request_queue.attr);               
  if (result != 0)                                                    
    return result;                                                    
                                                                      
  result =                                                            
3000a894:	e59f00cc 	ldr	r0, [pc, #204]	; 3000a968 <rtems_aio_init+0xf0><== NOT EXECUTED
3000a898:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000a89c:	eb00043d 	bl	3000b998 <pthread_attr_setdetachstate>         <== NOT EXECUTED
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
3000a8a0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a8a4:	1a00001b 	bne	3000a918 <rtems_aio_init+0xa0>                <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
3000a8a8:	e59f40bc 	ldr	r4, [pc, #188]	; 3000a96c <rtems_aio_init+0xf4><== NOT EXECUTED
3000a8ac:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000a8b0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a8b4:	eb00036a 	bl	3000b664 <pthread_mutex_init>                  <== NOT EXECUTED
  if (result != 0)                                                    
3000a8b8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a8bc:	1a00001d 	bne	3000a938 <rtems_aio_init+0xc0>                <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
3000a8c0:	e59f00a8 	ldr	r0, [pc, #168]	; 3000a970 <rtems_aio_init+0xf8><== NOT EXECUTED
3000a8c4:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000a8c8:	eb000272 	bl	3000b298 <pthread_cond_init>                   <== NOT EXECUTED
  if (result != 0) {                                                  
3000a8cc:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000a8d0:	1a00001f 	bne	3000a954 <rtems_aio_init+0xdc>                <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3000a8d4:	e59f2098 	ldr	r2, [pc, #152]	; 3000a974 <rtems_aio_init+0xfc><== NOT EXECUTED
  head->previous = NULL;                                              
3000a8d8:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000a8dc:	e584304c 	str	r3, [r4, #76]	; 0x4c                          <== NOT EXECUTED
3000a8e0:	e5843058 	str	r3, [r4, #88]	; 0x58                          <== NOT EXECUTED
  }                                                                   
                                                                      
  rtems_chain_initialize_empty (&aio_request_queue.work_req);         
  rtems_chain_initialize_empty (&aio_request_queue.idle_req);         
                                                                      
  aio_request_queue.active_threads = 0;                               
3000a8e4:	e5843064 	str	r3, [r4, #100]	; 0x64                         <== NOT EXECUTED
  aio_request_queue.idle_threads = 0;                                 
3000a8e8:	e5843068 	str	r3, [r4, #104]	; 0x68                         <== NOT EXECUTED
  aio_request_queue.initialized = AIO_QUEUE_INITIALIZED;              
3000a8ec:	e59f3084 	ldr	r3, [pc, #132]	; 3000a978 <rtems_aio_init+0x100><== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3000a8f0:	e282000c 	add	r0, r2, #12                                   <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3000a8f4:	e242c004 	sub	ip, r2, #4                                    <== NOT EXECUTED
3000a8f8:	e2821008 	add	r1, r2, #8                                    <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3000a8fc:	e5840054 	str	r0, [r4, #84]	; 0x54                          <== NOT EXECUTED
3000a900:	e5842048 	str	r2, [r4, #72]	; 0x48                          <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3000a904:	e584c050 	str	ip, [r4, #80]	; 0x50                          <== NOT EXECUTED
3000a908:	e584105c 	str	r1, [r4, #92]	; 0x5c                          <== NOT EXECUTED
3000a90c:	e5843060 	str	r3, [r4, #96]	; 0x60                          <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
3000a910:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a914:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
    pthread_attr_destroy (&aio_request_queue.attr);                   
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
3000a918:	e59f404c 	ldr	r4, [pc, #76]	; 3000a96c <rtems_aio_init+0xf4><== NOT EXECUTED
                                                                      
  result =                                                            
    pthread_attr_setdetachstate (&aio_request_queue.attr,             
                                 PTHREAD_CREATE_DETACHED);            
  if (result != 0)                                                    
    pthread_attr_destroy (&aio_request_queue.attr);                   
3000a91c:	e59f0044 	ldr	r0, [pc, #68]	; 3000a968 <rtems_aio_init+0xf0><== NOT EXECUTED
3000a920:	eb000400 	bl	3000b928 <pthread_attr_destroy>                <== NOT EXECUTED
                                                                      
                                                                      
  result = pthread_mutex_init (&aio_request_queue.mutex, NULL);       
3000a924:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000a928:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a92c:	eb00034c 	bl	3000b664 <pthread_mutex_init>                  <== NOT EXECUTED
  if (result != 0)                                                    
3000a930:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a934:	0affffe1 	beq	3000a8c0 <rtems_aio_init+0x48>                <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
3000a938:	e2840008 	add	r0, r4, #8                                    <== NOT EXECUTED
3000a93c:	eb0003f9 	bl	3000b928 <pthread_attr_destroy>                <== NOT EXECUTED
                                                                      
                                                                      
  result = pthread_cond_init (&aio_request_queue.new_req, NULL);      
3000a940:	e59f0028 	ldr	r0, [pc, #40]	; 3000a970 <rtems_aio_init+0xf8><== NOT EXECUTED
3000a944:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000a948:	eb000252 	bl	3000b298 <pthread_cond_init>                   <== NOT EXECUTED
  if (result != 0) {                                                  
3000a94c:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000a950:	0affffdf 	beq	3000a8d4 <rtems_aio_init+0x5c>                <== NOT EXECUTED
    pthread_mutex_destroy (&aio_request_queue.mutex);                 
3000a954:	e59f0010 	ldr	r0, [pc, #16]	; 3000a96c <rtems_aio_init+0xf4><== NOT EXECUTED
3000a958:	eb0002f1 	bl	3000b524 <pthread_mutex_destroy>               <== NOT EXECUTED
    pthread_attr_destroy (&aio_request_queue.attr);                   
3000a95c:	e59f0004 	ldr	r0, [pc, #4]	; 3000a968 <rtems_aio_init+0xf0> <== NOT EXECUTED
3000a960:	eb0003f0 	bl	3000b928 <pthread_attr_destroy>                <== NOT EXECUTED
3000a964:	eaffffda 	b	3000a8d4 <rtems_aio_init+0x5c>                  <== NOT EXECUTED
                                                                      

3000ad1c <rtems_aio_insert_prio>: * NONE */ void rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req) {
3000ad1c:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ad20:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
3000ad24:	e4932004 	ldr	r2, [r3], #4                                  <== NOT EXECUTED
 *        NONE                                                        
 */                                                                   
                                                                      
void                                                                  
rtems_aio_insert_prio (rtems_chain_control *chain, rtems_aio_request *req)
{                                                                     
3000ad28:	e1a0c001 	mov	ip, r1                                        <== NOT EXECUTED
  rtems_chain_node *node;                                             
                                                                      
  AIO_printf ("FD exists \n");                                        
  node = rtems_chain_first (chain);                                   
                                                                      
  if (rtems_chain_is_empty (chain)) {                                 
3000ad2c:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000ad30:	0a000012 	beq	3000ad80 <rtems_aio_insert_prio+0x64>         <== 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 &&                         
3000ad34:	e5910014 	ldr	r0, [r1, #20]                                 <== NOT EXECUTED
  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;     
3000ad38:	e5921014 	ldr	r1, [r2, #20]                                 <== NOT EXECUTED
                                                                      
    while (req->aiocbp->aio_reqprio > prio &&                         
3000ad3c:	e5904014 	ldr	r4, [r0, #20]                                 <== NOT EXECUTED
3000ad40:	e5911014 	ldr	r1, [r1, #20]                                 <== NOT EXECUTED
3000ad44:	e1510004 	cmp	r1, r4                                        <== NOT EXECUTED
3000ad48:	a1a03002 	movge	r3, r2                                      <== NOT EXECUTED
3000ad4c:	ba000002 	blt	3000ad5c <rtems_aio_insert_prio+0x40>         <== NOT EXECUTED
3000ad50:	ea000008 	b	3000ad78 <rtems_aio_insert_prio+0x5c>           <== NOT EXECUTED
3000ad54:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
3000ad58:	0a000006 	beq	3000ad78 <rtems_aio_insert_prio+0x5c>         <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ad5c:	e5921000 	ldr	r1, [r2]                                      <== 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;       
3000ad60:	e5910014 	ldr	r0, [r1, #20]                                 <== 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 &&                         
3000ad64:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000ad68:	e5900014 	ldr	r0, [r0, #20]                                 <== NOT EXECUTED
3000ad6c:	e1500004 	cmp	r0, r4                                        <== NOT EXECUTED
3000ad70:	bafffff7 	blt	3000ad54 <rtems_aio_insert_prio+0x38>         <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ad74:	e1a03001 	mov	r3, r1                                        <== 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 );                              
3000ad78:	e5930004 	ldr	r0, [r3, #4]                                  <== NOT EXECUTED
3000ad7c:	e1a0100c 	mov	r1, ip                                        <== NOT EXECUTED
    }                                                                 
                                                                      
    rtems_chain_insert (node->previous, &req->next_prio);             
                                                                      
  }                                                                   
}                                                                     
3000ad80:	e8bd0010 	pop	{r4}                                          <== NOT EXECUTED
3000ad84:	ea000906 	b	3000d1a4 <_Chain_Insert>                        <== NOT EXECUTED
                                                                      

3000aa48 <rtems_aio_move_to_work>: * NONE */ void rtems_aio_move_to_work (rtems_aio_request_chain *r_chain) {
3000aa48:	e52d4004 	push	{r4}		; (str r4, [sp, #-4]!)                 <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aa4c:	e59f3058 	ldr	r3, [pc, #88]	; 3000aaac <rtems_aio_move_to_work+0x64><== NOT EXECUTED
 *        NONE                                                        
 */                                                                   
                                                                      
void                                                                  
rtems_aio_move_to_work (rtems_aio_request_chain *r_chain)             
{                                                                     
3000aa50:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aa54:	e5930048 	ldr	r0, [r3, #72]	; 0x48                          <== NOT EXECUTED
  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 &&                            
3000aa58:	e5914014 	ldr	r4, [r1, #20]                                 <== NOT EXECUTED
3000aa5c:	e5902014 	ldr	r2, [r0, #20]                                 <== NOT EXECUTED
3000aa60:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000aa64:	aa00000e 	bge	3000aaa4 <rtems_aio_move_to_work+0x5c>        <== NOT EXECUTED
3000aa68:	e283304c 	add	r3, r3, #76	; 0x4c                            <== NOT EXECUTED
3000aa6c:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
3000aa70:	1a000002 	bne	3000aa80 <rtems_aio_move_to_work+0x38>        <== NOT EXECUTED
3000aa74:	ea00000a 	b	3000aaa4 <rtems_aio_move_to_work+0x5c>          <== NOT EXECUTED
3000aa78:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
3000aa7c:	0a000005 	beq	3000aa98 <rtems_aio_move_to_work+0x50>        <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aa80:	e5902000 	ldr	r2, [r0]                                      <== NOT EXECUTED
  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 &&                            
3000aa84:	e592c014 	ldr	ip, [r2, #20]                                 <== NOT EXECUTED
3000aa88:	e1a00002 	mov	r0, r2                                        <== NOT EXECUTED
3000aa8c:	e15c0004 	cmp	ip, r4                                        <== NOT EXECUTED
3000aa90:	bafffff8 	blt	3000aa78 <rtems_aio_move_to_work+0x30>        <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aa94:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000aa98:	e5930004 	ldr	r0, [r3, #4]                                  <== NOT EXECUTED
    node = rtems_chain_next (node);                                   
    temp = (rtems_aio_request_chain *) node;                          
  }                                                                   
                                                                      
  rtems_chain_insert (rtems_chain_previous (node), &r_chain->next_fd);
}                                                                     
3000aa9c:	e8bd0010 	pop	{r4}                                          <== NOT EXECUTED
3000aaa0:	ea0009bf 	b	3000d1a4 <_Chain_Insert>                        <== NOT EXECUTED
  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 &&                            
3000aaa4:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
3000aaa8:	eafffffa 	b	3000aa98 <rtems_aio_move_to_work+0x50>          <== NOT EXECUTED
                                                                      

3000ad88 <rtems_aio_remove_fd>: * Output parameters: * NONE */ void rtems_aio_remove_fd (rtems_aio_request_chain *r_chain) {
3000ad88:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000ad8c:	e5904008 	ldr	r4, [r0, #8]                                  <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
3000ad90:	e280600c 	add	r6, r0, #12                                   <== NOT EXECUTED
  rtems_chain_control *chain;                                         
  rtems_chain_node *node;                                             
  chain = &r_chain->perfd;                                            
  node = rtems_chain_first (chain);                                   
                                                                      
  while (!rtems_chain_is_tail (chain, node))                          
3000ad94:	e1540006 	cmp	r4, r6                                        <== NOT EXECUTED
    {                                                                 
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
      req->aiocbp->error_code = ECANCELED;                            
3000ad98:	13a0808c 	movne	r8, #140	; 0x8c                             <== NOT EXECUTED
      req->aiocbp->return_value = -1;                                 
3000ad9c:	13e07000 	mvnne	r7, #0                                      <== NOT EXECUTED
  rtems_chain_control *chain;                                         
  rtems_chain_node *node;                                             
  chain = &r_chain->perfd;                                            
  node = rtems_chain_first (chain);                                   
                                                                      
  while (!rtems_chain_is_tail (chain, node))                          
3000ada0:	1a000001 	bne	3000adac <rtems_aio_remove_fd+0x24>           <== NOT EXECUTED
3000ada4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
    {                                                                 
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
3000ada8:	e1a04005 	mov	r4, r5                                        <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
3000adac:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000adb0:	eb0008e6 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
      req->aiocbp->error_code = ECANCELED;                            
3000adb4:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000adb8:	e5945000 	ldr	r5, [r4]                                      <== NOT EXECUTED
      rtems_chain_extract (node);                                     
      rtems_aio_request *req = (rtems_aio_request *) node;            
      node = rtems_chain_next (node);                                 
      req->aiocbp->error_code = ECANCELED;                            
      req->aiocbp->return_value = -1;                                 
      free (req);                                                     
3000adbc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  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;                            
3000adc0:	e5838030 	str	r8, [r3, #48]	; 0x30                          <== NOT EXECUTED
      req->aiocbp->return_value = -1;                                 
3000adc4:	e5837034 	str	r7, [r3, #52]	; 0x34                          <== NOT EXECUTED
      free (req);                                                     
3000adc8:	ebfff0fe 	bl	300071c8 <free>                                <== NOT EXECUTED
  rtems_chain_control *chain;                                         
  rtems_chain_node *node;                                             
  chain = &r_chain->perfd;                                            
  node = rtems_chain_first (chain);                                   
                                                                      
  while (!rtems_chain_is_tail (chain, node))                          
3000adcc:	e1550006 	cmp	r5, r6                                        <== NOT EXECUTED
3000add0:	1afffff4 	bne	3000ada8 <rtems_aio_remove_fd+0x20>           <== NOT EXECUTED
3000add4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

3000add8 <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) {
3000add8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000addc:	e4903004 	ldr	r3, [r0], #4                                  <== NOT EXECUTED
 *         AIO_CANCELED      - if request was canceled                
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
3000ade0:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
    return AIO_ALLDONE;                                               
3000ade4:	03a00002 	moveq	r0, #2                                      <== NOT EXECUTED
 *         AIO_CANCELED      - if request was canceled                
 */                                                                   
                                                                      
int rtems_aio_remove_req (rtems_chain_control *chain, struct aiocb *aiocbp)
{                                                                     
  if (rtems_chain_is_empty (chain))                                   
3000ade8:	1a000003 	bne	3000adfc <rtems_aio_remove_req+0x24>          <== NOT EXECUTED
3000adec:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000adf0:	e5933000 	ldr	r3, [r3]                                      <== 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) {
3000adf4:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
3000adf8:	0a00000e 	beq	3000ae38 <rtems_aio_remove_req+0x60>          <== NOT EXECUTED
3000adfc:	e5932014 	ldr	r2, [r3, #20]                                 <== NOT EXECUTED
    return AIO_ALLDONE;                                               
                                                                      
  rtems_chain_node *node = rtems_chain_first (chain);                 
  rtems_aio_request *current;                                         
                                                                      
  current = (rtems_aio_request *) node;                               
3000ae00:	e1a04003 	mov	r4, r3                                        <== NOT EXECUTED
                                                                      
  while (!rtems_chain_is_tail (chain, node) && current->aiocbp != aiocbp) {
3000ae04:	e1520001 	cmp	r2, r1                                        <== NOT EXECUTED
3000ae08:	1afffff8 	bne	3000adf0 <rtems_aio_remove_req+0x18>          <== NOT EXECUTED
3000ae0c:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000ae10:	eb0008ce 	bl	3000d150 <_Chain_Extract>                      <== NOT EXECUTED
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
  else                                                                
    {                                                                 
      rtems_chain_extract (node);                                     
      current->aiocbp->error_code = ECANCELED;                        
3000ae14:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000ae18:	e3a0208c 	mov	r2, #140	; 0x8c                               <== NOT EXECUTED
3000ae1c:	e5832030 	str	r2, [r3, #48]	; 0x30                          <== NOT EXECUTED
      current->aiocbp->return_value = -1;                             
3000ae20:	e3e02000 	mvn	r2, #0                                        <== NOT EXECUTED
      free (current);                                                 
3000ae24:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    return AIO_NOTCANCELED;                                           
  else                                                                
    {                                                                 
      rtems_chain_extract (node);                                     
      current->aiocbp->error_code = ECANCELED;                        
      current->aiocbp->return_value = -1;                             
3000ae28:	e5832034 	str	r2, [r3, #52]	; 0x34                          <== NOT EXECUTED
      free (current);                                                 
3000ae2c:	ebfff0e5 	bl	300071c8 <free>                                <== NOT EXECUTED
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
3000ae30:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000ae34:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    node = rtems_chain_next (node);                                   
    current = (rtems_aio_request *) node;                             
  }                                                                   
                                                                      
  if (rtems_chain_is_tail (chain, node))                              
    return AIO_NOTCANCELED;                                           
3000ae38:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
      current->aiocbp->return_value = -1;                             
      free (current);                                                 
    }                                                                 
                                                                      
  return AIO_CANCELED;                                                
}                                                                     
3000ae3c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000a97c <rtems_aio_search_fd>: * */ rtems_aio_request_chain * rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create) {
3000a97c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000a980:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
 *                                                                    
 */                                                                   
                                                                      
rtems_aio_request_chain *                                             
rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create)
{                                                                     
3000a984:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  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)) {
3000a988:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
 *                                                                    
 */                                                                   
                                                                      
rtems_aio_request_chain *                                             
rtems_aio_search_fd (rtems_chain_control *chain, int fildes, int create)
{                                                                     
3000a98c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  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)) {
3000a990:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
3000a994:	da000020 	ble	3000aa1c <rtems_aio_search_fd+0xa0>           <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_tail(                             
  Chain_Control *the_chain,                                           
  const Chain_Node    *the_node                                       
)                                                                     
{                                                                     
  return (the_node == _Chain_Tail(the_chain));                        
3000a998:	e2801004 	add	r1, r0, #4                                    <== NOT EXECUTED
3000a99c:	ea000003 	b	3000a9b0 <rtems_aio_search_fd+0x34>             <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000a9a0:	e5944000 	ldr	r4, [r4]                                      <== NOT EXECUTED
  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)) {
3000a9a4:	e5943014 	ldr	r3, [r4, #20]                                 <== NOT EXECUTED
3000a9a8:	e1530005 	cmp	r3, r5                                        <== NOT EXECUTED
3000a9ac:	aa00001a 	bge	3000aa1c <rtems_aio_search_fd+0xa0>           <== NOT EXECUTED
3000a9b0:	e1540001 	cmp	r4, r1                                        <== NOT EXECUTED
3000a9b4:	1afffff9 	bne	3000a9a0 <rtems_aio_search_fd+0x24>           <== NOT EXECUTED
3000a9b8:	e1a08004 	mov	r8, r4                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
3000a9bc:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
      r_chain = NULL;                                                 
3000a9c0:	01a04002 	moveq	r4, r2                                      <== NOT EXECUTED
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
3000a9c4:	0a000019 	beq	3000aa30 <rtems_aio_search_fd+0xb4>           <== NOT EXECUTED
      r_chain = NULL;                                                 
    else {                                                            
      r_chain = malloc (sizeof (rtems_aio_request_chain));            
3000a9c8:	e3a00024 	mov	r0, #36	; 0x24                                <== NOT EXECUTED
3000a9cc:	ebfff39c 	bl	30007844 <malloc>                              <== NOT EXECUTED
3000a9d0:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
      rtems_chain_initialize_empty (&r_chain->perfd);                 
                                                                      
      if (rtems_chain_is_empty (chain))                               
3000a9d4:	e5960000 	ldr	r0, [r6]                                      <== NOT EXECUTED
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 );                        
3000a9d8:	e287200c 	add	r2, r7, #12                                   <== NOT EXECUTED
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  const Chain_Control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Immutable_first( the_chain )                          
    == _Chain_Immutable_tail( the_chain );                            
3000a9dc:	e2861004 	add	r1, r6, #4                                    <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
3000a9e0:	e2873008 	add	r3, r7, #8                                    <== NOT EXECUTED
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3000a9e4:	e5872008 	str	r2, [r7, #8]                                  <== NOT EXECUTED
3000a9e8:	e1500001 	cmp	r0, r1                                        <== NOT EXECUTED
  head->previous = NULL;                                              
3000a9ec:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
    r_chain->new_fd = 0;                                              
  else {                                                              
    if (create == 0)                                                  
      r_chain = NULL;                                                 
    else {                                                            
      r_chain = malloc (sizeof (rtems_aio_request_chain));            
3000a9f0:	e1a04007 	mov	r4, r7                                        <== NOT EXECUTED
3000a9f4:	e587200c 	str	r2, [r7, #12]                                 <== NOT EXECUTED
  tail->previous = head;                                              
3000a9f8:	e5873010 	str	r3, [r7, #16]                                 <== NOT EXECUTED
      rtems_chain_initialize_empty (&r_chain->perfd);                 
                                                                      
      if (rtems_chain_is_empty (chain))                               
3000a9fc:	0a00000d 	beq	3000aa38 <rtems_aio_search_fd+0xbc>           <== 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 );                              
3000aa00:	e5980004 	ldr	r0, [r8, #4]                                  <== NOT EXECUTED
3000aa04:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000aa08:	eb0009e5 	bl	3000d1a4 <_Chain_Insert>                       <== NOT EXECUTED
        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;                                            
3000aa0c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000aa10:	e5873018 	str	r3, [r7, #24]                                 <== NOT EXECUTED
	  r_chain->fildes = fildes;                                          
3000aa14:	e5875014 	str	r5, [r7, #20]                                 <== NOT EXECUTED
3000aa18:	ea000004 	b	3000aa30 <rtems_aio_search_fd+0xb4>             <== NOT EXECUTED
  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)                                      
3000aa1c:	e1550003 	cmp	r5, r3                                        <== NOT EXECUTED
    r_chain->new_fd = 0;                                              
3000aa20:	03a03000 	moveq	r3, #0                                      <== NOT EXECUTED
    }                                                                 
  }                                                                   
                                                                      
  AIO_printf ("Thread finished\n");                                   
  return NULL;                                                        
}                                                                     
3000aa24:	e1a08004 	mov	r8, r4                                        <== NOT EXECUTED
    node = rtems_chain_next (node);                                   
    r_chain = (rtems_aio_request_chain *) node;                       
  }                                                                   
                                                                      
  if (r_chain->fildes == fildes)                                      
    r_chain->new_fd = 0;                                              
3000aa28:	05843018 	streq	r3, [r4, #24]                               <== NOT EXECUTED
  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)                                      
3000aa2c:	1affffe2 	bne	3000a9bc <rtems_aio_search_fd+0x40>           <== NOT EXECUTED
      r_chain->new_fd = 1;                                            
	  r_chain->fildes = fildes;                                          
    }                                                                 
  }                                                                   
  return r_chain;                                                     
}                                                                     
3000aa30:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aa34:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Chain_Prepend(                             
  Chain_Control *the_chain,                                           
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  _Chain_Insert(_Chain_Head(the_chain), the_node);                    
3000aa38:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
3000aa3c:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000aa40:	eb0009d7 	bl	3000d1a4 <_Chain_Insert>                       <== NOT EXECUTED
3000aa44:	eafffff0 	b	3000aa0c <rtems_aio_search_fd+0x90>             <== NOT EXECUTED
                                                                      

300124f0 <rtems_barrier_create>: rtems_name name, rtems_attribute attribute_set, uint32_t maximum_waiters, rtems_id *id ) {
300124f0:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
300124f4:	e2504000 	subs	r4, r0, #0                                   
  rtems_name           name,                                          
  rtems_attribute      attribute_set,                                 
  uint32_t             maximum_waiters,                               
  rtems_id            *id                                             
)                                                                     
{                                                                     
300124f8:	e24dd008 	sub	sp, sp, #8                                    
300124fc:	e1a05001 	mov	r5, r1                                        
30012500:	e1a07003 	mov	r7, r3                                        
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
30012504:	03a00003 	moveq	r0, #3                                      
)                                                                     
{                                                                     
  Barrier_Control         *the_barrier;                               
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30012508:	0a00001e 	beq	30012588 <rtems_barrier_create+0x98>          
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
3001250c:	e3530000 	cmp	r3, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
30012510:	03a00009 	moveq	r0, #9                                      
  CORE_barrier_Attributes  the_attributes;                            
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
30012514:	0a00001b 	beq	30012588 <rtems_barrier_create+0x98>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Initialize core barrier attributes */                            
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
30012518:	e3110010 	tst	r1, #16                                       
3001251c:	0a00001b 	beq	30012590 <rtems_barrier_create+0xa0>          
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
30012520:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
    if ( maximum_waiters == 0 )                                       
30012524:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Initialize core barrier attributes */                            
  if ( _Attributes_Is_barrier_automatic( attribute_set ) ) {          
    the_attributes.discipline = CORE_BARRIER_AUTOMATIC_RELEASE;       
30012528:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
    if ( maximum_waiters == 0 )                                       
3001252c:	0a00001a 	beq	3001259c <rtems_barrier_create+0xac>          <== NOT EXECUTED
30012530:	e59f3078 	ldr	r3, [pc, #120]	; 300125b0 <rtems_barrier_create+0xc0>
      return RTEMS_INVALID_NUMBER;                                    
  } else                                                              
    the_attributes.discipline = CORE_BARRIER_MANUAL_RELEASE;          
  the_attributes.maximum_count = maximum_waiters;                     
30012534:	e58d2004 	str	r2, [sp, #4]                                  
30012538:	e5932000 	ldr	r2, [r3]                                      
3001253c:	e2822001 	add	r2, r2, #1                                    
30012540:	e5832000 	str	r2, [r3]                                      
 *  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 );
30012544:	e59f8068 	ldr	r8, [pc, #104]	; 300125b4 <rtems_barrier_create+0xc4>
30012548:	e1a00008 	mov	r0, r8                                        
3001254c:	ebffeb1a 	bl	3000d1bc <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
30012550:	e2506000 	subs	r6, r0, #0                                   
30012554:	0a000012 	beq	300125a4 <rtems_barrier_create+0xb4>          
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_barrier->attribute_set = attribute_set;                         
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
30012558:	e2860014 	add	r0, r6, #20                                   
3001255c:	e1a0100d 	mov	r1, sp                                        
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_barrier->attribute_set = attribute_set;                         
30012560:	e5865010 	str	r5, [r6, #16]                                 
                                                                      
  _CORE_barrier_Initialize( &the_barrier->Barrier, &the_attributes ); 
30012564:	eb00024c 	bl	30012e9c <_CORE_barrier_Initialize>            
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30012568:	e5963008 	ldr	r3, [r6, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3001256c:	e598201c 	ldr	r2, [r8, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30012570:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30012574:	e7826721 	str	r6, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
30012578:	e586400c 	str	r4, [r6, #12]                                 
    &_Barrier_Information,                                            
    &the_barrier->Object,                                             
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_barrier->Object.id;                                       
3001257c:	e5873000 	str	r3, [r7]                                      
                                                                      
  _Thread_Enable_dispatch();                                          
30012580:	ebffef86 	bl	3000e3a0 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
30012584:	e3a00000 	mov	r0, #0                                        
}                                                                     
30012588:	e28dd008 	add	sp, sp, #8                                    
3001258c:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
  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;          
30012590:	e3a03001 	mov	r3, #1                                        
30012594:	e58d3000 	str	r3, [sp]                                      
30012598:	eaffffe4 	b	30012530 <rtems_barrier_create+0x40>            
                                                                      
  /* 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;                                    
3001259c:	e3a0000a 	mov	r0, #10                                       <== NOT EXECUTED
300125a0:	eafffff8 	b	30012588 <rtems_barrier_create+0x98>            <== NOT EXECUTED
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_barrier = _Barrier_Allocate();                                  
                                                                      
  if ( !the_barrier ) {                                               
    _Thread_Enable_dispatch();                                        
300125a4:	ebffef7d 	bl	3000e3a0 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
300125a8:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
300125ac:	eafffff5 	b	30012588 <rtems_barrier_create+0x98>            <== NOT EXECUTED
                                                                      

3000b9e4 <rtems_build_id>: uint32_t the_class, uint32_t node, uint32_t index ) { return (( (Objects_Id) the_api ) << OBJECTS_API_START_BIT) |
3000b9e4:	e1a00c00 	lsl	r0, r0, #24                                   <== NOT EXECUTED
3000b9e8:	e1800d81 	orr	r0, r0, r1, lsl #27                           <== NOT EXECUTED
         (( (Objects_Id) the_class ) << OBJECTS_CLASS_START_BIT) |    
3000b9ec:	e1800003 	orr	r0, r0, r3                                    <== NOT EXECUTED
  uint32_t node,                                                      
  uint32_t index                                                      
)                                                                     
{                                                                     
  return _Objects_Build_id( api, class, node, index );                
}                                                                     
3000b9f0:	e1800802 	orr	r0, r0, r2, lsl #16                           <== NOT EXECUTED
3000b9f4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000b9f8 <rtems_build_name>: char C1, char C2, char C3, char C4 ) {
3000b9f8:	e1a01801 	lsl	r1, r1, #16                                   <== NOT EXECUTED
3000b9fc:	e1a02402 	lsl	r2, r2, #8                                    <== NOT EXECUTED
  return _Objects_Build_name( C1, C2, C3, C4 );                       
3000ba00:	e20118ff 	and	r1, r1, #16711680	; 0xff0000                  <== NOT EXECUTED
3000ba04:	e1811c00 	orr	r1, r1, r0, lsl #24                           <== NOT EXECUTED
3000ba08:	e2022cff 	and	r2, r2, #65280	; 0xff00                       <== NOT EXECUTED
  char C1,                                                            
  char C2,                                                            
  char C3,                                                            
  char C4                                                             
)                                                                     
{                                                                     
3000ba0c:	e20330ff 	and	r3, r3, #255	; 0xff                           <== NOT EXECUTED
  return _Objects_Build_name( C1, C2, C3, C4 );                       
3000ba10:	e1811002 	orr	r1, r1, r2                                    <== NOT EXECUTED
}                                                                     
3000ba14:	e1810003 	orr	r0, r1, r3                                    <== NOT EXECUTED
3000ba18:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa20 <rtems_chain_append_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
3000aa20:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000aa24:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
3000aa28:	e1a05003 	mov	r5, r3                                        <== NOT EXECUTED
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 );               
3000aa2c:	eb000147 	bl	3000af50 <_Chain_Append_with_empty_check>      <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_append_with_empty_check( chain, node );
                                                                      
  if ( was_empty ) {                                                  
3000aa30:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000aa34:	08bd8030 	popeq	{r4, r5, pc}                                <== NOT EXECUTED
    sc = rtems_event_send( task, events );                            
3000aa38:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aa3c:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
3000aa40:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
{                                                                     
  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 );                            
3000aa44:	eafffd87 	b	3000a068 <rtems_event_send>                     <== NOT EXECUTED
                                                                      

3000aa48 <rtems_chain_get_with_notification>: rtems_chain_control *chain, rtems_id task, rtems_event_set events, rtems_chain_node **node ) {
3000aa48:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000aa4c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
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 );                  
3000aa50:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000aa54:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
3000aa58:	eb00015f 	bl	3000afdc <_Chain_Get_with_empty_check>         <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool is_empty = rtems_chain_get_with_empty_check( chain, node );    
                                                                      
  if ( is_empty ) {                                                   
3000aa5c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000aa60:	08bd8030 	popeq	{r4, r5, pc}                                <== NOT EXECUTED
    sc = rtems_event_send( task, events );                            
3000aa64:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aa68:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
3000aa6c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
{                                                                     
  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 );                            
3000aa70:	eafffd7c 	b	3000a068 <rtems_event_send>                     <== NOT EXECUTED
                                                                      

3000aa74 <rtems_chain_get_with_wait>: rtems_chain_control *chain, rtems_event_set events, rtems_interval timeout, rtems_chain_node **node_ptr ) {
3000aa74:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
3000aa78:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000aa7c:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
3000aa80:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
3000aa84:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
3000aa88:	e1a0a003 	mov	sl, r3                                        <== NOT EXECUTED
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
3000aa8c:	e1a0800d 	mov	r8, sp                                        <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
3000aa90:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3000aa94:	eb000165 	bl	3000b030 <_Chain_Get>                          <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
3000aa98:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
3000aa9c:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
3000aaa0:	e1a0300d 	mov	r3, sp                                        <== NOT EXECUTED
3000aaa4:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000aaa8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
3000aaac:	1a000005 	bne	3000aac8 <rtems_chain_get_with_wait+0x54>     <== NOT EXECUTED
  ) {                                                                 
    rtems_event_set out;                                              
    sc = rtems_event_receive(                                         
3000aab0:	ebfffd0f 	bl	30009ef4 <rtems_event_receive>                 <== NOT EXECUTED
)                                                                     
{                                                                     
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
3000aab4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000aab8:	0afffff4 	beq	3000aa90 <rtems_chain_get_with_wait+0x1c>     <== NOT EXECUTED
      timeout,                                                        
      &out                                                            
    );                                                                
  }                                                                   
                                                                      
  *node_ptr = node;                                                   
3000aabc:	e58a4000 	str	r4, [sl]                                      <== NOT EXECUTED
                                                                      
  return sc;                                                          
}                                                                     
3000aac0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000aac4:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  rtems_chain_node *node = NULL;                                      
                                                                      
  while (                                                             
    sc == RTEMS_SUCCESSFUL                                            
      && (node = rtems_chain_get( chain )) == NULL                    
3000aac8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000aacc:	eafffffa 	b	3000aabc <rtems_chain_get_with_wait+0x48>       <== NOT EXECUTED
                                                                      

3000aad0 <rtems_chain_prepend_with_notification>: rtems_chain_control *chain, rtems_chain_node *node, rtems_id task, rtems_event_set events ) {
3000aad0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000aad4:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
3000aad8:	e1a05003 	mov	r5, r3                                        <== NOT EXECUTED
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 );              
3000aadc:	eb00016a 	bl	3000b08c <_Chain_Prepend_with_empty_check>     <== NOT EXECUTED
  rtems_status_code sc = RTEMS_SUCCESSFUL;                            
  bool was_empty = rtems_chain_prepend_with_empty_check( chain, node );
                                                                      
  if (was_empty) {                                                    
3000aae0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000aae4:	08bd8030 	popeq	{r4, r5, pc}                                <== NOT EXECUTED
    sc = rtems_event_send( task, events );                            
3000aae8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aaec:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  return sc;                                                          
}                                                                     
3000aaf0:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
{                                                                     
  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 );                            
3000aaf4:	eafffd5b 	b	3000a068 <rtems_event_send>                     <== NOT EXECUTED
                                                                      

30017014 <rtems_clock_get>: rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) {
30017014:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  if ( !time_buffer )                                                 
30017018:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
3001701c:	0a000012 	beq	3001706c <rtems_clock_get+0x58>               <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
30017020:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30017024:	0a00000d 	beq	30017060 <rtems_clock_get+0x4c>               <== NOT EXECUTED
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
                                                                      
  if ( option == RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH )                
30017028:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
3001702c:	0a000011 	beq	30017078 <rtems_clock_get+0x64>               <== NOT EXECUTED
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
30017030:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
30017034:	0a000012 	beq	30017084 <rtems_clock_get+0x70>               <== NOT EXECUTED
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
30017038:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
3001703c:	0a000014 	beq	30017094 <rtems_clock_get+0x80>               <== NOT EXECUTED
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
30017040:	e3500004 	cmp	r0, #4                                        <== NOT EXECUTED
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
30017044:	13a0300a 	movne	r3, #10                                     <== NOT EXECUTED
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
30017048:	0a000001 	beq	30017054 <rtems_clock_get+0x40>               <== NOT EXECUTED
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
3001704c:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
30017050:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    *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 );
30017054:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
30017058:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
    *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 );
3001705c:	ea000060 	b	300171e4 <rtems_clock_get_tod_timeval>          <== NOT EXECUTED
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
30017060:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
30017064:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( option == RTEMS_CLOCK_GET_TOD )                                
    return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer );   
30017068:	ea000027 	b	3001710c <rtems_clock_get_tod>                  <== NOT EXECUTED
  rtems_clock_get_options  option,                                    
  void                    *time_buffer                                
)                                                                     
{                                                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
3001706c:	e3a03009 	mov	r3, #9                                        <== NOT EXECUTED
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
30017070:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
30017074:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  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);
30017078:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  if ( option == RTEMS_CLOCK_GET_TIME_VALUE )                         
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
3001707c:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
                                                                      
  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);
30017080:	ea000007 	b	300170a4 <rtems_clock_get_seconds_since_epoch>  <== NOT EXECUTED
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
30017084:	eb00001c 	bl	300170fc <rtems_clock_get_ticks_since_boot>    <== NOT EXECUTED
    return RTEMS_SUCCESSFUL;                                          
30017088:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_SINCE_BOOT ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_since_boot();                   
3001708c:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
    return RTEMS_SUCCESSFUL;                                          
30017090:	eaffffed 	b	3001704c <rtems_clock_get+0x38>                 <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
30017094:	eb000010 	bl	300170dc <rtems_clock_get_ticks_per_second>    <== NOT EXECUTED
    return RTEMS_SUCCESSFUL;                                          
30017098:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( option == RTEMS_CLOCK_GET_TICKS_PER_SECOND ) {                 
    rtems_interval *interval = (rtems_interval *)time_buffer;         
                                                                      
    *interval = rtems_clock_get_ticks_per_second();                   
3001709c:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
    return RTEMS_SUCCESSFUL;                                          
300170a0:	eaffffe9 	b	3001704c <rtems_clock_get+0x38>                 <== NOT EXECUTED
                                                                      

3000a908 <rtems_clock_get_seconds_since_epoch>: rtems_status_code rtems_clock_get_seconds_since_epoch( rtems_interval *the_interval ) { if ( !the_interval )
3000a908:	e2502000 	subs	r2, r0, #0                                   <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
3000a90c:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
                                                                      
rtems_status_code rtems_clock_get_seconds_since_epoch(                
  rtems_interval *the_interval                                        
)                                                                     
{                                                                     
  if ( !the_interval )                                                
3000a910:	012fff1e 	bxeq	lr                                           <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
3000a914:	e59f301c 	ldr	r3, [pc, #28]	; 3000a938 <rtems_clock_get_seconds_since_epoch+0x30><== NOT EXECUTED
3000a918:	e5d33000 	ldrb	r3, [r3]                                     <== NOT EXECUTED
3000a91c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  *the_interval = _TOD_Seconds_since_epoch();                         
3000a920:	159f3014 	ldrne	r3, [pc, #20]	; 3000a93c <rtems_clock_get_seconds_since_epoch+0x34><== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
3000a924:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  *the_interval = _TOD_Seconds_since_epoch();                         
3000a928:	15933000 	ldrne	r3, [r3]                                    <== NOT EXECUTED
{                                                                     
  if ( !the_interval )                                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
3000a92c:	03a0000b 	moveq	r0, #11                                     <== NOT EXECUTED
                                                                      
  *the_interval = _TOD_Seconds_since_epoch();                         
3000a930:	15823000 	strne	r3, [r2]                                    <== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000a934:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300094b4 <rtems_clock_get_ticks_per_second>: #include <rtems/score/tod.h> #include <rtems/score/watchdog.h> rtems_interval rtems_clock_get_ticks_per_second(void) { return TOD_MICROSECONDS_PER_SECOND /
300094b4:	e59f3010 	ldr	r3, [pc, #16]	; 300094cc <rtems_clock_get_ticks_per_second+0x18><== NOT EXECUTED
#include <rtems/score/thread.h>                                       
#include <rtems/score/tod.h>                                          
#include <rtems/score/watchdog.h>                                     
                                                                      
rtems_interval rtems_clock_get_ticks_per_second(void)                 
{                                                                     
300094b8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  return TOD_MICROSECONDS_PER_SECOND /                                
300094bc:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
300094c0:	e59f0008 	ldr	r0, [pc, #8]	; 300094d0 <rtems_clock_get_ticks_per_second+0x1c><== NOT EXECUTED
300094c4:	eb0030ae 	bl	30015784 <__aeabi_uidiv>                       <== NOT EXECUTED
    rtems_configuration_get_microseconds_per_tick();                  
}                                                                     
300094c8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

300094d4 <rtems_clock_get_ticks_since_boot>: #include <rtems/score/tod.h> #include <rtems/score/watchdog.h> rtems_interval rtems_clock_get_ticks_since_boot(void) { return _Watchdog_Ticks_since_boot;
300094d4:	e59f3004 	ldr	r3, [pc, #4]	; 300094e0 <rtems_clock_get_ticks_since_boot+0xc><== NOT EXECUTED
300094d8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
}                                                                     
300094dc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

300171e4 <rtems_clock_get_tod_timeval>: #include <rtems/score/watchdog.h> rtems_status_code rtems_clock_get_tod_timeval( struct timeval *time ) {
300171e4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  if ( !time )                                                        
300171e8:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
#include <rtems/score/watchdog.h>                                     
                                                                      
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
300171ec:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
300171f0:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
                                                                      
rtems_status_code rtems_clock_get_tod_timeval(                        
  struct timeval  *time                                               
)                                                                     
{                                                                     
  if ( !time )                                                        
300171f4:	0a000012 	beq	30017244 <rtems_clock_get_tod_timeval+0x60>   <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
300171f8:	e59f304c 	ldr	r3, [pc, #76]	; 3001724c <rtems_clock_get_tod_timeval+0x68><== NOT EXECUTED
300171fc:	e5d33000 	ldrb	r3, [r3]                                     <== NOT EXECUTED
30017200:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
30017204:	03a0000b 	moveq	r0, #11                                     <== NOT EXECUTED
)                                                                     
{                                                                     
  if ( !time )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
30017208:	0a00000d 	beq	30017244 <rtems_clock_get_tod_timeval+0x60>   <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001720c:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
30017210:	e3853080 	orr	r3, r5, #128	; 0x80                           <== NOT EXECUTED
30017214:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  ISR_Level       level;                                              
  struct timespec now;                                                
  suseconds_t     useconds;                                           
                                                                      
  _ISR_Disable(level);                                                
    _TOD_Get( &now );                                                 
30017218:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3001721c:	eb001205 	bl	3001ba38 <_TOD_Get>                            <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30017220:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
30017224:	e59f2024 	ldr	r2, [pc, #36]	; 30017250 <rtems_clock_get_tod_timeval+0x6c><== NOT EXECUTED
                                                                      
  _ISR_Disable(level);                                                
    _TOD_Get( &now );                                                 
  _ISR_Enable(level);                                                 
                                                                      
  useconds = (suseconds_t)now.tv_nsec;                                
30017228:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  _TOD_Get_timeval( time );                                           
                                                                      
  return RTEMS_SUCCESSFUL;                                            
3001722c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
  useconds /= (suseconds_t)TOD_NANOSECONDS_PER_MICROSECOND;           
30017230:	e0c21293 	smull	r1, r2, r3, r2                              <== NOT EXECUTED
30017234:	e1a03fc3 	asr	r3, r3, #31                                   <== NOT EXECUTED
30017238:	e0633342 	rsb	r3, r3, r2, asr #6                            <== NOT EXECUTED
                                                                      
  time->tv_sec  = now.tv_sec;                                         
3001723c:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
  time->tv_usec = useconds;                                           
30017240:	e884000c 	stm	r4, {r2, r3}                                  <== NOT EXECUTED
}                                                                     
30017244:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
30017248:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

30009708 <rtems_clock_get_uptime>: */ rtems_status_code rtems_clock_get_uptime( struct timespec *uptime ) { if ( !uptime )
30009708:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
 *    error code       - if unsuccessful                              
 */                                                                   
rtems_status_code rtems_clock_get_uptime(                             
  struct timespec *uptime                                             
)                                                                     
{                                                                     
3000970c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !uptime )                                                      
30009710:	0a000002 	beq	30009720 <rtems_clock_get_uptime+0x18>        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
30009714:	eb00059b 	bl	3000ad88 <_TOD_Get_uptime_as_timespec>         <== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
30009718:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000971c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
rtems_status_code rtems_clock_get_uptime(                             
  struct timespec *uptime                                             
)                                                                     
{                                                                     
  if ( !uptime )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
30009720:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
                                                                      
  _TOD_Get_uptime_as_timespec( uptime );                              
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
30009724:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009500 <rtems_clock_tick>: * * NOTE: This routine only works for leap-years through 2099. */ rtems_status_code rtems_clock_tick( void ) {
30009500:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  _TOD_Tickle_ticks();                                                
30009504:	eb000537 	bl	3000a9e8 <_TOD_Tickle_ticks>                   
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void )              
{                                                                     
                                                                      
  _Watchdog_Tickle( &_Watchdog_Ticks_chain );                         
30009508:	e59f0038 	ldr	r0, [pc, #56]	; 30009548 <rtems_clock_tick+0x48>
3000950c:	eb000f30 	bl	3000d1d4 <_Watchdog_Tickle>                    
                                                                      
  _Watchdog_Tickle_ticks();                                           
                                                                      
  _Thread_Tickle_timeslice();                                         
30009510:	eb000d92 	bl	3000cb60 <_Thread_Tickle_timeslice>            
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_context_switch_necessary( void ) 
{                                                                     
  return ( _Thread_Dispatch_necessary );                              
30009514:	e59f3030 	ldr	r3, [pc, #48]	; 3000954c <rtems_clock_tick+0x4c>
30009518:	e5d33010 	ldrb	r3, [r3, #16]                                
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
3000951c:	e3530000 	cmp	r3, #0                                        
30009520:	0a000003 	beq	30009534 <rtems_clock_tick+0x34>              
 *  otherwise.                                                        
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_dispatching_enabled( void )      
{                                                                     
  return ( _Thread_Dispatch_disable_level == 0 );                     
30009524:	e59f3024 	ldr	r3, [pc, #36]	; 30009550 <rtems_clock_tick+0x50><== NOT EXECUTED
30009528:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
3000952c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009530:	0a000001 	beq	3000953c <rtems_clock_tick+0x3c>              <== NOT EXECUTED
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
30009534:	e3a00000 	mov	r0, #0                                        
30009538:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
                                                                      
  _Thread_Tickle_timeslice();                                         
                                                                      
  if ( _Thread_Is_context_switch_necessary() &&                       
       _Thread_Is_dispatching_enabled() )                             
    _Thread_Dispatch();                                               
3000953c:	eb000a9a 	bl	3000bfac <_Thread_Dispatch>                    <== NOT EXECUTED
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
30009540:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30009544:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009554 <rtems_event_receive>: rtems_event_set event_in, rtems_option option_set, rtems_interval ticks, rtems_event_set *event_out ) {
30009554:	e92d4070 	push	{r4, r5, r6, lr}                             
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !event_out )                                                   
30009558:	e2536000 	subs	r6, r3, #0                                   
3000955c:	0a000010 	beq	300095a4 <rtems_event_receive+0x50>           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];        
30009560:	e59f4044 	ldr	r4, [pc, #68]	; 300095ac <rtems_event_receive+0x58>
                                                                      
  if ( _Event_sets_Is_empty( event_in ) ) {                           
30009564:	e3500000 	cmp	r0, #0                                        
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !event_out )                                                   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];        
30009568:	e5945004 	ldr	r5, [r4, #4]                                  
3000956c:	e59550f8 	ldr	r5, [r5, #248]	; 0xf8                         
                                                                      
  if ( _Event_sets_Is_empty( event_in ) ) {                           
30009570:	1a000002 	bne	30009580 <rtems_event_receive+0x2c>           
    *event_out = api->pending_events;                                 
30009574:	e5953000 	ldr	r3, [r5]                                      
30009578:	e5863000 	str	r3, [r6]                                      
    return RTEMS_SUCCESSFUL;                                          
3000957c:	e8bd8070 	pop	{r4, r5, r6, pc}                              
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009580:	e59fc028 	ldr	ip, [pc, #40]	; 300095b0 <rtems_event_receive+0x5c>
30009584:	e59ce000 	ldr	lr, [ip]                                      
30009588:	e28ee001 	add	lr, lr, #1                                    
3000958c:	e58ce000 	str	lr, [ip]                                      
  }                                                                   
                                                                      
  _Thread_Disable_dispatch();                                         
  _Event_Seize( event_in, option_set, ticks, event_out );             
30009590:	eb000007 	bl	300095b4 <_Event_Seize>                        
  _Thread_Enable_dispatch();                                          
30009594:	eb000ada 	bl	3000c104 <_Thread_Enable_dispatch>             
  return( _Thread_Executing->Wait.return_code );                      
30009598:	e5943004 	ldr	r3, [r4, #4]                                  
3000959c:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          
300095a0:	e8bd8070 	pop	{r4, r5, r6, pc}                              
)                                                                     
{                                                                     
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !event_out )                                                   
    return RTEMS_INVALID_ADDRESS;                                     
300095a4:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
  _Event_Seize( event_in, option_set, ticks, event_out );             
  _Thread_Enable_dispatch();                                          
  return( _Thread_Executing->Wait.return_code );                      
}                                                                     
300095a8:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000bafc <rtems_extension_create>: rtems_status_code rtems_extension_create( rtems_name name, const rtems_extensions_table *extension_table, rtems_id *id ) {
3000bafc:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  Extension_Control *the_extension;                                   
                                                                      
  if ( !id )                                                          
3000bb00:	e2526000 	subs	r6, r2, #0                                   
rtems_status_code rtems_extension_create(                             
  rtems_name                    name,                                 
  const rtems_extensions_table *extension_table,                      
  rtems_id                     *id                                    
)                                                                     
{                                                                     
3000bb04:	e1a04000 	mov	r4, r0                                        
3000bb08:	e1a08001 	mov	r8, r1                                        
  Extension_Control *the_extension;                                   
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
3000bb0c:	03a00009 	moveq	r0, #9                                      
  rtems_id                     *id                                    
)                                                                     
{                                                                     
  Extension_Control *the_extension;                                   
                                                                      
  if ( !id )                                                          
3000bb10:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
3000bb14:	e3540000 	cmp	r4, #0                                        
3000bb18:	1a000001 	bne	3000bb24 <rtems_extension_create+0x28>        
    return RTEMS_INVALID_NAME;                                        
3000bb1c:	e3a00003 	mov	r0, #3                                        <== NOT EXECUTED
  );                                                                  
                                                                      
  *id = the_extension->Object.id;                                     
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000bb20:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000bb24:	e59f306c 	ldr	r3, [pc, #108]	; 3000bb98 <rtems_extension_create+0x9c>
3000bb28:	e5932000 	ldr	r2, [r3]                                      
3000bb2c:	e2822001 	add	r2, r2, #1                                    
3000bb30:	e5832000 	str	r2, [r3]                                      
#ifndef __EXTENSION_MANAGER_inl                                       
#define __EXTENSION_MANAGER_inl                                       
                                                                      
RTEMS_INLINE_ROUTINE Extension_Control *_Extension_Allocate( void )   
{                                                                     
  return (Extension_Control *) _Objects_Allocate( &_Extension_Information );
3000bb34:	e59f7060 	ldr	r7, [pc, #96]	; 3000bb9c <rtems_extension_create+0xa0>
3000bb38:	e1a00007 	mov	r0, r7                                        
3000bb3c:	eb0003b5 	bl	3000ca18 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_extension = _Extension_Allocate();                              
                                                                      
  if ( !the_extension ) {                                             
3000bb40:	e2505000 	subs	r5, r0, #0                                   
3000bb44:	0a000010 	beq	3000bb8c <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;                             
3000bb48:	e285c024 	add	ip, r5, #36	; 0x24                            
3000bb4c:	e1a0e008 	mov	lr, r8                                        
3000bb50:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         
3000bb54:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000bb58:	e89e000f 	ldm	lr, {r0, r1, r2, r3}                          
3000bb5c:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
                                                                      
  _User_extensions_Add_set( extension );                              
3000bb60:	e2850010 	add	r0, r5, #16                                   
3000bb64:	eb000b71 	bl	3000e930 <_User_extensions_Add_set>            
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000bb68:	e5953008 	ldr	r3, [r5, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000bb6c:	e597201c 	ldr	r2, [r7, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000bb70:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000bb74:	e7825721 	str	r5, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
3000bb78:	e585400c 	str	r4, [r5, #12]                                 
    &_Extension_Information,                                          
    &the_extension->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_extension->Object.id;                                     
3000bb7c:	e5863000 	str	r3, [r6]                                      
  _Thread_Enable_dispatch();                                          
3000bb80:	eb00085a 	bl	3000dcf0 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
3000bb84:	e3a00000 	mov	r0, #0                                        
3000bb88:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_extension = _Extension_Allocate();                              
                                                                      
  if ( !the_extension ) {                                             
    _Thread_Enable_dispatch();                                        
3000bb8c:	eb000857 	bl	3000dcf0 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
3000bb90:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
3000bb94:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

3000c790 <rtems_extension_ident>: rtems_status_code rtems_extension_ident( rtems_name name, rtems_id *id ) {
3000c790:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
3000c794:	e1a03001 	mov	r3, r1                                        <== NOT EXECUTED
3000c798:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
                                                                      
  status = _Objects_Name_to_id_u32(                                   
3000c79c:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
3000c7a0:	e59f0010 	ldr	r0, [pc, #16]	; 3000c7b8 <rtems_extension_ident+0x28><== NOT EXECUTED
3000c7a4:	e3e02102 	mvn	r2, #-2147483648	; 0x80000000                 <== NOT EXECUTED
3000c7a8:	eb0004de 	bl	3000db28 <_Objects_Name_to_id_u32>             <== NOT EXECUTED
    name,                                                             
    OBJECTS_SEARCH_LOCAL_NODE,                                        
    id                                                                
  );                                                                  
                                                                      
  return _Status_Object_name_errors_to_status[ status ];              
3000c7ac:	e59f3008 	ldr	r3, [pc, #8]	; 3000c7bc <rtems_extension_ident+0x2c><== NOT EXECUTED
}                                                                     
3000c7b0:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
3000c7b4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c5f4 <rtems_get_version_string>: #include <rtems/system.h> const char *rtems_get_version_string(void) { return _RTEMS_version; }
3000c5f4:	e59f0000 	ldr	r0, [pc, #0]	; 3000c5fc <rtems_get_version_string+0x8><== NOT EXECUTED
3000c5f8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a9fc <rtems_interrupt_disable>: static inline uint32_t arm_interrupt_disable( void ) { uint32_t arm_switch_reg; uint32_t level; __asm__ volatile (
3000a9fc:	e10f0000 	mrs	r0, CPSR                                      <== NOT EXECUTED
3000aa00:	e3803080 	orr	r3, r0, #128	; 0x80                           <== NOT EXECUTED
3000aa04:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
  rtems_interrupt_level previous_level;                               
                                                                      
  _ISR_Disable( previous_level );                                     
                                                                      
  return previous_level;                                              
}                                                                     
3000aa08:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa0c <rtems_interrupt_enable>: static inline void arm_interrupt_enable( uint32_t level ) { ARM_SWITCH_REGISTERS; __asm__ volatile (
3000aa0c:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
void rtems_interrupt_enable(                                          
  rtems_interrupt_level previous_level                                
)                                                                     
{                                                                     
  _ISR_Enable( previous_level );                                      
}                                                                     
3000aa10:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa14 <rtems_interrupt_flash>: static inline void arm_interrupt_flash( uint32_t level ) { uint32_t arm_switch_reg; __asm__ volatile (
3000aa14:	e10f3000 	mrs	r3, CPSR                                      <== NOT EXECUTED
3000aa18:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
3000aa1c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
void rtems_interrupt_flash(                                           
  rtems_interrupt_level previous_level                                
)                                                                     
{                                                                     
  _ISR_Flash( previous_level );                                       
}                                                                     
3000aa20:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000aa24 <rtems_interrupt_is_in_progress>: #undef rtems_interrupt_is_in_progress bool rtems_interrupt_is_in_progress( void ) { return _ISR_Is_in_progress();
3000aa24:	e59f300c 	ldr	r3, [pc, #12]	; 3000aa38 <rtems_interrupt_is_in_progress+0x14><== NOT EXECUTED
3000aa28:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
}                                                                     
3000aa2c:	e2500000 	subs	r0, r0, #0                                   <== NOT EXECUTED
3000aa30:	13a00001 	movne	r0, #1                                      <== NOT EXECUTED
3000aa34:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000a3cc <rtems_interrupt_level_attribute>: rtems_attribute rtems_interrupt_level_attribute( uint32_t level ) { return RTEMS_INTERRUPT_LEVEL(level); }
3000a3cc:	e2000080 	and	r0, r0, #128	; 0x80                           <== NOT EXECUTED
3000a3d0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30011cc0 <rtems_io_close>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
30011cc0:	e59fc044 	ldr	ip, [pc, #68]	; 30011d0c <rtems_io_close+0x4c>
rtems_status_code rtems_io_close(                                     
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011cc4:	e1a03000 	mov	r3, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011cc8:	e59cc000 	ldr	ip, [ip]                                      
rtems_status_code rtems_io_close(                                     
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011ccc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011cd0:	e15c0000 	cmp	ip, r0                                        
    return RTEMS_INVALID_NUMBER;                                      
30011cd4:	93a0000a 	movls	r0, #10                                     
  void                      *argument                                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011cd8:	949df004 	popls	{pc}		; (ldrls pc, [sp], #4)                
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].close_entry;              
30011cdc:	e59fc02c 	ldr	ip, [pc, #44]	; 30011d10 <rtems_io_close+0x50>
30011ce0:	e0833083 	add	r3, r3, r3, lsl #1                            
30011ce4:	e59cc000 	ldr	ip, [ip]                                      
30011ce8:	e08c3183 	add	r3, ip, r3, lsl #3                            
30011cec:	e5933008 	ldr	r3, [r3, #8]                                  
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
30011cf0:	e3530000 	cmp	r3, #0                                        
30011cf4:	0a000002 	beq	30011d04 <rtems_io_close+0x44>                
30011cf8:	e1a0e00f 	mov	lr, pc                                        
30011cfc:	e12fff13 	bx	r3                                             
30011d00:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
30011d04:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
30011d08:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30011d14 <rtems_io_control>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
30011d14:	e59fc044 	ldr	ip, [pc, #68]	; 30011d60 <rtems_io_control+0x4c>
rtems_status_code rtems_io_control(                                   
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011d18:	e1a03000 	mov	r3, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d1c:	e59cc000 	ldr	ip, [ip]                                      
rtems_status_code rtems_io_control(                                   
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011d20:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d24:	e15c0000 	cmp	ip, r0                                        
    return RTEMS_INVALID_NUMBER;                                      
30011d28:	93a0000a 	movls	r0, #10                                     
  void                      *argument                                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d2c:	949df004 	popls	{pc}		; (ldrls pc, [sp], #4)                
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].control_entry;            
30011d30:	e59fc02c 	ldr	ip, [pc, #44]	; 30011d64 <rtems_io_control+0x50>
30011d34:	e0833083 	add	r3, r3, r3, lsl #1                            
30011d38:	e59cc000 	ldr	ip, [ip]                                      
30011d3c:	e08c3183 	add	r3, ip, r3, lsl #3                            
30011d40:	e5933014 	ldr	r3, [r3, #20]                                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
30011d44:	e3530000 	cmp	r3, #0                                        
30011d48:	0a000002 	beq	30011d58 <rtems_io_control+0x44>              
30011d4c:	e1a0e00f 	mov	lr, pc                                        
30011d50:	e12fff13 	bx	r3                                             
30011d54:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
30011d58:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
30011d5c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30011d68 <rtems_io_open>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
30011d68:	e59fc044 	ldr	ip, [pc, #68]	; 30011db4 <rtems_io_open+0x4c> 
rtems_status_code rtems_io_open(                                      
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011d6c:	e1a03000 	mov	r3, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d70:	e59cc000 	ldr	ip, [ip]                                      
rtems_status_code rtems_io_open(                                      
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011d74:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d78:	e15c0000 	cmp	ip, r0                                        
    return RTEMS_INVALID_NUMBER;                                      
30011d7c:	93a0000a 	movls	r0, #10                                     
  void                      *argument                                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011d80:	949df004 	popls	{pc}		; (ldrls pc, [sp], #4)                
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].open_entry;               
30011d84:	e59fc02c 	ldr	ip, [pc, #44]	; 30011db8 <rtems_io_open+0x50> 
30011d88:	e0833083 	add	r3, r3, r3, lsl #1                            
30011d8c:	e59cc000 	ldr	ip, [ip]                                      
30011d90:	e08c3183 	add	r3, ip, r3, lsl #3                            
30011d94:	e5933004 	ldr	r3, [r3, #4]                                  
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
30011d98:	e3530000 	cmp	r3, #0                                        
30011d9c:	0a000002 	beq	30011dac <rtems_io_open+0x44>                 
30011da0:	e1a0e00f 	mov	lr, pc                                        
30011da4:	e12fff13 	bx	r3                                             
30011da8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
30011dac:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
30011db0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30011dbc <rtems_io_read>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
30011dbc:	e59fc044 	ldr	ip, [pc, #68]	; 30011e08 <rtems_io_read+0x4c> 
rtems_status_code rtems_io_read(                                      
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011dc0:	e1a03000 	mov	r3, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011dc4:	e59cc000 	ldr	ip, [ip]                                      
rtems_status_code rtems_io_read(                                      
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011dc8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011dcc:	e15c0000 	cmp	ip, r0                                        
    return RTEMS_INVALID_NUMBER;                                      
30011dd0:	93a0000a 	movls	r0, #10                                     
  void                      *argument                                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011dd4:	949df004 	popls	{pc}		; (ldrls pc, [sp], #4)                
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].read_entry;               
30011dd8:	e59fc02c 	ldr	ip, [pc, #44]	; 30011e0c <rtems_io_read+0x50> 
30011ddc:	e0833083 	add	r3, r3, r3, lsl #1                            
30011de0:	e59cc000 	ldr	ip, [ip]                                      
30011de4:	e08c3183 	add	r3, ip, r3, lsl #3                            
30011de8:	e593300c 	ldr	r3, [r3, #12]                                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
30011dec:	e3530000 	cmp	r3, #0                                        
30011df0:	0a000002 	beq	30011e00 <rtems_io_read+0x44>                 
30011df4:	e1a0e00f 	mov	lr, pc                                        
30011df8:	e12fff13 	bx	r3                                             
30011dfc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
30011e00:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
30011e04:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000b7ac <rtems_io_register_driver>: rtems_device_major_number *registered_major ) { rtems_device_major_number major_limit = _IO_Number_of_drivers; if ( rtems_interrupt_is_in_progress() )
3000b7ac:	e59fc150 	ldr	ip, [pc, #336]	; 3000b904 <rtems_io_register_driver+0x158>
  rtems_device_major_number         major,                            
  const rtems_driver_address_table *driver_table,                     
  rtems_device_major_number        *registered_major                  
)                                                                     
{                                                                     
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
3000b7b0:	e59f3150 	ldr	r3, [pc, #336]	; 3000b908 <rtems_io_register_driver+0x15c>
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
3000b7b4:	e59cc000 	ldr	ip, [ip]                                      
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                  
)                                                                     
{                                                                     
3000b7b8:	e92d4030 	push	{r4, r5, lr}                                 
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
3000b7bc:	e35c0000 	cmp	ip, #0                                        
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                  
)                                                                     
{                                                                     
3000b7c0:	e1a04000 	mov	r4, r0                                        
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
3000b7c4:	e5930000 	ldr	r0, [r3]                                      
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
3000b7c8:	13a00012 	movne	r0, #18                                     
  rtems_device_major_number        *registered_major                  
)                                                                     
{                                                                     
  rtems_device_major_number major_limit = _IO_Number_of_drivers;      
                                                                      
  if ( rtems_interrupt_is_in_progress() )                             
3000b7cc:	18bd8030 	popne	{r4, r5, pc}                                
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( registered_major == NULL )                                     
3000b7d0:	e3520000 	cmp	r2, #0                                        
3000b7d4:	0a00003f 	beq	3000b8d8 <rtems_io_register_driver+0x12c>     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
                                                                      
  if ( driver_table == NULL )                                         
3000b7d8:	e3510000 	cmp	r1, #0                                        
                                                                      
  if ( registered_major == NULL )                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  /* Set it to an invalid value */                                    
  *registered_major = major_limit;                                    
3000b7dc:	e5820000 	str	r0, [r2]                                      
                                                                      
  if ( driver_table == NULL )                                         
3000b7e0:	0a00003c 	beq	3000b8d8 <rtems_io_register_driver+0x12c>     
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b7e4:	e591c000 	ldr	ip, [r1]                                      
3000b7e8:	e35c0000 	cmp	ip, #0                                        
3000b7ec:	0a000036 	beq	3000b8cc <rtems_io_register_driver+0x120>     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
3000b7f0:	e1500004 	cmp	r0, r4                                        
3000b7f4:	9a000027 	bls	3000b898 <rtems_io_register_driver+0xec>      
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000b7f8:	e59f010c 	ldr	r0, [pc, #268]	; 3000b90c <rtems_io_register_driver+0x160>
3000b7fc:	e590c000 	ldr	ip, [r0]                                      
3000b800:	e28cc001 	add	ip, ip, #1                                    
3000b804:	e580c000 	str	ip, [r0]                                      
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( major == 0 ) {                                                 
3000b808:	e3540000 	cmp	r4, #0                                        
3000b80c:	1a000023 	bne	3000b8a0 <rtems_io_register_driver+0xf4>      
                                                                      
static rtems_status_code rtems_io_obtain_major_number(                
  rtems_device_major_number *major                                    
)                                                                     
{                                                                     
  rtems_device_major_number n = _IO_Number_of_drivers;                
3000b810:	e593c000 	ldr	ip, [r3]                                      
  rtems_device_major_number m = 0;                                    
                                                                      
  /* major is error checked by caller */                              
                                                                      
  for ( m = 0; m < n; ++m ) {                                         
3000b814:	e35c0000 	cmp	ip, #0                                        
3000b818:	0a000030 	beq	3000b8e0 <rtems_io_register_driver+0x134>     
3000b81c:	e59fe0ec 	ldr	lr, [pc, #236]	; 3000b910 <rtems_io_register_driver+0x164>
3000b820:	e59e3000 	ldr	r3, [lr]                                      
3000b824:	ea000003 	b	3000b838 <rtems_io_register_driver+0x8c>        
3000b828:	e2844001 	add	r4, r4, #1                                    
3000b82c:	e15c0004 	cmp	ip, r4                                        
3000b830:	e2833018 	add	r3, r3, #24                                   
3000b834:	9a000005 	bls	3000b850 <rtems_io_register_driver+0xa4>      
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b838:	e5930000 	ldr	r0, [r3]                                      
3000b83c:	e3500000 	cmp	r0, #0                                        
3000b840:	1afffff8 	bne	3000b828 <rtems_io_register_driver+0x7c>      
3000b844:	e5930004 	ldr	r0, [r3, #4]                                  
3000b848:	e3500000 	cmp	r0, #0                                        
3000b84c:	1afffff5 	bne	3000b828 <rtems_io_register_driver+0x7c>      
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
                                                                      
  if ( m != n )                                                       
3000b850:	e15c0004 	cmp	ip, r4                                        
3000b854:	1084c084 	addne	ip, r4, r4, lsl #1                          
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
3000b858:	e5824000 	str	r4, [r2]                                      
                                                                      
  if ( m != n )                                                       
3000b85c:	11a0c18c 	lslne	ip, ip, #3                                  
3000b860:	0a00001f 	beq	3000b8e4 <rtems_io_register_driver+0x138>     
    }                                                                 
                                                                      
    *registered_major = major;                                        
  }                                                                   
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
3000b864:	e59e5000 	ldr	r5, [lr]                                      
3000b868:	e1a0e001 	mov	lr, r1                                        
3000b86c:	e085c00c 	add	ip, r5, ip                                    
3000b870:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         
3000b874:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
3000b878:	e89e0003 	ldm	lr, {r0, r1}                                  
3000b87c:	e88c0003 	stm	ip, {r0, r1}                                  
                                                                      
  _Thread_Enable_dispatch();                                          
3000b880:	eb0007cd 	bl	3000d7bc <_Thread_Enable_dispatch>             
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
3000b884:	e3a01000 	mov	r1, #0                                        
3000b888:	e1a00004 	mov	r0, r4                                        
3000b88c:	e1a02001 	mov	r2, r1                                        
}                                                                     
3000b890:	e8bd4030 	pop	{r4, r5, lr}                                  
                                                                      
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
3000b894:	ea0021de 	b	30014014 <rtems_io_initialize>                  
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( major >= major_limit )                                         
    return RTEMS_INVALID_NUMBER;                                      
3000b898:	e3a0000a 	mov	r0, #10                                       <== NOT EXECUTED
  _IO_Driver_address_table [major] = *driver_table;                   
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  return rtems_io_initialize( major, 0, NULL );                       
}                                                                     
3000b89c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
3000b8a0:	e59fe068 	ldr	lr, [pc, #104]	; 3000b910 <rtems_io_register_driver+0x164><== NOT EXECUTED
3000b8a4:	e084c084 	add	ip, r4, r4, lsl #1                            <== NOT EXECUTED
3000b8a8:	e59e3000 	ldr	r3, [lr]                                      <== NOT EXECUTED
3000b8ac:	e1a0c18c 	lsl	ip, ip, #3                                    <== NOT EXECUTED
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b8b0:	e793000c 	ldr	r0, [r3, ip]                                  <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
    }                                                                 
    major = *registered_major;                                        
  } else {                                                            
    rtems_driver_address_table *const table = _IO_Driver_address_table + major;
3000b8b4:	e083300c 	add	r3, r3, ip                                    <== NOT EXECUTED
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b8b8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000b8bc:	0a00000b 	beq	3000b8f0 <rtems_io_register_driver+0x144>     <== NOT EXECUTED
    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();                                      
3000b8c0:	eb0007bd 	bl	3000d7bc <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_RESOURCE_IN_USE;                                   
3000b8c4:	e3a0000c 	mov	r0, #12                                       <== NOT EXECUTED
3000b8c8:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b8cc:	e591c004 	ldr	ip, [r1, #4]                                  
3000b8d0:	e35c0000 	cmp	ip, #0                                        
3000b8d4:	1affffc5 	bne	3000b7f0 <rtems_io_register_driver+0x44>      
                                                                      
  if ( driver_table == NULL )                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( rtems_io_is_empty_table( driver_table ) )                      
    return RTEMS_INVALID_ADDRESS;                                     
3000b8d8:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
3000b8dc:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    if ( rtems_io_is_empty_table( table ) )                           
      break;                                                          
  }                                                                   
                                                                      
  /* Assigns invalid value in case of failure */                      
  *major = m;                                                         
3000b8e0:	e5824000 	str	r4, [r2]                                      <== NOT EXECUTED
                                                                      
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
3000b8e4:	eb0007b4 	bl	3000d7bc <_Thread_Enable_dispatch>             <== NOT EXECUTED
  *major = m;                                                         
                                                                      
  if ( m != n )                                                       
    return RTEMS_SUCCESSFUL;                                          
                                                                      
  return RTEMS_TOO_MANY;                                              
3000b8e8:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
  if ( major == 0 ) {                                                 
    rtems_status_code sc = rtems_io_obtain_major_number( registered_major );
                                                                      
    if ( sc != RTEMS_SUCCESSFUL ) {                                   
      _Thread_Enable_dispatch();                                      
      return sc;                                                      
3000b8ec:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
static inline bool rtems_io_is_empty_table(                           
  const rtems_driver_address_table *table                             
)                                                                     
{                                                                     
  return table->initialization_entry == NULL && table->open_entry == NULL;
3000b8f0:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
3000b8f4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000b8f8:	1afffff0 	bne	3000b8c0 <rtems_io_register_driver+0x114>     <== NOT EXECUTED
    if ( !rtems_io_is_empty_table( table ) ) {                        
      _Thread_Enable_dispatch();                                      
      return RTEMS_RESOURCE_IN_USE;                                   
    }                                                                 
                                                                      
    *registered_major = major;                                        
3000b8fc:	e5824000 	str	r4, [r2]                                      <== NOT EXECUTED
3000b900:	eaffffd7 	b	3000b864 <rtems_io_register_driver+0xb8>        <== NOT EXECUTED
                                                                      

3000b914 <rtems_io_unregister_driver>: rtems_status_code rtems_io_unregister_driver( rtems_device_major_number major ) { if ( rtems_interrupt_is_in_progress() )
3000b914:	e59f3060 	ldr	r3, [pc, #96]	; 3000b97c <rtems_io_unregister_driver+0x68>
 */                                                                   
                                                                      
rtems_status_code rtems_io_unregister_driver(                         
  rtems_device_major_number major                                     
)                                                                     
{                                                                     
3000b918:	e92d4010 	push	{r4, lr}                                     
  if ( rtems_interrupt_is_in_progress() )                             
3000b91c:	e5934000 	ldr	r4, [r3]                                      
3000b920:	e3540000 	cmp	r4, #0                                        
    return RTEMS_CALLED_FROM_ISR;                                     
3000b924:	13a00012 	movne	r0, #18                                     
                                                                      
rtems_status_code rtems_io_unregister_driver(                         
  rtems_device_major_number major                                     
)                                                                     
{                                                                     
  if ( rtems_interrupt_is_in_progress() )                             
3000b928:	18bd8010 	popne	{r4, pc}                                    
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
3000b92c:	e59f304c 	ldr	r3, [pc, #76]	; 3000b980 <rtems_io_unregister_driver+0x6c>
3000b930:	e5933000 	ldr	r3, [r3]                                      
3000b934:	e1530000 	cmp	r3, r0                                        
3000b938:	8a000001 	bhi	3000b944 <rtems_io_unregister_driver+0x30>    
    _Thread_Enable_dispatch();                                        
                                                                      
    return RTEMS_SUCCESSFUL;                                          
  }                                                                   
                                                                      
  return RTEMS_UNSATISFIED;                                           
3000b93c:	e3a0000d 	mov	r0, #13                                       <== NOT EXECUTED
}                                                                     
3000b940:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
3000b944:	e59f3038 	ldr	r3, [pc, #56]	; 3000b984 <rtems_io_unregister_driver+0x70>
3000b948:	e5932000 	ldr	r2, [r3]                                      
3000b94c:	e2822001 	add	r2, r2, #1                                    
3000b950:	e5832000 	str	r2, [r3]                                      
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
    _Thread_Disable_dispatch();                                       
    memset(                                                           
3000b954:	e59f302c 	ldr	r3, [pc, #44]	; 3000b988 <rtems_io_unregister_driver+0x74>
      &_IO_Driver_address_table[major],                               
3000b958:	e0800080 	add	r0, r0, r0, lsl #1                            
  if ( rtems_interrupt_is_in_progress() )                             
    return RTEMS_CALLED_FROM_ISR;                                     
                                                                      
  if ( major < _IO_Number_of_drivers ) {                              
    _Thread_Disable_dispatch();                                       
    memset(                                                           
3000b95c:	e5933000 	ldr	r3, [r3]                                      
3000b960:	e1a01004 	mov	r1, r4                                        
3000b964:	e3a02018 	mov	r2, #24                                       
3000b968:	e0830180 	add	r0, r3, r0, lsl #3                            
3000b96c:	eb002d70 	bl	30016f34 <memset>                              
      &_IO_Driver_address_table[major],                               
      0,                                                              
      sizeof( rtems_driver_address_table )                            
    );                                                                
    _Thread_Enable_dispatch();                                        
3000b970:	eb000791 	bl	3000d7bc <_Thread_Enable_dispatch>             
                                                                      
    return RTEMS_SUCCESSFUL;                                          
3000b974:	e1a00004 	mov	r0, r4                                        
3000b978:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

30011e10 <rtems_io_write>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
30011e10:	e59fc044 	ldr	ip, [pc, #68]	; 30011e5c <rtems_io_write+0x4c>
rtems_status_code rtems_io_write(                                     
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011e14:	e1a03000 	mov	r3, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011e18:	e59cc000 	ldr	ip, [ip]                                      
rtems_status_code rtems_io_write(                                     
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
30011e1c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011e20:	e15c0000 	cmp	ip, r0                                        
    return RTEMS_INVALID_NUMBER;                                      
30011e24:	93a0000a 	movls	r0, #10                                     
  void                      *argument                                 
)                                                                     
{                                                                     
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
30011e28:	949df004 	popls	{pc}		; (ldrls pc, [sp], #4)                
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].write_entry;              
30011e2c:	e59fc02c 	ldr	ip, [pc, #44]	; 30011e60 <rtems_io_write+0x50>
30011e30:	e0833083 	add	r3, r3, r3, lsl #1                            
30011e34:	e59cc000 	ldr	ip, [ip]                                      
30011e38:	e08c3183 	add	r3, ip, r3, lsl #3                            
30011e3c:	e5933010 	ldr	r3, [r3, #16]                                 
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
30011e40:	e3530000 	cmp	r3, #0                                        
30011e44:	0a000002 	beq	30011e54 <rtems_io_write+0x44>                
30011e48:	e1a0e00f 	mov	lr, pc                                        
30011e4c:	e12fff13 	bx	r3                                             
30011e50:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
30011e54:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
30011e58:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c9ac <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) {
3000c9ac:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
3000c9b0:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
3000c9b4:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    <== NOT EXECUTED
3000c9b8:	e59f7054 	ldr	r7, [pc, #84]	; 3000ca14 <rtems_iterate_over_all_threads+0x68><== NOT EXECUTED
#endif                                                                
                                                                      
#include <rtems/system.h>                                             
#include <rtems/score/thread.h>                                       
                                                                      
void rtems_iterate_over_all_threads(rtems_per_thread_routine routine) 
3000c9bc:	e287800c 	add	r8, r7, #12                                   <== NOT EXECUTED
    #if !defined(RTEMS_POSIX_API) || defined(RTEMS_DEBUG)             
      if ( !_Objects_Information_table[ api_index ] )                 
        continue;                                                     
    #endif                                                            
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
3000c9c0:	e5b73004 	ldr	r3, [r7, #4]!                                 <== NOT EXECUTED
3000c9c4:	e5935004 	ldr	r5, [r3, #4]                                  <== NOT EXECUTED
    if ( !information )                                               
3000c9c8:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000c9cc:	0a00000d 	beq	3000ca08 <rtems_iterate_over_all_threads+0x5c><== NOT EXECUTED
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
3000c9d0:	e1d521b0 	ldrh	r2, [r5, #16]                                <== NOT EXECUTED
3000c9d4:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000c9d8:	0a00000a 	beq	3000ca08 <rtems_iterate_over_all_threads+0x5c><== NOT EXECUTED
3000c9dc:	e3a04001 	mov	r4, #1                                        <== NOT EXECUTED
      the_thread = (Thread_Control *)information->local_table[ i ];   
3000c9e0:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
3000c9e4:	e7930104 	ldr	r0, [r3, r4, lsl #2]                          <== NOT EXECUTED
                                                                      
      if ( !the_thread )                                              
3000c9e8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000c9ec:	0a000002 	beq	3000c9fc <rtems_iterate_over_all_threads+0x50><== NOT EXECUTED
	continue;                                                            
                                                                      
      (*routine)(the_thread);                                         
3000c9f0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000c9f4:	e12fff16 	bx	r6                                             <== NOT EXECUTED
3000c9f8:	e1d521b0 	ldrh	r2, [r5, #16]                                <== NOT EXECUTED
                                                                      
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( !information )                                               
      continue;                                                       
                                                                      
    for ( i=1 ; i <= information->maximum ; i++ ) {                   
3000c9fc:	e2844001 	add	r4, r4, #1                                    <== NOT EXECUTED
3000ca00:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000ca04:	2afffff5 	bcs	3000c9e0 <rtems_iterate_over_all_threads+0x34><== NOT EXECUTED
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
3000ca08:	e1570008 	cmp	r7, r8                                        <== NOT EXECUTED
3000ca0c:	1affffeb 	bne	3000c9c0 <rtems_iterate_over_all_threads+0x14><== NOT EXECUTED
3000ca10:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

30017a90 <rtems_message_queue_broadcast>: rtems_id id, const void *buffer, size_t size, uint32_t *count ) {
30017a90:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  CORE_message_queue_Status       core_status;                        
                                                                      
  if ( !buffer )                                                      
30017a94:	e2516000 	subs	r6, r1, #0                                   
  rtems_id    id,                                                     
  const void *buffer,                                                 
  size_t      size,                                                   
  uint32_t   *count                                                   
)                                                                     
{                                                                     
30017a98:	e24dd00c 	sub	sp, sp, #12                                   
30017a9c:	e1a04000 	mov	r4, r0                                        
30017aa0:	e1a05002 	mov	r5, r2                                        
30017aa4:	e1a07003 	mov	r7, r3                                        
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  CORE_message_queue_Status       core_status;                        
                                                                      
  if ( !buffer )                                                      
30017aa8:	0a000016 	beq	30017b08 <rtems_message_queue_broadcast+0x78> 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
30017aac:	e3530000 	cmp	r3, #0                                        
30017ab0:	0a000014 	beq	30017b08 <rtems_message_queue_broadcast+0x78> 
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
30017ab4:	e59f0054 	ldr	r0, [pc, #84]	; 30017b10 <rtems_message_queue_broadcast+0x80>
30017ab8:	e1a01004 	mov	r1, r4                                        
30017abc:	e28d2008 	add	r2, sp, #8                                    
30017ac0:	eb001523 	bl	3001cf54 <_Objects_Get>                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
30017ac4:	e59d3008 	ldr	r3, [sp, #8]                                  
30017ac8:	e3530000 	cmp	r3, #0                                        
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
30017acc:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
30017ad0:	1a00000a 	bne	30017b00 <rtems_message_queue_broadcast+0x70> 
                                                                      
    case OBJECTS_LOCAL:                                               
      core_status = _CORE_message_queue_Broadcast(                    
30017ad4:	e58d3000 	str	r3, [sp]                                      
30017ad8:	e1a01006 	mov	r1, r6                                        
30017adc:	e1a03004 	mov	r3, r4                                        
30017ae0:	e1a02005 	mov	r2, r5                                        
30017ae4:	e2800014 	add	r0, r0, #20                                   
30017ae8:	e58d7004 	str	r7, [sp, #4]                                  
30017aec:	eb000dd4 	bl	3001b244 <_CORE_message_queue_Broadcast>       
30017af0:	e1a04000 	mov	r4, r0                                        
                        NULL,                                         
                      #endif                                          
                      count                                           
                    );                                                
                                                                      
      _Thread_Enable_dispatch();                                      
30017af4:	eb001872 	bl	3001dcc4 <_Thread_Enable_dispatch>             
      return                                                          
30017af8:	e1a00004 	mov	r0, r4                                        
30017afc:	eb0000d5 	bl	30017e58 <_Message_queue_Translate_core_message_queue_return_code>
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
30017b00:	e28dd00c 	add	sp, sp, #12                                   
30017b04:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
30017b08:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
30017b0c:	eafffffb 	b	30017b00 <rtems_message_queue_broadcast+0x70>   <== NOT EXECUTED
                                                                      

3001204c <rtems_message_queue_create>: uint32_t count, size_t max_message_size, rtems_attribute attribute_set, rtems_id *id ) {
3001204c:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  CORE_message_queue_Attributes   the_msgq_attributes;                
#if defined(RTEMS_MULTIPROCESSING)                                    
  bool                            is_global;                          
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30012050:	e2507000 	subs	r7, r0, #0                                   
  uint32_t         count,                                             
  size_t           max_message_size,                                  
  rtems_attribute  attribute_set,                                     
  rtems_id        *id                                                 
)                                                                     
{                                                                     
30012054:	e24dd008 	sub	sp, sp, #8                                    
30012058:	e1a04001 	mov	r4, r1                                        
3001205c:	e1a06002 	mov	r6, r2                                        
30012060:	e59d5020 	ldr	r5, [sp, #32]                                 
#if defined(RTEMS_MULTIPROCESSING)                                    
  bool                            is_global;                          
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
30012064:	03a00003 	moveq	r0, #3                                      
  CORE_message_queue_Attributes   the_msgq_attributes;                
#if defined(RTEMS_MULTIPROCESSING)                                    
  bool                            is_global;                          
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30012068:	0a000008 	beq	30012090 <rtems_message_queue_create+0x44>    
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
3001206c:	e3550000 	cmp	r5, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
30012070:	03a00009 	moveq	r0, #9                                      
#endif                                                                
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
30012074:	0a000005 	beq	30012090 <rtems_message_queue_create+0x44>    
  if ( (is_global = _Attributes_Is_global( attribute_set ) ) &&       
       !_System_state_Is_multiprocessing )                            
    return RTEMS_MP_NOT_CONFIGURED;                                   
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
30012078:	e3510000 	cmp	r1, #0                                        
      return RTEMS_INVALID_NUMBER;                                    
3001207c:	03a0000a 	moveq	r0, #10                                     
  if ( (is_global = _Attributes_Is_global( attribute_set ) ) &&       
       !_System_state_Is_multiprocessing )                            
    return RTEMS_MP_NOT_CONFIGURED;                                   
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
30012080:	0a000002 	beq	30012090 <rtems_message_queue_create+0x44>    
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  if ( max_message_size == 0 )                                        
30012084:	e3520000 	cmp	r2, #0                                        
      return RTEMS_INVALID_SIZE;                                      
30012088:	03a00008 	moveq	r0, #8                                      
#endif                                                                
                                                                      
  if ( count == 0 )                                                   
      return RTEMS_INVALID_NUMBER;                                    
                                                                      
  if ( max_message_size == 0 )                                        
3001208c:	1a000001 	bne	30012098 <rtems_message_queue_create+0x4c>    
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
30012090:	e28dd008 	add	sp, sp, #8                                    
30012094:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30012098:	e59f2098 	ldr	r2, [pc, #152]	; 30012138 <rtems_message_queue_create+0xec>
3001209c:	e5921000 	ldr	r1, [r2]                                      
300120a0:	e2811001 	add	r1, r1, #1                                    
300120a4:	e5821000 	str	r1, [r2]                                      
#endif                                                                
#endif                                                                
                                                                      
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
300120a8:	e58d3000 	str	r3, [sp]                                      
300120ac:	eb0019d9 	bl	30018818 <_Message_queue_Allocate>             
                                                                      
  if ( !the_message_queue ) {                                         
300120b0:	e2508000 	subs	r8, r0, #0                                   
300120b4:	e59d3000 	ldr	r3, [sp]                                      
300120b8:	0a00001b 	beq	3001212c <rtems_message_queue_create+0xe0>    
  }                                                                   
#endif                                                                
                                                                      
  the_message_queue->attribute_set = attribute_set;                   
                                                                      
  if (_Attributes_Is_priority( attribute_set ) )                      
300120bc:	e2132004 	ands	r2, r3, #4                                   
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_message_queue->attribute_set = attribute_set;                   
300120c0:	e5883010 	str	r3, [r8, #16]                                 
                                                                      
  if (_Attributes_Is_priority( attribute_set ) )                      
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_PRIORITY;
300120c4:	13a03001 	movne	r3, #1                                      
300120c8:	158d3004 	strne	r3, [sp, #4]                                
  else                                                                
    the_msgq_attributes.discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO;
300120cc:	058d2004 	streq	r2, [sp, #4]                                
                                                                      
  if ( ! _CORE_message_queue_Initialize(                              
300120d0:	e2880014 	add	r0, r8, #20                                   
300120d4:	e28d1004 	add	r1, sp, #4                                    
300120d8:	e1a02004 	mov	r2, r4                                        
300120dc:	e1a03006 	mov	r3, r6                                        
300120e0:	eb000487 	bl	30013304 <_CORE_message_queue_Initialize>      
300120e4:	e3500000 	cmp	r0, #0                                        
300120e8:	1a000005 	bne	30012104 <rtems_message_queue_create+0xb8>    
 */                                                                   
RTEMS_INLINE_ROUTINE void _Message_queue_Free (                       
  Message_queue_Control *the_message_queue                            
)                                                                     
{                                                                     
  _Objects_Free( &_Message_queue_Information, &the_message_queue->Object );
300120ec:	e59f0048 	ldr	r0, [pc, #72]	; 3001213c <rtems_message_queue_create+0xf0><== NOT EXECUTED
300120f0:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
300120f4:	eb000872 	bl	300142c4 <_Objects_Free>                       <== NOT EXECUTED
        _Objects_MP_Close(                                            
          &_Message_queue_Information, the_message_queue->Object.id); 
#endif                                                                
                                                                      
    _Message_queue_Free( the_message_queue );                         
    _Thread_Enable_dispatch();                                        
300120f8:	eb000c4c 	bl	30015230 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_UNSATISFIED;                                         
300120fc:	e3a0000d 	mov	r0, #13                                       <== NOT EXECUTED
30012100:	eaffffe2 	b	30012090 <rtems_message_queue_create+0x44>      <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30012104:	e59f2030 	ldr	r2, [pc, #48]	; 3001213c <rtems_message_queue_create+0xf0>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30012108:	e5983008 	ldr	r3, [r8, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3001210c:	e592201c 	ldr	r2, [r2, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30012110:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30012114:	e7828721 	str	r8, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
30012118:	e588700c 	str	r7, [r8, #12]                                 
    &_Message_queue_Information,                                      
    &the_message_queue->Object,                                       
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_message_queue->Object.id;                                 
3001211c:	e5853000 	str	r3, [r5]                                      
      name,                                                           
      0                                                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
30012120:	eb000c42 	bl	30015230 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
30012124:	e3a00000 	mov	r0, #0                                        
30012128:	eaffffd8 	b	30012090 <rtems_message_queue_create+0x44>      
  _Thread_Disable_dispatch();              /* protects object pointer */
                                                                      
  the_message_queue = _Message_queue_Allocate();                      
                                                                      
  if ( !the_message_queue ) {                                         
    _Thread_Enable_dispatch();                                        
3001212c:	eb000c3f 	bl	30015230 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
30012130:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
30012134:	eaffffd5 	b	30012090 <rtems_message_queue_create+0x44>      <== NOT EXECUTED
                                                                      

30017cc4 <rtems_message_queue_get_number_pending>: rtems_status_code rtems_message_queue_get_number_pending( rtems_id id, uint32_t *count ) {
30017cc4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
30017cc8:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_message_queue_get_number_pending(             
  rtems_id  id,                                                       
  uint32_t *count                                                     
)                                                                     
{                                                                     
30017ccc:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30017cd0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
30017cd4:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
                                                                      
  if ( !count )                                                       
30017cd8:	0a00000a 	beq	30017d08 <rtems_message_queue_get_number_pending+0x44><== NOT EXECUTED
30017cdc:	e59f002c 	ldr	r0, [pc, #44]	; 30017d10 <rtems_message_queue_get_number_pending+0x4c><== NOT EXECUTED
30017ce0:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30017ce4:	eb00149a 	bl	3001cf54 <_Objects_Get>                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
30017ce8:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
30017cec:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30017cf0:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( !count )                                                       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
30017cf4:	1a000003 	bne	30017d08 <rtems_message_queue_get_number_pending+0x44><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      *count = the_message_queue->message_queue.number_of_pending_messages;
30017cf8:	e590305c 	ldr	r3, [r0, #92]	; 0x5c                          <== NOT EXECUTED
30017cfc:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30017d00:	eb0017ef 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
30017d04:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30017d08:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30017d0c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

30012174 <rtems_message_queue_receive>: void *buffer, size_t *size, rtems_option option_set, rtems_interval timeout ) {
30012174:	e92d4070 	push	{r4, r5, r6, lr}                             
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  bool                            wait;                               
                                                                      
  if ( !buffer )                                                      
30012178:	e2515000 	subs	r5, r1, #0                                   
  void           *buffer,                                             
  size_t         *size,                                               
  rtems_option    option_set,                                         
  rtems_interval  timeout                                             
)                                                                     
{                                                                     
3001217c:	e24dd00c 	sub	sp, sp, #12                                   
30012180:	e1a01000 	mov	r1, r0                                        
30012184:	e1a04002 	mov	r4, r2                                        
30012188:	e1a06003 	mov	r6, r3                                        
  register Message_queue_Control *the_message_queue;                  
  Objects_Locations               location;                           
  bool                            wait;                               
                                                                      
  if ( !buffer )                                                      
3001218c:	0a000019 	beq	300121f8 <rtems_message_queue_receive+0x84>   
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
30012190:	e3520000 	cmp	r2, #0                                        
30012194:	0a000017 	beq	300121f8 <rtems_message_queue_receive+0x84>   
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Message_queue_Control *)                                    
     _Objects_Get( &_Message_queue_Information, id, location );       
30012198:	e59f0060 	ldr	r0, [pc, #96]	; 30012200 <rtems_message_queue_receive+0x8c>
3001219c:	e28d2008 	add	r2, sp, #8                                    
300121a0:	eb00089e 	bl	30014420 <_Objects_Get>                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
300121a4:	e59d3008 	ldr	r3, [sp, #8]                                  
300121a8:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
300121ac:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_message_queue = _Message_queue_Get( id, &location );            
  switch ( location ) {                                               
300121b0:	1a00000e 	bne	300121f0 <rtems_message_queue_receive+0x7c>   
      if ( _Options_Is_no_wait( option_set ) )                        
        wait = false;                                                 
      else                                                            
        wait = true;                                                  
                                                                      
      _CORE_message_queue_Seize(                                      
300121b4:	e59d301c 	ldr	r3, [sp, #28]                                 
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (                       
  rtems_option option_set                                             
)                                                                     
{                                                                     
   return (option_set & RTEMS_NO_WAIT) ? true : false;                
300121b8:	e2066001 	and	r6, r6, #1                                    
300121bc:	e5901008 	ldr	r1, [r0, #8]                                  
300121c0:	e1a02005 	mov	r2, r5                                        
300121c4:	e2800014 	add	r0, r0, #20                                   
300121c8:	e58d3004 	str	r3, [sp, #4]                                  
300121cc:	e2266001 	eor	r6, r6, #1                                    
300121d0:	e1a03004 	mov	r3, r4                                        
300121d4:	e58d6000 	str	r6, [sp]                                      
300121d8:	eb00047c 	bl	300133d0 <_CORE_message_queue_Seize>           
        buffer,                                                       
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
300121dc:	eb000c13 	bl	30015230 <_Thread_Enable_dispatch>             
      return _Message_queue_Translate_core_message_queue_return_code( 
        _Thread_Executing->Wait.return_code                           
300121e0:	e59f301c 	ldr	r3, [pc, #28]	; 30012204 <rtems_message_queue_receive+0x90>
300121e4:	e5933004 	ldr	r3, [r3, #4]                                  
        size,                                                         
        wait,                                                         
        timeout                                                       
      );                                                              
      _Thread_Enable_dispatch();                                      
      return _Message_queue_Translate_core_message_queue_return_code( 
300121e8:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          
300121ec:	eb000024 	bl	30012284 <_Message_queue_Translate_core_message_queue_return_code>
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
300121f0:	e28dd00c 	add	sp, sp, #12                                   
300121f4:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      
  if ( !buffer )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
300121f8:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
300121fc:	eafffffb 	b	300121f0 <rtems_message_queue_receive+0x7c>     <== NOT EXECUTED
                                                                      

30009e40 <rtems_object_api_maximum_class>: int rtems_object_api_maximum_class( int api ) { return _Objects_API_maximum_class(api);
30009e40:	ea0005bb 	b	3000b534 <_Objects_API_maximum_class>           <== NOT EXECUTED
                                                                      

30009e44 <rtems_object_api_minimum_class>: */ RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid( uint32_t the_api ) { if ( !the_api || the_api > OBJECTS_APIS_LAST )
30009e44:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
  uint32_t api                                                        
)                                                                     
{                                                                     
  if ( _Objects_Is_api_valid( api ) )                                 
    return 1;                                                         
  return -1;                                                          
30009e48:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
}                                                                     
30009e4c:	33a00001 	movcc	r0, #1                                      <== NOT EXECUTED
30009e50:	23e00000 	mvncs	r0, #0                                      <== NOT EXECUTED
30009e54:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30009e58 <rtems_object_get_api_class_name>: ) { const rtems_assoc_t *api_assoc; const rtems_assoc_t *class_assoc; if ( the_api == OBJECTS_INTERNAL_API )
30009e58:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
                                                                      
const char *rtems_object_get_api_class_name(                          
  int the_api,                                                        
  int the_class                                                       
)                                                                     
{                                                                     
30009e5c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  const rtems_assoc_t *api_assoc;                                     
  const rtems_assoc_t *class_assoc;                                   
                                                                      
  if ( the_api == OBJECTS_INTERNAL_API )                              
30009e60:	0a00000d 	beq	30009e9c <rtems_object_get_api_class_name+0x44><== NOT EXECUTED
    api_assoc = rtems_object_api_internal_assoc;                      
  else if ( the_api == OBJECTS_CLASSIC_API )                          
30009e64:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
30009e68:	0a000004 	beq	30009e80 <rtems_object_get_api_class_name+0x28><== NOT EXECUTED
    api_assoc = rtems_object_api_classic_assoc;                       
#ifdef RTEMS_POSIX_API                                                
  else if ( the_api == OBJECTS_POSIX_API )                            
30009e6c:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
    api_assoc = rtems_object_api_posix_assoc;                         
30009e70:	059f003c 	ldreq	r0, [pc, #60]	; 30009eb4 <rtems_object_get_api_class_name+0x5c><== NOT EXECUTED
  if ( the_api == OBJECTS_INTERNAL_API )                              
    api_assoc = rtems_object_api_internal_assoc;                      
  else if ( the_api == OBJECTS_CLASSIC_API )                          
    api_assoc = rtems_object_api_classic_assoc;                       
#ifdef RTEMS_POSIX_API                                                
  else if ( the_api == OBJECTS_POSIX_API )                            
30009e74:	0a000002 	beq	30009e84 <rtems_object_get_api_class_name+0x2c><== NOT EXECUTED
    api_assoc = rtems_object_api_posix_assoc;                         
#endif                                                                
  else                                                                
    return "BAD API";                                                 
30009e78:	e59f0038 	ldr	r0, [pc, #56]	; 30009eb8 <rtems_object_get_api_class_name+0x60><== NOT EXECUTED
30009e7c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
  const rtems_assoc_t *class_assoc;                                   
                                                                      
  if ( the_api == OBJECTS_INTERNAL_API )                              
    api_assoc = rtems_object_api_internal_assoc;                      
  else if ( the_api == OBJECTS_CLASSIC_API )                          
    api_assoc = rtems_object_api_classic_assoc;                       
30009e80:	e59f0034 	ldr	r0, [pc, #52]	; 30009ebc <rtems_object_get_api_class_name+0x64><== NOT EXECUTED
  else if ( the_api == OBJECTS_POSIX_API )                            
    api_assoc = rtems_object_api_posix_assoc;                         
#endif                                                                
  else                                                                
    return "BAD API";                                                 
  class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class );     
30009e84:	eb0013b2 	bl	3000ed54 <rtems_assoc_ptr_by_local>            <== NOT EXECUTED
  if ( class_assoc )                                                  
30009e88:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return class_assoc->name;                                         
30009e8c:	15900000 	ldrne	r0, [r0]                                    <== NOT EXECUTED
    api_assoc = rtems_object_api_posix_assoc;                         
#endif                                                                
  else                                                                
    return "BAD API";                                                 
  class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class );     
  if ( class_assoc )                                                  
30009e90:	149df004 	popne	{pc}		; (ldrne pc, [sp], #4)                <== NOT EXECUTED
    return class_assoc->name;                                         
  return "BAD CLASS";                                                 
30009e94:	e59f0024 	ldr	r0, [pc, #36]	; 30009ec0 <rtems_object_get_api_class_name+0x68><== NOT EXECUTED
}                                                                     
30009e98:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
{                                                                     
  const rtems_assoc_t *api_assoc;                                     
  const rtems_assoc_t *class_assoc;                                   
                                                                      
  if ( the_api == OBJECTS_INTERNAL_API )                              
    api_assoc = rtems_object_api_internal_assoc;                      
30009e9c:	e59f0020 	ldr	r0, [pc, #32]	; 30009ec4 <rtems_object_get_api_class_name+0x6c><== NOT EXECUTED
  else if ( the_api == OBJECTS_POSIX_API )                            
    api_assoc = rtems_object_api_posix_assoc;                         
#endif                                                                
  else                                                                
    return "BAD API";                                                 
  class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class );     
30009ea0:	eb0013ab 	bl	3000ed54 <rtems_assoc_ptr_by_local>            <== NOT EXECUTED
  if ( class_assoc )                                                  
30009ea4:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return class_assoc->name;                                         
30009ea8:	15900000 	ldrne	r0, [r0]                                    <== NOT EXECUTED
    api_assoc = rtems_object_api_posix_assoc;                         
#endif                                                                
  else                                                                
    return "BAD API";                                                 
  class_assoc = rtems_assoc_ptr_by_local( api_assoc, the_class );     
  if ( class_assoc )                                                  
30009eac:	149df004 	popne	{pc}		; (ldrne pc, [sp], #4)                <== NOT EXECUTED
30009eb0:	eafffff7 	b	30009e94 <rtems_object_get_api_class_name+0x3c> <== NOT EXECUTED
                                                                      

30009ec8 <rtems_object_get_api_name>: }; const char *rtems_object_get_api_name( int api ) {
30009ec8:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
30009ecc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  const rtems_assoc_t *api_assoc;                                     
                                                                      
  api_assoc = rtems_assoc_ptr_by_local( rtems_objects_api_assoc, api );
30009ed0:	e59f0010 	ldr	r0, [pc, #16]	; 30009ee8 <rtems_object_get_api_name+0x20><== NOT EXECUTED
30009ed4:	eb00139e 	bl	3000ed54 <rtems_assoc_ptr_by_local>            <== NOT EXECUTED
  if ( api_assoc )                                                    
30009ed8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
    return api_assoc->name;                                           
30009edc:	15900000 	ldrne	r0, [r0]                                    <== NOT EXECUTED
  return "BAD CLASS";                                                 
30009ee0:	059f0004 	ldreq	r0, [pc, #4]	; 30009eec <rtems_object_get_api_name+0x24><== NOT EXECUTED
}                                                                     
30009ee4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000bb04 <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 ) {
3000bb04:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  int                  i;                                             
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
3000bb08:	e2524000 	subs	r4, r2, #0                                   <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
3000bb0c:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  int                  i;                                             
                                                                      
  /*                                                                  
   * Validate parameters and look up information structure.           
   */                                                                 
  if ( !info )                                                        
3000bb10:	08bd8010 	popeq	{r4, pc}                                    <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  obj_info = _Objects_Get_information( the_api, the_class );          
3000bb14:	e1a01801 	lsl	r1, r1, #16                                   <== NOT EXECUTED
3000bb18:	e1a01821 	lsr	r1, r1, #16                                   <== NOT EXECUTED
3000bb1c:	eb0006ec 	bl	3000d6d4 <_Objects_Get_information>            <== NOT EXECUTED
  if ( !obj_info )                                                    
3000bb20:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000bb24:	0a000018 	beq	3000bb8c <rtems_object_get_class_information+0x88><== NOT EXECUTED
   * Return information about this object class to the user.          
   */                                                                 
  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;                              
3000bb28:	e1d011b0 	ldrh	r1, [r0, #16]                                <== NOT EXECUTED
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  /*                                                                  
   * Return information about this object class to the user.          
   */                                                                 
  info->minimum_id  = obj_info->minimum_id;                           
3000bb2c:	e590c008 	ldr	ip, [r0, #8]                                  <== NOT EXECUTED
  info->maximum_id  = obj_info->maximum_id;                           
3000bb30:	e590200c 	ldr	r2, [r0, #12]                                 <== NOT EXECUTED
  info->auto_extend = obj_info->auto_extend;                          
3000bb34:	e5d03012 	ldrb	r3, [r0, #18]                                <== NOT EXECUTED
  info->maximum     = obj_info->maximum;                              
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
3000bb38:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  /*                                                                  
   * Return information about this object class to the user.          
   */                                                                 
  info->minimum_id  = obj_info->minimum_id;                           
3000bb3c:	e584c000 	str	ip, [r4]                                      <== NOT EXECUTED
  info->maximum_id  = obj_info->maximum_id;                           
3000bb40:	e5842004 	str	r2, [r4, #4]                                  <== NOT EXECUTED
  info->auto_extend = obj_info->auto_extend;                          
3000bb44:	e5c4300c 	strb	r3, [r4, #12]                                <== NOT EXECUTED
  info->maximum     = obj_info->maximum;                              
3000bb48:	e5841008 	str	r1, [r4, #8]                                  <== NOT EXECUTED
                                                                      
  for ( unallocated=0, i=1 ; i <= info->maximum ; i++ )               
3000bb4c:	01a0c001 	moveq	ip, r1                                      <== NOT EXECUTED
3000bb50:	0a00000a 	beq	3000bb80 <rtems_object_get_class_information+0x7c><== NOT EXECUTED
3000bb54:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
3000bb58:	e590001c 	ldr	r0, [r0, #28]                                 <== NOT EXECUTED
3000bb5c:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
3000bb60:	e3a0c000 	mov	ip, #0                                        <== NOT EXECUTED
    if ( !obj_info->local_table[i] )                                  
3000bb64:	e7902102 	ldr	r2, [r0, r2, lsl #2]                          <== NOT EXECUTED
  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++ )               
3000bb68:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
    if ( !obj_info->local_table[i] )                                  
3000bb6c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
      unallocated++;                                                  
3000bb70:	028cc001 	addeq	ip, ip, #1                                  <== NOT EXECUTED
  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++ )               
3000bb74:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
3000bb78:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
3000bb7c:	2afffff8 	bcs	3000bb64 <rtems_object_get_class_information+0x60><== NOT EXECUTED
    if ( !obj_info->local_table[i] )                                  
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
3000bb80:	e584c010 	str	ip, [r4, #16]                                 <== NOT EXECUTED
                                                                      
  return RTEMS_SUCCESSFUL;                                            
3000bb84:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000bb88:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  if ( !info )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  obj_info = _Objects_Get_information( the_api, the_class );          
  if ( !obj_info )                                                    
    return RTEMS_INVALID_NUMBER;                                      
3000bb8c:	e3a0000a 	mov	r0, #10                                       <== NOT EXECUTED
      unallocated++;                                                  
                                                                      
  info->unallocated = unallocated;                                    
                                                                      
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000bb90:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000ae28 <rtems_object_get_classic_name>: rtems_status_code rtems_object_get_classic_name( rtems_id id, rtems_name *name ) {
3000ae28:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
3000ae2c:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_object_get_classic_name(                      
  rtems_id      id,                                                   
  rtems_name   *name                                                  
)                                                                     
{                                                                     
3000ae30:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000ae34:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  Objects_Name_or_id_lookup_errors  status;                           
  Objects_Name                      name_u;                           
                                                                      
  if ( !name )                                                        
3000ae38:	0a000005 	beq	3000ae54 <rtems_object_get_classic_name+0x2c> <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  status = _Objects_Id_to_name( id, &name_u );                        
3000ae3c:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000ae40:	eb000719 	bl	3000caac <_Objects_Id_to_name>                 <== NOT EXECUTED
                                                                      
  *name = name_u.name_u32;                                            
3000ae44:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000ae48:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
  return _Status_Object_name_errors_to_status[ status ];              
3000ae4c:	e59f3008 	ldr	r3, [pc, #8]	; 3000ae5c <rtems_object_get_classic_name+0x34><== NOT EXECUTED
3000ae50:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          <== NOT EXECUTED
}                                                                     
3000ae54:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000ae58:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000b040 <rtems_object_get_name>: Objects_Id id, size_t length, char *name ) { return _Objects_Get_name_as_string( id, length, name );
3000b040:	ea0007a5 	b	3000cedc <_Objects_Get_name_as_string>          <== NOT EXECUTED
                                                                      

3000bb98 <rtems_object_id_api_maximum>: #undef rtems_object_id_api_maximum int rtems_object_id_api_maximum(void) { return OBJECTS_APIS_LAST; }
3000bb98:	e3a00003 	mov	r0, #3                                        <== NOT EXECUTED
3000bb9c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bba0 <rtems_object_id_api_minimum>: #undef rtems_object_id_api_minimum int rtems_object_id_api_minimum(void) { return OBJECTS_INTERNAL_API; }
3000bba0:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000bba4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bba8 <rtems_object_id_get_api>: */ RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API( Objects_Id id ) { return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
3000bba8:	e1a00c20 	lsr	r0, r0, #24                                   <== NOT EXECUTED
int rtems_object_id_get_api(                                          
  rtems_id id                                                         
)                                                                     
{                                                                     
  return _Objects_Get_API( id );                                      
}                                                                     
3000bbac:	e2000007 	and	r0, r0, #7                                    <== NOT EXECUTED
3000bbb0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bbb4 <rtems_object_id_get_class>: int rtems_object_id_get_class( rtems_id id ) { return _Objects_Get_class( id ); }
3000bbb4:	e1a00da0 	lsr	r0, r0, #27                                   <== NOT EXECUTED
3000bbb8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bbbc <rtems_object_id_get_index>: #undef rtems_object_id_get_index int rtems_object_id_get_index( rtems_id id ) { return _Objects_Get_index( id );
3000bbbc:	e1a00800 	lsl	r0, r0, #16                                   <== NOT EXECUTED
}                                                                     
3000bbc0:	e1a00820 	lsr	r0, r0, #16                                   <== NOT EXECUTED
3000bbc4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

3000bbc8 <rtems_object_id_get_node>: * be a single processor system. */ #if defined(RTEMS_USE_16_BIT_OBJECT) return 1; #else return (id >> OBJECTS_NODE_START_BIT) & OBJECTS_NODE_VALID_BITS;
3000bbc8:	e1a00820 	lsr	r0, r0, #16                                   <== NOT EXECUTED
int rtems_object_id_get_node(                                         
  rtems_id id                                                         
)                                                                     
{                                                                     
  return _Objects_Get_node( id );                                     
}                                                                     
3000bbcc:	e20000ff 	and	r0, r0, #255	; 0xff                           <== NOT EXECUTED
3000bbd0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30009ef4 <rtems_object_set_name>: */ rtems_status_code rtems_object_set_name( rtems_id id, const char *name ) {
30009ef4:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  Objects_Information *information;                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
30009ef8:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
 */                                                                   
rtems_status_code rtems_object_set_name(                              
  rtems_id       id,                                                  
  const char    *name                                                 
)                                                                     
{                                                                     
30009efc:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
30009f00:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  Objects_Information *information;                                   
  Objects_Locations    location;                                      
  Objects_Control     *the_object;                                    
  Objects_Id           tmpId;                                         
                                                                      
  if ( !name )                                                        
30009f04:	0a000010 	beq	30009f4c <rtems_object_set_name+0x58>         <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
30009f08:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009f0c:	059f3058 	ldreq	r3, [pc, #88]	; 30009f6c <rtems_object_set_name+0x78><== NOT EXECUTED
30009f10:	11a04000 	movne	r4, r0                                      <== NOT EXECUTED
30009f14:	05933004 	ldreq	r3, [r3, #4]                                <== NOT EXECUTED
30009f18:	05934008 	ldreq	r4, [r3, #8]                                <== NOT EXECUTED
                                                                      
  information  = _Objects_Get_information_id( tmpId );                
30009f1c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009f20:	eb00065c 	bl	3000b898 <_Objects_Get_information_id>         <== NOT EXECUTED
  if ( !information )                                                 
30009f24:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
30009f28:	0a000006 	beq	30009f48 <rtems_object_set_name+0x54>         <== NOT EXECUTED
    return RTEMS_INVALID_ID;                                          
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
30009f2c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
30009f30:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30009f34:	eb0006dc 	bl	3000baac <_Objects_Get>                        <== NOT EXECUTED
  switch ( location ) {                                               
30009f38:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
                                                                      
  information  = _Objects_Get_information_id( tmpId );                
  if ( !information )                                                 
    return RTEMS_INVALID_ID;                                          
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
30009f3c:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
30009f40:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
30009f44:	0a000002 	beq	30009f54 <rtems_object_set_name+0x60>         <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30009f48:	e3a00004 	mov	r0, #4                                        <== NOT EXECUTED
}                                                                     
30009f4c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30009f50:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Set_name( information, the_object, name );             
30009f54:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
30009f58:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30009f5c:	eb000732 	bl	3000bc2c <_Objects_Set_name>                   <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
30009f60:	eb000a40 	bl	3000c868 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
30009f64:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
30009f68:	eafffff7 	b	30009f4c <rtems_object_set_name+0x58>           <== NOT EXECUTED
                                                                      

30017ee4 <rtems_partition_create>: uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set, rtems_id *id ) {
30017ee4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30017ee8:	e2506000 	subs	r6, r0, #0                                   
  uint32_t         length,                                            
  uint32_t         buffer_size,                                       
  rtems_attribute  attribute_set,                                     
  rtems_id        *id                                                 
)                                                                     
{                                                                     
30017eec:	e24dd008 	sub	sp, sp, #8                                    
30017ef0:	e1a04001 	mov	r4, r1                                        
30017ef4:	e59d502c 	ldr	r5, [sp, #44]	; 0x2c                          
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
30017ef8:	03a00003 	moveq	r0, #3                                      
  rtems_id        *id                                                 
)                                                                     
{                                                                     
  register Partition_Control *the_partition;                          
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30017efc:	0a000031 	beq	30017fc8 <rtems_partition_create+0xe4>        
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
30017f00:	e3510000 	cmp	r1, #0                                        
30017f04:	0a000033 	beq	30017fd8 <rtems_partition_create+0xf4>        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
30017f08:	e3550000 	cmp	r5, #0                                        
30017f0c:	0a000031 	beq	30017fd8 <rtems_partition_create+0xf4>        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( length == 0 || buffer_size == 0 || length < buffer_size ||     
30017f10:	e3520000 	cmp	r2, #0                                        
30017f14:	13530000 	cmpne	r3, #0                                      
30017f18:	0a00002c 	beq	30017fd0 <rtems_partition_create+0xec>        
30017f1c:	e1520003 	cmp	r2, r3                                        
30017f20:	3a00002a 	bcc	30017fd0 <rtems_partition_create+0xec>        
30017f24:	e3130007 	tst	r3, #7                                        
30017f28:	1a000028 	bne	30017fd0 <rtems_partition_create+0xec>        
         !_Partition_Is_buffer_size_aligned( buffer_size ) )          
    return RTEMS_INVALID_SIZE;                                        
                                                                      
  if ( !_Addresses_Is_aligned( starting_address ) )                   
30017f2c:	e2118007 	ands	r8, r1, #7                                   
30017f30:	1a000028 	bne	30017fd8 <rtems_partition_create+0xf4>        
30017f34:	e59f10b0 	ldr	r1, [pc, #176]	; 30017fec <rtems_partition_create+0x108>
30017f38:	e5910000 	ldr	r0, [r1]                                      
30017f3c:	e2800001 	add	r0, r0, #1                                    
30017f40:	e5810000 	str	r0, [r1]                                      
 *  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 );
30017f44:	e59fa0a4 	ldr	sl, [pc, #164]	; 30017ff0 <rtems_partition_create+0x10c>
30017f48:	e58d2004 	str	r2, [sp, #4]                                  
30017f4c:	e1a0000a 	mov	r0, sl                                        
30017f50:	e58d3000 	str	r3, [sp]                                      
30017f54:	eb0012bd 	bl	3001ca50 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
30017f58:	e2507000 	subs	r7, r0, #0                                   
30017f5c:	e59d2004 	ldr	r2, [sp, #4]                                  
30017f60:	e59d3000 	ldr	r3, [sp]                                      
30017f64:	0a00001d 	beq	30017fe0 <rtems_partition_create+0xfc>        
#endif                                                                
                                                                      
  the_partition->starting_address      = starting_address;            
  the_partition->length                = length;                      
  the_partition->buffer_size           = buffer_size;                 
  the_partition->attribute_set         = attribute_set;               
30017f68:	e59d1028 	ldr	r1, [sp, #40]	; 0x28                          
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_partition->starting_address      = starting_address;            
  the_partition->length                = length;                      
30017f6c:	e5872014 	str	r2, [r7, #20]                                 
  the_partition->buffer_size           = buffer_size;                 
30017f70:	e5873018 	str	r3, [r7, #24]                                 
  the_partition->attribute_set         = attribute_set;               
30017f74:	e587101c 	str	r1, [r7, #28]                                 
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_partition->starting_address      = starting_address;            
30017f78:	e5874010 	str	r4, [r7, #16]                                 
  the_partition->length                = length;                      
  the_partition->buffer_size           = buffer_size;                 
  the_partition->attribute_set         = attribute_set;               
  the_partition->number_of_used_blocks = 0;                           
                                                                      
  _Chain_Initialize( &the_partition->Memory, starting_address,        
30017f7c:	e1a01003 	mov	r1, r3                                        
                                                                      
  the_partition->starting_address      = starting_address;            
  the_partition->length                = length;                      
  the_partition->buffer_size           = buffer_size;                 
  the_partition->attribute_set         = attribute_set;               
  the_partition->number_of_used_blocks = 0;                           
30017f80:	e5878020 	str	r8, [r7, #32]                                 
                                                                      
  _Chain_Initialize( &the_partition->Memory, starting_address,        
30017f84:	e1a00002 	mov	r0, r2                                        
30017f88:	e58d3000 	str	r3, [sp]                                      
30017f8c:	eb006480 	bl	30031194 <__aeabi_uidiv>                       
30017f90:	e2879024 	add	r9, r7, #36	; 0x24                            
30017f94:	e1a02000 	mov	r2, r0                                        
30017f98:	e1a01004 	mov	r1, r4                                        
30017f9c:	e1a00009 	mov	r0, r9                                        
30017fa0:	e59d3000 	ldr	r3, [sp]                                      
30017fa4:	eb000c8d 	bl	3001b1e0 <_Chain_Initialize>                   
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30017fa8:	e5973008 	ldr	r3, [r7, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30017fac:	e59a201c 	ldr	r2, [sl, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30017fb0:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30017fb4:	e7827721 	str	r7, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
30017fb8:	e587600c 	str	r6, [r7, #12]                                 
    &_Partition_Information,                                          
    &the_partition->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_partition->Object.id;                                     
30017fbc:	e5853000 	str	r3, [r5]                                      
      name,                                                           
      0                  /* Not used */                               
    );                                                                
#endif                                                                
                                                                      
  _Thread_Enable_dispatch();                                          
30017fc0:	eb00173f 	bl	3001dcc4 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
30017fc4:	e1a00008 	mov	r0, r8                                        
}                                                                     
30017fc8:	e28dd008 	add	sp, sp, #8                                    
30017fcc:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
  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;                                        
30017fd0:	e3a00008 	mov	r0, #8                                        <== NOT EXECUTED
30017fd4:	eafffffb 	b	30017fc8 <rtems_partition_create+0xe4>          <== NOT EXECUTED
                                                                      
  if ( !_Addresses_Is_aligned( starting_address ) )                   
     return RTEMS_INVALID_ADDRESS;                                    
30017fd8:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
30017fdc:	eafffff9 	b	30017fc8 <rtems_partition_create+0xe4>          <== NOT EXECUTED
  _Thread_Disable_dispatch();               /* prevents deletion */   
                                                                      
  the_partition = _Partition_Allocate();                              
                                                                      
  if ( !the_partition ) {                                             
    _Thread_Enable_dispatch();                                        
30017fe0:	eb001737 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
30017fe4:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
30017fe8:	eafffff6 	b	30017fc8 <rtems_partition_create+0xe4>          <== NOT EXECUTED
                                                                      

30017ff4 <rtems_partition_delete>: */ rtems_status_code rtems_partition_delete( rtems_id id ) {
30017ff4:	e92d4030 	push	{r4, r5, lr}                                 
30017ff8:	e24dd004 	sub	sp, sp, #4                                    
30017ffc:	e1a01000 	mov	r1, r0                                        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
30018000:	e1a0200d 	mov	r2, sp                                        
30018004:	e59f0054 	ldr	r0, [pc, #84]	; 30018060 <rtems_partition_delete+0x6c>
30018008:	eb0013d1 	bl	3001cf54 <_Objects_Get>                        
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
3001800c:	e59d3000 	ldr	r3, [sp]                                      
30018010:	e1a04000 	mov	r4, r0                                        
30018014:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30018018:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
3001801c:	1a000004 	bne	30018034 <rtems_partition_delete+0x40>        
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_partition->number_of_used_blocks == 0 ) {              
30018020:	e5945020 	ldr	r5, [r4, #32]                                 
30018024:	e3550000 	cmp	r5, #0                                        
30018028:	0a000003 	beq	3001803c <rtems_partition_delete+0x48>        
#endif                                                                
                                                                      
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
3001802c:	eb001724 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_RESOURCE_IN_USE;                                   
30018030:	e3a0000c 	mov	r0, #12                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30018034:	e28dd004 	add	sp, sp, #4                                    
30018038:	e8bd8030 	pop	{r4, r5, pc}                                  
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_partition->number_of_used_blocks == 0 ) {              
        _Objects_Close( &_Partition_Information, &the_partition->Object );
3001803c:	e1a01004 	mov	r1, r4                                        
30018040:	e59f0018 	ldr	r0, [pc, #24]	; 30018060 <rtems_partition_delete+0x6c>
30018044:	eb0012a6 	bl	3001cae4 <_Objects_Close>                      
 */                                                                   
RTEMS_INLINE_ROUTINE void _Partition_Free (                           
   Partition_Control *the_partition                                   
)                                                                     
{                                                                     
  _Objects_Free( &_Partition_Information, &the_partition->Object );   
30018048:	e59f0010 	ldr	r0, [pc, #16]	; 30018060 <rtems_partition_delete+0x6c>
3001804c:	e1a01004 	mov	r1, r4                                        
30018050:	eb001358 	bl	3001cdb8 <_Objects_Free>                       
            0                          /* Not used */                 
          );                                                          
        }                                                             
#endif                                                                
                                                                      
        _Thread_Enable_dispatch();                                    
30018054:	eb00171a 	bl	3001dcc4 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
30018058:	e1a00005 	mov	r0, r5                                        
3001805c:	eafffff4 	b	30018034 <rtems_partition_delete+0x40>          
                                                                      

30018110 <rtems_partition_return_buffer>: rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer ) {
30018110:	e92d4070 	push	{r4, r5, r6, lr}                             
30018114:	e1a03000 	mov	r3, r0                                        
30018118:	e24dd004 	sub	sp, sp, #4                                    
3001811c:	e1a04001 	mov	r4, r1                                        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Partition_Control *)                                        
    _Objects_Get( &_Partition_Information, id, location );            
30018120:	e59f008c 	ldr	r0, [pc, #140]	; 300181b4 <rtems_partition_return_buffer+0xa4>
30018124:	e1a01003 	mov	r1, r3                                        
30018128:	e1a0200d 	mov	r2, sp                                        
3001812c:	eb001388 	bl	3001cf54 <_Objects_Get>                        
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
30018130:	e59d3000 	ldr	r3, [sp]                                      
30018134:	e1a05000 	mov	r5, r0                                        
30018138:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001813c:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Partition_Control *the_partition;                          
  Objects_Locations           location;                               
                                                                      
  the_partition = _Partition_Get( id, &location );                    
  switch ( location ) {                                               
30018140:	1a000016 	bne	300181a0 <rtems_partition_return_buffer+0x90> 
)                                                                     
{                                                                     
  void *starting;                                                     
  void *ending;                                                       
                                                                      
  starting = the_partition->starting_address;                         
30018144:	e5950010 	ldr	r0, [r5, #16]                                 
30018148:	e5953014 	ldr	r3, [r5, #20]                                 
3001814c:	e0803003 	add	r3, r0, r3                                    
  const void *address,                                                
  const void *base,                                                   
  const void *limit                                                   
)                                                                     
{                                                                     
  return (address >= base && address <= limit);                       
30018150:	e1540003 	cmp	r4, r3                                        
30018154:	83a03000 	movhi	r3, #0                                      
30018158:	93a03001 	movls	r3, #1                                      
3001815c:	e1540000 	cmp	r4, r0                                        
30018160:	33a03000 	movcc	r3, #0                                      
  ending   = _Addresses_Add_offset( starting, the_partition->length );
                                                                      
  return (                                                            
    _Addresses_Is_in_range( the_buffer, starting, ending ) &&         
30018164:	e3530000 	cmp	r3, #0                                        
30018168:	0a00000e 	beq	300181a8 <rtems_partition_return_buffer+0x98> 
  offset = (uint32_t) _Addresses_Subtract(                            
    the_buffer,                                                       
    the_partition->starting_address                                   
  );                                                                  
                                                                      
  return ((offset % the_partition->buffer_size) == 0);                
3001816c:	e0600004 	rsb	r0, r0, r4                                    
30018170:	e5951018 	ldr	r1, [r5, #24]                                 
30018174:	eb00644c 	bl	300312ac <__umodsi3>                           
                                                                      
  starting = the_partition->starting_address;                         
  ending   = _Addresses_Add_offset( starting, the_partition->length );
                                                                      
  return (                                                            
    _Addresses_Is_in_range( the_buffer, starting, ending ) &&         
30018178:	e2506000 	subs	r6, r0, #0                                   
3001817c:	1a000009 	bne	300181a8 <rtems_partition_return_buffer+0x98> 
RTEMS_INLINE_ROUTINE void _Partition_Free_buffer (                    
  Partition_Control *the_partition,                                   
  Chain_Node        *the_buffer                                       
)                                                                     
{                                                                     
  _Chain_Append( &the_partition->Memory, the_buffer );                
30018180:	e2850024 	add	r0, r5, #36	; 0x24                            
30018184:	e1a01004 	mov	r1, r4                                        
30018188:	eb000bf4 	bl	3001b160 <_Chain_Append>                       
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Partition_Is_buffer_valid( buffer, the_partition ) ) {    
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
3001818c:	e5953020 	ldr	r3, [r5, #32]                                 
30018190:	e2433001 	sub	r3, r3, #1                                    
30018194:	e5853020 	str	r3, [r5, #32]                                 
        _Thread_Enable_dispatch();                                    
30018198:	eb0016c9 	bl	3001dcc4 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3001819c:	e1a00006 	mov	r0, r6                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
300181a0:	e28dd004 	add	sp, sp, #4                                    
300181a4:	e8bd8070 	pop	{r4, r5, r6, pc}                              
        _Partition_Free_buffer( the_partition, buffer );              
        the_partition->number_of_used_blocks -= 1;                    
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
300181a8:	eb0016c5 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INVALID_ADDRESS;                                   
300181ac:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
300181b0:	eafffffa 	b	300181a0 <rtems_partition_return_buffer+0x90>   <== NOT EXECUTED
                                                                      

300174d4 <rtems_port_create>: void *internal_start, void *external_start, uint32_t length, rtems_id *id ) {
300174d4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
300174d8:	e2504000 	subs	r4, r0, #0                                   
  void         *internal_start,                                       
  void         *external_start,                                       
  uint32_t      length,                                               
  rtems_id     *id                                                    
)                                                                     
{                                                                     
300174dc:	e24dd00c 	sub	sp, sp, #12                                   
300174e0:	e59d5020 	ldr	r5, [sp, #32]                                 
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
300174e4:	03a00003 	moveq	r0, #3                                      
  rtems_id     *id                                                    
)                                                                     
{                                                                     
  register Dual_ported_memory_Control *the_port;                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
300174e8:	0a000005 	beq	30017504 <rtems_port_create+0x30>             
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
300174ec:	e3550000 	cmp	r5, #0                                        
300174f0:	0a000002 	beq	30017500 <rtems_port_create+0x2c>             
 *    id       - port id                                              
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code - if unsuccessful                                    
 */                                                                   
                                                                      
rtems_status_code rtems_port_create(                                  
300174f4:	e1826001 	orr	r6, r2, r1                                    
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_Addresses_Is_aligned( internal_start ) ||                    
300174f8:	e2166007 	ands	r6, r6, #7                                   
300174fc:	0a000002 	beq	3001750c <rtems_port_create+0x38>             
       !_Addresses_Is_aligned( external_start ) )                     
    return RTEMS_INVALID_ADDRESS;                                     
30017500:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
30017504:	e28dd00c 	add	sp, sp, #12                                   
30017508:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3001750c:	e59f0074 	ldr	r0, [pc, #116]	; 30017588 <rtems_port_create+0xb4>
30017510:	e590c000 	ldr	ip, [r0]                                      
30017514:	e28cc001 	add	ip, ip, #1                                    
30017518:	e580c000 	str	ip, [r0]                                      
 */                                                                   
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control                       
   *_Dual_ported_memory_Allocate ( void )                             
{                                                                     
  return (Dual_ported_memory_Control *)                               
     _Objects_Allocate( &_Dual_ported_memory_Information );           
3001751c:	e59f7068 	ldr	r7, [pc, #104]	; 3001758c <rtems_port_create+0xb8>
30017520:	e58d1008 	str	r1, [sp, #8]                                  
30017524:	e1a00007 	mov	r0, r7                                        
30017528:	e58d2004 	str	r2, [sp, #4]                                  
3001752c:	e58d3000 	str	r3, [sp]                                      
30017530:	eb001546 	bl	3001ca50 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();             /* to prevent deletion */   
                                                                      
  the_port = _Dual_ported_memory_Allocate();                          
                                                                      
  if ( !the_port ) {                                                  
30017534:	e3500000 	cmp	r0, #0                                        
30017538:	e59d1008 	ldr	r1, [sp, #8]                                  
3001753c:	e59d2004 	ldr	r2, [sp, #4]                                  
30017540:	e59d3000 	ldr	r3, [sp]                                      
30017544:	0a00000c 	beq	3001757c <rtems_port_create+0xa8>             
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30017548:	e590c008 	ldr	ip, [r0, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3001754c:	e597e01c 	ldr	lr, [r7, #28]                                 
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_port->internal_base = internal_start;                           
  the_port->external_base = external_start;                           
  the_port->length        = length - 1;                               
30017550:	e2433001 	sub	r3, r3, #1                                    
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30017554:	e1a0780c 	lsl	r7, ip, #16                                   
  if ( !the_port ) {                                                  
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_port->internal_base = internal_start;                           
30017558:	e5801010 	str	r1, [r0, #16]                                 
  the_port->external_base = external_start;                           
3001755c:	e5802014 	str	r2, [r0, #20]                                 
  the_port->length        = length - 1;                               
30017560:	e5803018 	str	r3, [r0, #24]                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30017564:	e78e0727 	str	r0, [lr, r7, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
30017568:	e580400c 	str	r4, [r0, #12]                                 
    &_Dual_ported_memory_Information,                                 
    &the_port->Object,                                                
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_port->Object.id;                                          
3001756c:	e585c000 	str	ip, [r5]                                      
  _Thread_Enable_dispatch();                                          
30017570:	eb0019d3 	bl	3001dcc4 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
30017574:	e1a00006 	mov	r0, r6                                        
30017578:	eaffffe1 	b	30017504 <rtems_port_create+0x30>               
  _Thread_Disable_dispatch();             /* to prevent deletion */   
                                                                      
  the_port = _Dual_ported_memory_Allocate();                          
                                                                      
  if ( !the_port ) {                                                  
    _Thread_Enable_dispatch();                                        
3001757c:	eb0019d0 	bl	3001dcc4 <_Thread_Enable_dispatch>             
    return RTEMS_TOO_MANY;                                            
30017580:	e3a00005 	mov	r0, #5                                        
30017584:	eaffffde 	b	30017504 <rtems_port_create+0x30>               
                                                                      

300181b8 <rtems_rate_monotonic_cancel>: */ rtems_status_code rtems_rate_monotonic_cancel( rtems_id id ) {
300181b8:	e92d4030 	push	{r4, r5, lr}                                 
300181bc:	e24dd004 	sub	sp, sp, #4                                    
300181c0:	e1a01000 	mov	r1, r0                                        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
300181c4:	e1a0200d 	mov	r2, sp                                        
300181c8:	e59f0050 	ldr	r0, [pc, #80]	; 30018220 <rtems_rate_monotonic_cancel+0x68>
300181cc:	eb001360 	bl	3001cf54 <_Objects_Get>                        
  Rate_monotonic_Control *the_period;                                 
  Objects_Locations       location;                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
300181d0:	e59d4000 	ldr	r4, [sp]                                      
300181d4:	e1a05000 	mov	r5, r0                                        
300181d8:	e3540000 	cmp	r4, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
300181dc:	13a00004 	movne	r0, #4                                      
{                                                                     
  Rate_monotonic_Control *the_period;                                 
  Objects_Locations       location;                                   
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
300181e0:	1a000006 	bne	30018200 <rtems_rate_monotonic_cancel+0x48>   
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
300181e4:	e59f3038 	ldr	r3, [pc, #56]	; 30018224 <rtems_rate_monotonic_cancel+0x6c>
300181e8:	e5952040 	ldr	r2, [r5, #64]	; 0x40                          
300181ec:	e5933004 	ldr	r3, [r3, #4]                                  
300181f0:	e1520003 	cmp	r2, r3                                        
300181f4:	0a000003 	beq	30018208 <rtems_rate_monotonic_cancel+0x50>   
        _Thread_Enable_dispatch();                                    
300181f8:	eb0016b1 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
300181fc:	e3a00017 	mov	r0, #23                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30018200:	e28dd004 	add	sp, sp, #4                                    
30018204:	e8bd8030 	pop	{r4, r5, pc}                                  
    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 );                  
30018208:	e2850010 	add	r0, r5, #16                                   
3001820c:	eb001b5c 	bl	3001ef84 <_Watchdog_Remove>                    
      the_period->state = RATE_MONOTONIC_INACTIVE;                    
30018210:	e5854038 	str	r4, [r5, #56]	; 0x38                          
      _Thread_Enable_dispatch();                                      
30018214:	eb0016aa 	bl	3001dcc4 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
30018218:	e1a00004 	mov	r0, r4                                        
3001821c:	eafffff7 	b	30018200 <rtems_rate_monotonic_cancel+0x48>     
                                                                      

3000a944 <rtems_rate_monotonic_create>: rtems_status_code rtems_rate_monotonic_create( rtems_name name, rtems_id *id ) {
3000a944:	e92d4070 	push	{r4, r5, r6, lr}                             
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
3000a948:	e2504000 	subs	r4, r0, #0                                   
                                                                      
rtems_status_code rtems_rate_monotonic_create(                        
  rtems_name  name,                                                   
  rtems_id   *id                                                      
)                                                                     
{                                                                     
3000a94c:	e1a05001 	mov	r5, r1                                        
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
3000a950:	03a00003 	moveq	r0, #3                                      
  rtems_id   *id                                                      
)                                                                     
{                                                                     
  Rate_monotonic_Control *the_period;                                 
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
3000a954:	08bd8070 	popeq	{r4, r5, r6, pc}                            
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
3000a958:	e3510000 	cmp	r1, #0                                        
3000a95c:	0a00002c 	beq	3000aa14 <rtems_rate_monotonic_create+0xd0>   
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000a960:	e59f30b4 	ldr	r3, [pc, #180]	; 3000aa1c <rtems_rate_monotonic_create+0xd8>
3000a964:	e5932000 	ldr	r2, [r3]                                      
3000a968:	e2822001 	add	r2, r2, #1                                    
3000a96c:	e5832000 	str	r2, [r3]                                      
 *  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 );                
3000a970:	e59f60a8 	ldr	r6, [pc, #168]	; 3000aa20 <rtems_rate_monotonic_create+0xdc>
3000a974:	e1a00006 	mov	r0, r6                                        
3000a978:	eb00081c 	bl	3000c9f0 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
3000a97c:	e3500000 	cmp	r0, #0                                        
3000a980:	0a000020 	beq	3000aa08 <rtems_rate_monotonic_create+0xc4>   
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_period->owner = _Thread_Executing;                              
3000a984:	e59f3098 	ldr	r3, [pc, #152]	; 3000aa24 <rtems_rate_monotonic_create+0xe0>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000a988:	e5902008 	ldr	r2, [r0, #8]                                  
3000a98c:	e593e004 	ldr	lr, [r3, #4]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a990:	e596101c 	ldr	r1, [r6, #28]                                 
  the_period->state = RATE_MONOTONIC_INACTIVE;                        
                                                                      
  _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL );          
                                                                      
  _Rate_monotonic_Reset_statistics( the_period );                     
3000a994:	e3e03102 	mvn	r3, #-2147483648	; 0x80000000                 
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_period->owner = _Thread_Executing;                              
  the_period->state = RATE_MONOTONIC_INACTIVE;                        
3000a998:	e3a06000 	mov	r6, #0                                        
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000a99c:	e1a0c802 	lsl	ip, r2, #16                                   
  if ( !the_period ) {                                                
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_period->owner = _Thread_Executing;                              
3000a9a0:	e580e040 	str	lr, [r0, #64]	; 0x40                          
  the_period->state = RATE_MONOTONIC_INACTIVE;                        
3000a9a4:	e5806038 	str	r6, [r0, #56]	; 0x38                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000a9a8:	e5806018 	str	r6, [r0, #24]                                 
  the_watchdog->routine   = routine;                                  
3000a9ac:	e580602c 	str	r6, [r0, #44]	; 0x2c                          
  the_watchdog->id        = id;                                       
3000a9b0:	e5806030 	str	r6, [r0, #48]	; 0x30                          
  the_watchdog->user_data = user_data;                                
3000a9b4:	e5806034 	str	r6, [r0, #52]	; 0x34                          
                                                                      
  _Watchdog_Initialize( &the_period->Timer, NULL, 0, NULL );          
                                                                      
  _Rate_monotonic_Reset_statistics( the_period );                     
3000a9b8:	e5806054 	str	r6, [r0, #84]	; 0x54                          
3000a9bc:	e5806058 	str	r6, [r0, #88]	; 0x58                          
3000a9c0:	e5806064 	str	r6, [r0, #100]	; 0x64                         
3000a9c4:	e5806068 	str	r6, [r0, #104]	; 0x68                         
3000a9c8:	e580606c 	str	r6, [r0, #108]	; 0x6c                         
3000a9cc:	e5806070 	str	r6, [r0, #112]	; 0x70                         
3000a9d0:	e580607c 	str	r6, [r0, #124]	; 0x7c                         
3000a9d4:	e5806080 	str	r6, [r0, #128]	; 0x80                         
3000a9d8:	e5806084 	str	r6, [r0, #132]	; 0x84                         
3000a9dc:	e5806088 	str	r6, [r0, #136]	; 0x88                         
3000a9e0:	e580305c 	str	r3, [r0, #92]	; 0x5c                          
3000a9e4:	e5803060 	str	r3, [r0, #96]	; 0x60                          
3000a9e8:	e5803074 	str	r3, [r0, #116]	; 0x74                         
3000a9ec:	e5803078 	str	r3, [r0, #120]	; 0x78                         
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a9f0:	e781072c 	str	r0, [r1, ip, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
3000a9f4:	e580400c 	str	r4, [r0, #12]                                 
    &_Rate_monotonic_Information,                                     
    &the_period->Object,                                              
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
3000a9f8:	e5852000 	str	r2, [r5]                                      
  _Thread_Enable_dispatch();                                          
3000a9fc:	eb000cd3 	bl	3000dd50 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
3000aa00:	e1a00006 	mov	r0, r6                                        
3000aa04:	e8bd8070 	pop	{r4, r5, r6, pc}                              
  _Thread_Disable_dispatch();            /* to prevent deletion */    
                                                                      
  the_period = _Rate_monotonic_Allocate();                            
                                                                      
  if ( !the_period ) {                                                
    _Thread_Enable_dispatch();                                        
3000aa08:	eb000cd0 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
3000aa0c:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
3000aa10:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
3000aa14:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
  );                                                                  
                                                                      
  *id = the_period->Object.id;                                        
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000aa18:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

30011540 <rtems_rate_monotonic_get_statistics>: rtems_status_code rtems_rate_monotonic_get_statistics( rtems_id id, rtems_rate_monotonic_period_statistics *statistics ) {
30011540:	e92d4bf0 	push	{r4, r5, r6, r7, r8, r9, fp, lr}             <== NOT EXECUTED
  Objects_Locations                        location;                  
  Rate_monotonic_Control                  *the_period;                
  rtems_rate_monotonic_period_statistics  *dst;                       
  Rate_monotonic_Statistics               *src;                       
                                                                      
  if ( !statistics )                                                  
30011544:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_rate_monotonic_get_statistics(                
  rtems_id                                id,                         
  rtems_rate_monotonic_period_statistics *statistics                  
)                                                                     
{                                                                     
30011548:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3001154c:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  Rate_monotonic_Control                  *the_period;                
  rtems_rate_monotonic_period_statistics  *dst;                       
  Rate_monotonic_Statistics               *src;                       
                                                                      
  if ( !statistics )                                                  
    return RTEMS_INVALID_ADDRESS;                                     
30011550:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  Objects_Locations                        location;                  
  Rate_monotonic_Control                  *the_period;                
  rtems_rate_monotonic_period_statistics  *dst;                       
  Rate_monotonic_Statistics               *src;                       
                                                                      
  if ( !statistics )                                                  
30011554:	0a000024 	beq	300115ec <rtems_rate_monotonic_get_statistics+0xac><== NOT EXECUTED
30011558:	e59f0094 	ldr	r0, [pc, #148]	; 300115f4 <rtems_rate_monotonic_get_statistics+0xb4><== NOT EXECUTED
3001155c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30011560:	ebffee9e 	bl	3000cfe0 <_Objects_Get>                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
30011564:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
30011568:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001156c:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( !statistics )                                                  
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
30011570:	1a00001d 	bne	300115ec <rtems_rate_monotonic_get_statistics+0xac><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      dst = statistics;                                               
      src = &the_period->Statistics;                                  
      dst->count        = src->count;                                 
30011574:	e590e054 	ldr	lr, [r0, #84]	; 0x54                          <== NOT EXECUTED
      dst->missed_count = src->missed_count;                          
30011578:	e5901058 	ldr	r1, [r0, #88]	; 0x58                          <== NOT EXECUTED
      #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                      
        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
        _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
3001157c:	e2803074 	add	r3, r0, #116	; 0x74                           <== NOT EXECUTED
30011580:	e893000c 	ldm	r3, {r2, r3}                                  <== NOT EXECUTED
      dst = statistics;                                               
      src = &the_period->Statistics;                                  
      dst->count        = src->count;                                 
      dst->missed_count = src->missed_count;                          
      #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                      
        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
30011584:	e280905c 	add	r9, r0, #92	; 0x5c                            <== NOT EXECUTED
30011588:	e8990300 	ldm	r9, {r8, r9}                                  <== NOT EXECUTED
        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
3001158c:	e2807064 	add	r7, r0, #100	; 0x64                           <== NOT EXECUTED
30011590:	e89700c0 	ldm	r7, {r6, r7}                                  <== NOT EXECUTED
        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
30011594:	e280c06c 	add	ip, r0, #108	; 0x6c                           <== NOT EXECUTED
30011598:	e89c1800 	ldm	ip, {fp, ip}                                  <== NOT EXECUTED
        _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
3001159c:	e5842020 	str	r2, [r4, #32]                                 <== NOT EXECUTED
300115a0:	e5843024 	str	r3, [r4, #36]	; 0x24                          <== NOT EXECUTED
        _Timestamp_To_timespec( &src->max_wall_time,   &dst->max_wall_time );
300115a4:	e280307c 	add	r3, r0, #124	; 0x7c                           <== NOT EXECUTED
300115a8:	e893000c 	ldm	r3, {r2, r3}                                  <== NOT EXECUTED
300115ac:	e5842028 	str	r2, [r4, #40]	; 0x28                          <== NOT EXECUTED
300115b0:	e584302c 	str	r3, [r4, #44]	; 0x2c                          <== NOT EXECUTED
        _Timestamp_To_timespec( &src->total_wall_time, &dst->total_wall_time );
300115b4:	e2803084 	add	r3, r0, #132	; 0x84                           <== NOT EXECUTED
300115b8:	e893000c 	ldm	r3, {r2, r3}                                  <== NOT EXECUTED
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      dst = statistics;                                               
      src = &the_period->Statistics;                                  
      dst->count        = src->count;                                 
300115bc:	e584e000 	str	lr, [r4]                                      <== NOT EXECUTED
        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
        _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
        _Timestamp_To_timespec( &src->max_wall_time,   &dst->max_wall_time );
        _Timestamp_To_timespec( &src->total_wall_time, &dst->total_wall_time );
300115c0:	e5842030 	str	r2, [r4, #48]	; 0x30                          <== NOT EXECUTED
300115c4:	e5843034 	str	r3, [r4, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      dst = statistics;                                               
      src = &the_period->Statistics;                                  
      dst->count        = src->count;                                 
      dst->missed_count = src->missed_count;                          
300115c8:	e5841004 	str	r1, [r4, #4]                                  <== NOT EXECUTED
      #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                      
        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
300115cc:	e5848008 	str	r8, [r4, #8]                                  <== NOT EXECUTED
300115d0:	e584900c 	str	r9, [r4, #12]                                 <== NOT EXECUTED
        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
300115d4:	e5846010 	str	r6, [r4, #16]                                 <== NOT EXECUTED
300115d8:	e5847014 	str	r7, [r4, #20]                                 <== NOT EXECUTED
        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
300115dc:	e584b018 	str	fp, [r4, #24]                                 <== NOT EXECUTED
300115e0:	e584c01c 	str	ip, [r4, #28]                                 <== NOT EXECUTED
        dst->min_wall_time   = src->min_wall_time;                    
        dst->max_wall_time   = src->max_wall_time;                    
        dst->total_wall_time = src->total_wall_time;                  
      #endif                                                          
                                                                      
      _Thread_Enable_dispatch();                                      
300115e4:	ebfff1d9 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
300115e8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
300115ec:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
300115f0:	e8bd8bf0 	pop	{r4, r5, r6, r7, r8, r9, fp, pc}              <== NOT EXECUTED
                                                                      

300115f8 <rtems_rate_monotonic_get_status>: rtems_status_code rtems_rate_monotonic_get_status( rtems_id id, rtems_rate_monotonic_period_status *status ) {
300115f8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Period_time_t   since_last_period;                   
  Rate_monotonic_Control        *the_period;                          
  bool                           valid_status;                        
                                                                      
  if ( !status )                                                      
300115fc:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_rate_monotonic_get_status(                    
  rtems_id                            id,                             
  rtems_rate_monotonic_period_status *status                          
)                                                                     
{                                                                     
30011600:	e24dd014 	sub	sp, sp, #20                                   <== NOT EXECUTED
30011604:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  Rate_monotonic_Period_time_t   since_last_period;                   
  Rate_monotonic_Control        *the_period;                          
  bool                           valid_status;                        
                                                                      
  if ( !status )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
30011608:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Period_time_t   since_last_period;                   
  Rate_monotonic_Control        *the_period;                          
  bool                           valid_status;                        
                                                                      
  if ( !status )                                                      
3001160c:	0a000013 	beq	30011660 <rtems_rate_monotonic_get_status+0x68><== NOT EXECUTED
30011610:	e28d2010 	add	r2, sp, #16                                   <== NOT EXECUTED
30011614:	e59f008c 	ldr	r0, [pc, #140]	; 300116a8 <rtems_rate_monotonic_get_status+0xb0><== NOT EXECUTED
30011618:	ebffee70 	bl	3000cfe0 <_Objects_Get>                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
3001161c:	e59d2010 	ldr	r2, [sp, #16]                                 <== NOT EXECUTED
30011620:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
30011624:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30011628:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( !status )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
3001162c:	1a00000b 	bne	30011660 <rtems_rate_monotonic_get_status+0x68><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = the_period->owner->Object.id;                   
30011630:	e5932040 	ldr	r2, [r3, #64]	; 0x40                          <== NOT EXECUTED
      status->state = the_period->state;                              
30011634:	e5933038 	ldr	r3, [r3, #56]	; 0x38                          <== NOT EXECUTED
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = the_period->owner->Object.id;                   
30011638:	e5922008 	ldr	r2, [r2, #8]                                  <== NOT EXECUTED
      status->state = the_period->state;                              
                                                                      
      /*                                                              
       *  If the period is inactive, there is no information.         
       */                                                             
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
3001163c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = the_period->owner->Object.id;                   
30011640:	e884000c 	stm	r4, {r2, r3}                                  <== NOT EXECUTED
      status->state = the_period->state;                              
                                                                      
      /*                                                              
       *  If the period is inactive, there is no information.         
       */                                                             
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
30011644:	1a000007 	bne	30011668 <rtems_rate_monotonic_get_status+0x70><== NOT EXECUTED
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timespec_Set_to_zero( &status->since_last_period );        
30011648:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
3001164c:	e584300c 	str	r3, [r4, #12]                                 <== NOT EXECUTED
          _Timespec_Set_to_zero( &status->executed_since_last_period );
30011650:	e5843010 	str	r3, [r4, #16]                                 <== NOT EXECUTED
30011654:	e5843014 	str	r3, [r4, #20]                                 <== NOT EXECUTED
          status->since_last_period = since_last_period;              
          status->executed_since_last_period = executed;              
        #endif                                                        
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
30011658:	ebfff1bc 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3001165c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30011660:	e28dd014 	add	sp, sp, #20                                   <== NOT EXECUTED
30011664:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
      } else {                                                        
                                                                      
        /*                                                            
         *  Grab the current status.                                  
         */                                                           
        valid_status =                                                
30011668:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3001166c:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
30011670:	ebffe4f8 	bl	3000aa58 <_Rate_monotonic_Get_status>          <== NOT EXECUTED
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
30011674:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30011678:	0a000007 	beq	3001169c <rtems_rate_monotonic_get_status+0xa4><== NOT EXECUTED
          _Thread_Enable_dispatch();                                  
          return RTEMS_NOT_DEFINED;                                   
        }                                                             
                                                                      
        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                    
          _Timestamp_To_timespec(                                     
3001167c:	e89d000c 	ldm	sp, {r2, r3}                                  <== NOT EXECUTED
30011680:	e5842008 	str	r2, [r4, #8]                                  <== NOT EXECUTED
30011684:	e584300c 	str	r3, [r4, #12]                                 <== NOT EXECUTED
            &since_last_period, &status->since_last_period            
          );                                                          
          _Timestamp_To_timespec(                                     
30011688:	e28d3008 	add	r3, sp, #8                                    <== NOT EXECUTED
3001168c:	e893000c 	ldm	r3, {r2, r3}                                  <== NOT EXECUTED
30011690:	e5842010 	str	r2, [r4, #16]                                 <== NOT EXECUTED
30011694:	e5843014 	str	r3, [r4, #20]                                 <== NOT EXECUTED
30011698:	eaffffee 	b	30011658 <rtems_rate_monotonic_get_status+0x60> <== NOT EXECUTED
        valid_status =                                                
          _Rate_monotonic_Get_status(                                 
            the_period, &since_last_period, &executed                 
          );                                                          
        if (!valid_status) {                                          
          _Thread_Enable_dispatch();                                  
3001169c:	ebfff1ab 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_NOT_DEFINED;                                   
300116a0:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
300116a4:	eaffffed 	b	30011660 <rtems_rate_monotonic_get_status+0x68> <== NOT EXECUTED
                                                                      

3000ac84 <rtems_rate_monotonic_period>: rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length ) {
3000ac84:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
3000ac88:	e1a04000 	mov	r4, r0                                        
3000ac8c:	e24dd008 	sub	sp, sp, #8                                    
3000ac90:	e1a05001 	mov	r5, r1                                        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Rate_monotonic_Control *)                                   
    _Objects_Get( &_Rate_monotonic_Information, id, location );       
3000ac94:	e59f017c 	ldr	r0, [pc, #380]	; 3000ae18 <rtems_rate_monotonic_period+0x194>
3000ac98:	e1a01004 	mov	r1, r4                                        
3000ac9c:	e28d2004 	add	r2, sp, #4                                    
3000aca0:	eb0008ce 	bl	3000cfe0 <_Objects_Get>                        
  rtems_rate_monotonic_period_states   local_state;                   
  ISR_Level                            level;                         
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
                                                                      
  switch ( location ) {                                               
3000aca4:	e59d3004 	ldr	r3, [sp, #4]                                  
3000aca8:	e1a06000 	mov	r6, r0                                        
3000acac:	e3530000 	cmp	r3, #0                                        
3000acb0:	1a000008 	bne	3000acd8 <rtems_rate_monotonic_period+0x54>   
                                                                      
RTEMS_INLINE_ROUTINE bool _Thread_Is_executing (                      
  const Thread_Control *the_thread                                    
)                                                                     
{                                                                     
  return ( the_thread == _Thread_Executing );                         
3000acb4:	e59f7160 	ldr	r7, [pc, #352]	; 3000ae1c <rtems_rate_monotonic_period+0x198>
    case OBJECTS_LOCAL:                                               
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
3000acb8:	e5902040 	ldr	r2, [r0, #64]	; 0x40                          
3000acbc:	e5973004 	ldr	r3, [r7, #4]                                  
3000acc0:	e1520003 	cmp	r2, r3                                        
3000acc4:	0a000005 	beq	3000ace0 <rtems_rate_monotonic_period+0x5c>   
        _Thread_Enable_dispatch();                                    
3000acc8:	eb000c20 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
3000accc:	e3a00017 	mov	r0, #23                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000acd0:	e28dd008 	add	sp, sp, #8                                    
3000acd4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000acd8:	e3a00004 	mov	r0, #4                                        <== NOT EXECUTED
3000acdc:	eafffffb 	b	3000acd0 <rtems_rate_monotonic_period+0x4c>     <== NOT EXECUTED
      if ( !_Thread_Is_executing( the_period->owner ) ) {             
        _Thread_Enable_dispatch();                                    
        return RTEMS_NOT_OWNER_OF_RESOURCE;                           
      }                                                               
                                                                      
      if ( length == RTEMS_PERIOD_STATUS ) {                          
3000ace0:	e3550000 	cmp	r5, #0                                        
3000ace4:	1a000008 	bne	3000ad0c <rtems_rate_monotonic_period+0x88>   
        switch ( the_period->state ) {                                
3000ace8:	e5903038 	ldr	r3, [r0, #56]	; 0x38                          
3000acec:	e3530004 	cmp	r3, #4                                        
3000acf0:	959f2128 	ldrls	r2, [pc, #296]	; 3000ae20 <rtems_rate_monotonic_period+0x19c>
3000acf4:	81a00005 	movhi	r0, r5                                      
3000acf8:	97920103 	ldrls	r0, [r2, r3, lsl #2]                        
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
        the_period->next_length = length;                             
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
3000acfc:	e58d0000 	str	r0, [sp]                                      
3000ad00:	eb000c12 	bl	3000dd50 <_Thread_Enable_dispatch>             
        return RTEMS_TIMEOUT;                                         
3000ad04:	e59d0000 	ldr	r0, [sp]                                      
3000ad08:	eafffff0 	b	3000acd0 <rtems_rate_monotonic_period+0x4c>     
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000ad0c:	e10f8000 	mrs	r8, CPSR                                      
3000ad10:	e3883080 	orr	r3, r8, #128	; 0x80                           
3000ad14:	e129f003 	msr	CPSR_fc, r3                                   
        _Thread_Enable_dispatch();                                    
        return( return_value );                                       
      }                                                               
                                                                      
      _ISR_Disable( level );                                          
      if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {           
3000ad18:	e5903038 	ldr	r3, [r0, #56]	; 0x38                          
3000ad1c:	e3530000 	cmp	r3, #0                                        
3000ad20:	0a00000e 	beq	3000ad60 <rtems_rate_monotonic_period+0xdc>   
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
3000ad24:	e3530002 	cmp	r3, #2                                        
3000ad28:	0a00001f 	beq	3000adac <rtems_rate_monotonic_period+0x128>  
                                                                      
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
                                                                      
      if ( the_period->state == RATE_MONOTONIC_EXPIRED ) {            
3000ad2c:	e3530004 	cmp	r3, #4                                        <== NOT EXECUTED
3000ad30:	1affffe8 	bne	3000acd8 <rtems_rate_monotonic_period+0x54>   <== NOT EXECUTED
        /*                                                            
         *  Update statistics from the concluding period              
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
3000ad34:	ebffff97 	bl	3000ab98 <_Rate_monotonic_Update_statistics>   <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000ad38:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
                                                                      
        _ISR_Enable( level );                                         
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
3000ad3c:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000ad40:	e59f00dc 	ldr	r0, [pc, #220]	; 3000ae24 <rtems_rate_monotonic_period+0x1a0><== NOT EXECUTED
3000ad44:	e2861010 	add	r1, r6, #16                                   <== NOT EXECUTED
3000ad48:	e5863038 	str	r3, [r6, #56]	; 0x38                          <== NOT EXECUTED
        the_period->next_length = length;                             
3000ad4c:	e586503c 	str	r5, [r6, #60]	; 0x3c                          <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000ad50:	e586501c 	str	r5, [r6, #28]                                 <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000ad54:	eb000fd1 	bl	3000eca0 <_Watchdog_Insert>                    <== NOT EXECUTED
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
        return RTEMS_TIMEOUT;                                         
3000ad58:	e3a00006 	mov	r0, #6                                        <== NOT EXECUTED
3000ad5c:	eaffffe6 	b	3000acfc <rtems_rate_monotonic_period+0x78>     <== NOT EXECUTED
3000ad60:	e129f008 	msr	CPSR_fc, r8                                   
        _ISR_Enable( level );                                         
                                                                      
        /*                                                            
         *  Baseline statistics information for the beginning of a period.
         */                                                           
        _Rate_monotonic_Initiate_statistics( the_period );            
3000ad64:	ebffff6b 	bl	3000ab18 <_Rate_monotonic_Initiate_statistics> 
                                                                      
        the_period->state = RATE_MONOTONIC_ACTIVE;                    
3000ad68:	e3a03002 	mov	r3, #2                                        
3000ad6c:	e5863038 	str	r3, [r6, #56]	; 0x38                          
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000ad70:	e59f30b0 	ldr	r3, [pc, #176]	; 3000ae28 <rtems_rate_monotonic_period+0x1a4>
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000ad74:	e3a07000 	mov	r7, #0                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000ad78:	e59f00a4 	ldr	r0, [pc, #164]	; 3000ae24 <rtems_rate_monotonic_period+0x1a0>
3000ad7c:	e2861010 	add	r1, r6, #16                                   
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000ad80:	e586302c 	str	r3, [r6, #44]	; 0x2c                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000ad84:	e5867018 	str	r7, [r6, #24]                                 
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
3000ad88:	e5864030 	str	r4, [r6, #48]	; 0x30                          
  the_watchdog->user_data = user_data;                                
3000ad8c:	e5867034 	str	r7, [r6, #52]	; 0x34                          
          _Rate_monotonic_Timeout,                                    
          id,                                                         
          NULL                                                        
        );                                                            
                                                                      
        the_period->next_length = length;                             
3000ad90:	e586503c 	str	r5, [r6, #60]	; 0x3c                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000ad94:	e586501c 	str	r5, [r6, #28]                                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000ad98:	eb000fc0 	bl	3000eca0 <_Watchdog_Insert>                    
                                                                      
        _Watchdog_Insert_ticks( &the_period->Timer, length );         
        _Thread_Enable_dispatch();                                    
3000ad9c:	e58d7000 	str	r7, [sp]                                      
3000ada0:	eb000bea 	bl	3000dd50 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000ada4:	e59d0000 	ldr	r0, [sp]                                      
3000ada8:	eaffffc8 	b	3000acd0 <rtems_rate_monotonic_period+0x4c>     
                                                                      
      if ( the_period->state == RATE_MONOTONIC_ACTIVE ) {             
        /*                                                            
         *  Update statistics from the concluding period.             
         */                                                           
        _Rate_monotonic_Update_statistics( the_period );              
3000adac:	ebffff79 	bl	3000ab98 <_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;         
3000adb0:	e3a03001 	mov	r3, #1                                        
3000adb4:	e5863038 	str	r3, [r6, #56]	; 0x38                          
        the_period->next_length = length;                             
3000adb8:	e586503c 	str	r5, [r6, #60]	; 0x3c                          
3000adbc:	e129f008 	msr	CPSR_fc, r8                                   
                                                                      
        _ISR_Enable( level );                                         
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
3000adc0:	e5973004 	ldr	r3, [r7, #4]                                  
3000adc4:	e5962008 	ldr	r2, [r6, #8]                                  
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
3000adc8:	e1a00003 	mov	r0, r3                                        
        the_period->state = RATE_MONOTONIC_OWNER_IS_BLOCKING;         
        the_period->next_length = length;                             
                                                                      
        _ISR_Enable( level );                                         
                                                                      
        _Thread_Executing->Wait.id = the_period->Object.id;           
3000adcc:	e5832020 	str	r2, [r3, #32]                                 
        _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
3000add0:	e3a01901 	mov	r1, #16384	; 0x4000                           
3000add4:	eb000e05 	bl	3000e5f0 <_Thread_Set_state>                   
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000add8:	e10f2000 	mrs	r2, CPSR                                      
3000addc:	e3823080 	orr	r3, r2, #128	; 0x80                           
3000ade0:	e129f003 	msr	CPSR_fc, r3                                   
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
          local_state = the_period->state;                            
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
3000ade4:	e3a01002 	mov	r1, #2                                        
        /*                                                            
         *  Did the watchdog timer expire while we were actually blocking
         *  on it?                                                    
         */                                                           
        _ISR_Disable( level );                                        
          local_state = the_period->state;                            
3000ade8:	e5963038 	ldr	r3, [r6, #56]	; 0x38                          
          the_period->state = RATE_MONOTONIC_ACTIVE;                  
3000adec:	e5861038 	str	r1, [r6, #56]	; 0x38                          
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000adf0:	e129f002 	msr	CPSR_fc, r2                                   
                                                                      
        /*                                                            
         *  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 )   
3000adf4:	e3530003 	cmp	r3, #3                                        
3000adf8:	0a000002 	beq	3000ae08 <rtems_rate_monotonic_period+0x184>  
          _Thread_Clear_state( _Thread_Executing, STATES_WAITING_FOR_PERIOD );
                                                                      
        _Thread_Enable_dispatch();                                    
3000adfc:	eb000bd3 	bl	3000dd50 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000ae00:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000ae04:	eaffffb1 	b	3000acd0 <rtems_rate_monotonic_period+0x4c>     <== NOT EXECUTED
        /*                                                            
         *  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 );
3000ae08:	e5970004 	ldr	r0, [r7, #4]                                  <== NOT EXECUTED
3000ae0c:	e3a01901 	mov	r1, #16384	; 0x4000                           <== NOT EXECUTED
3000ae10:	eb000af0 	bl	3000d9d8 <_Thread_Clear_state>                 <== NOT EXECUTED
3000ae14:	eafffff8 	b	3000adfc <rtems_rate_monotonic_period+0x178>    <== NOT EXECUTED
                                                                      

3000b068 <rtems_rate_monotonic_report_statistics>: } } void rtems_rate_monotonic_report_statistics( void ) { rtems_rate_monotonic_report_statistics_with_plugin( NULL, printk_plugin );
3000b068:	e59f1004 	ldr	r1, [pc, #4]	; 3000b074 <rtems_rate_monotonic_report_statistics+0xc><== NOT EXECUTED
3000b06c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000b070:	eaffff6d 	b	3000ae2c <rtems_rate_monotonic_report_statistics_with_plugin><== NOT EXECUTED
                                                                      

3000ae2c <rtems_rate_monotonic_report_statistics_with_plugin>: */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) {
3000ae2c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
  rtems_id                               id;                          
  rtems_rate_monotonic_period_statistics the_stats;                   
  rtems_rate_monotonic_period_status     the_status;                  
  char                                   name[5];                     
                                                                      
  if ( !print )                                                       
3000ae30:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
 */                                                                   
void rtems_rate_monotonic_report_statistics_with_plugin(              
  void                  *context,                                     
  rtems_printk_plugin_t  print                                        
)                                                                     
{                                                                     
3000ae34:	e24dd078 	sub	sp, sp, #120	; 0x78                           <== NOT EXECUTED
3000ae38:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
  rtems_id                               id;                          
  rtems_rate_monotonic_period_statistics the_stats;                   
  rtems_rate_monotonic_period_status     the_status;                  
  char                                   name[5];                     
                                                                      
  if ( !print )                                                       
3000ae3c:	0a000047 	beq	3000af60 <rtems_rate_monotonic_report_statistics_with_plugin+0x134><== NOT EXECUTED
    return;                                                           
                                                                      
  (*print)( context, "Period information by period\n" );              
3000ae40:	e59f11f4 	ldr	r1, [pc, #500]	; 3000b03c <rtems_rate_monotonic_report_statistics_with_plugin+0x210><== NOT EXECUTED
3000ae44:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000ae48:	e12fff15 	bx	r5                                             <== NOT EXECUTED
  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                          
    (*print)( context, "--- CPU times are in seconds ---\n" );        
3000ae4c:	e59f11ec 	ldr	r1, [pc, #492]	; 3000b040 <rtems_rate_monotonic_report_statistics_with_plugin+0x214><== NOT EXECUTED
3000ae50:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000ae54:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000ae58:	e12fff15 	bx	r5                                             <== NOT EXECUTED
    (*print)( context, "--- Wall times are in seconds ---\n" );       
3000ae5c:	e59f11e0 	ldr	r1, [pc, #480]	; 3000b044 <rtems_rate_monotonic_report_statistics_with_plugin+0x218><== NOT EXECUTED
3000ae60:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000ae64:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000ae68:	e12fff15 	bx	r5                                             <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000ae6c:	e59f61d4 	ldr	r6, [pc, #468]	; 3000b048 <rtems_rate_monotonic_report_statistics_with_plugin+0x21c><== NOT EXECUTED
  Be sure to test the various cases.                                  
  (*print)( context,"\                                                
1234567890123456789012345678901234567890123456789012345678901234567890123456789\
\n");                                                                 
*/                                                                    
  (*print)( context, "   ID     OWNER COUNT MISSED     "              
3000ae70:	e59f11d4 	ldr	r1, [pc, #468]	; 3000b04c <rtems_rate_monotonic_report_statistics_with_plugin+0x220><== NOT EXECUTED
3000ae74:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000ae78:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000ae7c:	e12fff15 	bx	r5                                             <== NOT EXECUTED
       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                     
          "          "                                                
       #endif                                                         
          "   WALL TIME\n"                                            
  );                                                                  
  (*print)( context, "                               "                
3000ae80:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000ae84:	e59f11c4 	ldr	r1, [pc, #452]	; 3000b050 <rtems_rate_monotonic_report_statistics_with_plugin+0x224><== NOT EXECUTED
3000ae88:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000ae8c:	e12fff15 	bx	r5                                             <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000ae90:	e5964008 	ldr	r4, [r6, #8]                                  <== NOT EXECUTED
3000ae94:	e596300c 	ldr	r3, [r6, #12]                                 <== NOT EXECUTED
3000ae98:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000ae9c:	8a00002f 	bhi	3000af60 <rtems_rate_monotonic_report_statistics_with_plugin+0x134><== NOT EXECUTED
3000aea0:	e28d7018 	add	r7, sp, #24                                   <== NOT EXECUTED
    {                                                                 
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      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;         
3000aea4:	e2870018 	add	r0, r7, #24                                   <== NOT EXECUTED
    {                                                                 
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      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;       
3000aea8:	e2871030 	add	r1, r7, #48	; 0x30                            <== NOT EXECUTED
      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 );
      (*print)( context,                                              
3000aeac:	e59fa1a0 	ldr	sl, [pc, #416]	; 3000b054 <rtems_rate_monotonic_report_statistics_with_plugin+0x228><== NOT EXECUTED
        continue;                                                     
    #else                                                             
      (void) rtems_rate_monotonic_get_status( id, &the_status );      
    #endif                                                            
                                                                      
    rtems_object_get_name( the_status.owner, sizeof(name), name );    
3000aeb0:	e28d9070 	add	r9, sp, #112	; 0x70                           <== NOT EXECUTED
    {                                                                 
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      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;         
3000aeb4:	e58d0010 	str	r0, [sp, #16]                                 <== NOT EXECUTED
                                                                      
      _Timespec_Divide_by_integer( total_cpu, the_stats.count, &cpu_average );
3000aeb8:	e28db068 	add	fp, sp, #104	; 0x68                           <== NOT EXECUTED
    {                                                                 
    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__                        
      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;       
3000aebc:	e58d1014 	str	r1, [sp, #20]                                 <== NOT EXECUTED
3000aec0:	ea000003 	b	3000aed4 <rtems_rate_monotonic_report_statistics_with_plugin+0xa8><== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000aec4:	e596300c 	ldr	r3, [r6, #12]                                 <== NOT EXECUTED
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
3000aec8:	e2844001 	add	r4, r4, #1                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000aecc:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
3000aed0:	3a000022 	bcc	3000af60 <rtems_rate_monotonic_report_statistics_with_plugin+0x134><== NOT EXECUTED
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
3000aed4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aed8:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3000aedc:	eb001997 	bl	30011540 <rtems_rate_monotonic_get_statistics> <== NOT EXECUTED
    if ( status != RTEMS_SUCCESSFUL )                                 
3000aee0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000aee4:	1afffff6 	bne	3000aec4 <rtems_rate_monotonic_report_statistics_with_plugin+0x98><== NOT EXECUTED
    #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 );      
3000aee8:	e28d1050 	add	r1, sp, #80	; 0x50                            <== NOT EXECUTED
3000aeec:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000aef0:	eb0019c0 	bl	300115f8 <rtems_rate_monotonic_get_status>     <== NOT EXECUTED
    #endif                                                            
                                                                      
    rtems_object_get_name( the_status.owner, sizeof(name), name );    
3000aef4:	e1a02009 	mov	r2, r9                                        <== NOT EXECUTED
3000aef8:	e3a01005 	mov	r1, #5                                        <== NOT EXECUTED
3000aefc:	e59d0050 	ldr	r0, [sp, #80]	; 0x50                          <== NOT EXECUTED
3000af00:	eb0000bd 	bl	3000b1fc <rtems_object_get_name>               <== NOT EXECUTED
                                                                      
    /*                                                                
     *  Print part of report line that is not dependent on granularity
     */                                                               
    (*print)( context,                                                
3000af04:	e59d3018 	ldr	r3, [sp, #24]                                 <== NOT EXECUTED
3000af08:	e59f1148 	ldr	r1, [pc, #328]	; 3000b058 <rtems_rate_monotonic_report_statistics_with_plugin+0x22c><== NOT EXECUTED
3000af0c:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000af10:	e59d301c 	ldr	r3, [sp, #28]                                 <== NOT EXECUTED
3000af14:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000af18:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
3000af1c:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000af20:	e1a03009 	mov	r3, r9                                        <== NOT EXECUTED
3000af24:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000af28:	e12fff15 	bx	r5                                             <== NOT EXECUTED
    );                                                                
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
3000af2c:	e59d3018 	ldr	r3, [sp, #24]                                 <== NOT EXECUTED
      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 );
3000af30:	e59d0010 	ldr	r0, [sp, #16]                                 <== NOT EXECUTED
    );                                                                
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
3000af34:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
      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 );
3000af38:	e1a0200b 	mov	r2, fp                                        <== NOT EXECUTED
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
      (*print)( context, "\n" );                                      
3000af3c:	e59f1118 	ldr	r1, [pc, #280]	; 3000b05c <rtems_rate_monotonic_report_statistics_with_plugin+0x230><== NOT EXECUTED
    );                                                                
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
    if (the_stats.count == 0) {                                       
3000af40:	1a000008 	bne	3000af68 <rtems_rate_monotonic_report_statistics_with_plugin+0x13c><== NOT EXECUTED
      (*print)( context, "\n" );                                      
3000af44:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000af48:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000af4c:	e12fff15 	bx	r5                                             <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000af50:	e596300c 	ldr	r3, [r6, #12]                                 <== NOT EXECUTED
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
3000af54:	e2844001 	add	r4, r4, #1                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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 ;                   
3000af58:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
3000af5c:	2affffdc 	bcs	3000aed4 <rtems_rate_monotonic_report_statistics_with_plugin+0xa8><== NOT EXECUTED
        the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall
      );                                                              
    #endif                                                            
    }                                                                 
  }                                                                   
}                                                                     
3000af60:	e28dd078 	add	sp, sp, #120	; 0x78                           <== NOT EXECUTED
3000af64:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
      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 );
3000af68:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000af6c:	eb000e4d 	bl	3000e8a8 <_Timespec_Divide_by_integer>         <== NOT EXECUTED
      (*print)( context,                                              
3000af70:	e59d102c 	ldr	r1, [sp, #44]	; 0x2c                          <== NOT EXECUTED
3000af74:	e59d2024 	ldr	r2, [sp, #36]	; 0x24                          <== NOT EXECUTED
3000af78:	e0c0e19a 	smull	lr, r0, sl, r1                              <== NOT EXECUTED
3000af7c:	e59d3028 	ldr	r3, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000af80:	e1a01fc1 	asr	r1, r1, #31                                   <== NOT EXECUTED
3000af84:	e0611340 	rsb	r1, r1, r0, asr #6                            <== NOT EXECUTED
3000af88:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
3000af8c:	e58d1004 	str	r1, [sp, #4]                                  <== NOT EXECUTED
3000af90:	e0c3c29a 	smull	ip, r3, sl, r2                              <== NOT EXECUTED
3000af94:	e1a01fc2 	asr	r1, r2, #31                                   <== NOT EXECUTED
3000af98:	e59d2068 	ldr	r2, [sp, #104]	; 0x68                         <== NOT EXECUTED
3000af9c:	e0613343 	rsb	r3, r1, r3, asr #6                            <== NOT EXECUTED
3000afa0:	e58d2008 	str	r2, [sp, #8]                                  <== NOT EXECUTED
3000afa4:	e59d206c 	ldr	r2, [sp, #108]	; 0x6c                         <== NOT EXECUTED
3000afa8:	e0c1029a 	smull	r0, r1, sl, r2                              <== NOT EXECUTED
3000afac:	e1a02fc2 	asr	r2, r2, #31                                   <== NOT EXECUTED
3000afb0:	e0622341 	rsb	r2, r2, r1, asr #6                            <== NOT EXECUTED
3000afb4:	e58d200c 	str	r2, [sp, #12]                                 <== NOT EXECUTED
3000afb8:	e59f10a0 	ldr	r1, [pc, #160]	; 3000b060 <rtems_rate_monotonic_report_statistics_with_plugin+0x234><== NOT EXECUTED
3000afbc:	e59d2020 	ldr	r2, [sp, #32]                                 <== NOT EXECUTED
3000afc0:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000afc4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000afc8:	e12fff15 	bx	r5                                             <== NOT EXECUTED
      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);
3000afcc:	e59d1018 	ldr	r1, [sp, #24]                                 <== NOT EXECUTED
3000afd0:	e59d0014 	ldr	r0, [sp, #20]                                 <== NOT EXECUTED
3000afd4:	e1a0200b 	mov	r2, fp                                        <== NOT EXECUTED
3000afd8:	eb000e32 	bl	3000e8a8 <_Timespec_Divide_by_integer>         <== NOT EXECUTED
      (*print)( context,                                              
3000afdc:	e59d2040 	ldr	r2, [sp, #64]	; 0x40                          <== NOT EXECUTED
3000afe0:	e59d303c 	ldr	r3, [sp, #60]	; 0x3c                          <== NOT EXECUTED
3000afe4:	e58d2000 	str	r2, [sp]                                      <== NOT EXECUTED
3000afe8:	e59d2044 	ldr	r2, [sp, #68]	; 0x44                          <== NOT EXECUTED
3000afec:	e0c0139a 	smull	r1, r0, sl, r3                              <== NOT EXECUTED
3000aff0:	e0c1c29a 	smull	ip, r1, sl, r2                              <== NOT EXECUTED
3000aff4:	e1a02fc2 	asr	r2, r2, #31                                   <== NOT EXECUTED
3000aff8:	e0622341 	rsb	r2, r2, r1, asr #6                            <== NOT EXECUTED
3000affc:	e58d2004 	str	r2, [sp, #4]                                  <== NOT EXECUTED
3000b000:	e59d2068 	ldr	r2, [sp, #104]	; 0x68                         <== NOT EXECUTED
3000b004:	e1a03fc3 	asr	r3, r3, #31                                   <== NOT EXECUTED
3000b008:	e58d2008 	str	r2, [sp, #8]                                  <== NOT EXECUTED
3000b00c:	e59d206c 	ldr	r2, [sp, #108]	; 0x6c                         <== NOT EXECUTED
3000b010:	e0633340 	rsb	r3, r3, r0, asr #6                            <== NOT EXECUTED
3000b014:	e0cce29a 	smull	lr, ip, sl, r2                              <== NOT EXECUTED
3000b018:	e1a02fc2 	asr	r2, r2, #31                                   <== NOT EXECUTED
3000b01c:	e062234c 	rsb	r2, r2, ip, asr #6                            <== NOT EXECUTED
3000b020:	e58d200c 	str	r2, [sp, #12]                                 <== NOT EXECUTED
3000b024:	e59f1038 	ldr	r1, [pc, #56]	; 3000b064 <rtems_rate_monotonic_report_statistics_with_plugin+0x238><== NOT EXECUTED
3000b028:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
3000b02c:	e59d2038 	ldr	r2, [sp, #56]	; 0x38                          <== NOT EXECUTED
3000b030:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3000b034:	e12fff15 	bx	r5                                             <== NOT EXECUTED
3000b038:	eaffffa1 	b	3000aec4 <rtems_rate_monotonic_report_statistics_with_plugin+0x98><== NOT EXECUTED
                                                                      

3000b078 <rtems_rate_monotonic_reset_all_statistics>: rtems_fatal_error_occurred( 99 ); } } #endif _Thread_Dispatch_disable_level += 1;
3000b078:	e59f3040 	ldr	r3, [pc, #64]	; 3000b0c0 <rtems_rate_monotonic_reset_all_statistics+0x48><== NOT EXECUTED
                                                                      
/*                                                                    
 *  rtems_rate_monotonic_reset_all_statistics                         
 */                                                                   
void rtems_rate_monotonic_reset_all_statistics( void )                
{                                                                     
3000b07c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000b080:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000b084:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000b088:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
                                                                      
    /*                                                                
     * 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 ;                 
3000b08c:	e59f5030 	ldr	r5, [pc, #48]	; 3000b0c4 <rtems_rate_monotonic_reset_all_statistics+0x4c><== NOT EXECUTED
3000b090:	e5954008 	ldr	r4, [r5, #8]                                  <== NOT EXECUTED
3000b094:	e595300c 	ldr	r3, [r5, #12]                                 <== NOT EXECUTED
3000b098:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000b09c:	8a000005 	bhi	3000b0b8 <rtems_rate_monotonic_reset_all_statistics+0x40><== NOT EXECUTED
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
      (void) rtems_rate_monotonic_reset_statistics( id );             
3000b0a0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b0a4:	eb000007 	bl	3000b0c8 <rtems_rate_monotonic_reset_statistics><== NOT EXECUTED
                                                                      
    /*                                                                
     * 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 ;                 
3000b0a8:	e595300c 	ldr	r3, [r5, #12]                                 <== NOT EXECUTED
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
3000b0ac:	e2844001 	add	r4, r4, #1                                    <== NOT EXECUTED
                                                                      
    /*                                                                
     * 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 ;                 
3000b0b0:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
3000b0b4:	2afffff9 	bcs	3000b0a0 <rtems_rate_monotonic_reset_all_statistics+0x28><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
}                                                                     
3000b0b8:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    }                                                                 
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
3000b0bc:	ea000b23 	b	3000dd50 <_Thread_Enable_dispatch>              <== NOT EXECUTED
                                                                      

3000b0c8 <rtems_rate_monotonic_reset_statistics>: */ rtems_status_code rtems_rate_monotonic_reset_statistics( rtems_id id ) {
3000b0c8:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000b0cc:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000b0d0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000b0d4:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000b0d8:	e59f005c 	ldr	r0, [pc, #92]	; 3000b13c <rtems_rate_monotonic_reset_statistics+0x74><== NOT EXECUTED
3000b0dc:	eb0007bf 	bl	3000cfe0 <_Objects_Get>                        <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
3000b0e0:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
3000b0e4:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000b0e8:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
{                                                                     
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
3000b0ec:	1a000010 	bne	3000b134 <rtems_rate_monotonic_reset_statistics+0x6c><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      _Rate_monotonic_Reset_statistics( the_period );                 
3000b0f0:	e3e03102 	mvn	r3, #-2147483648	; 0x80000000                 <== NOT EXECUTED
3000b0f4:	e5804054 	str	r4, [r0, #84]	; 0x54                          <== NOT EXECUTED
3000b0f8:	e5804058 	str	r4, [r0, #88]	; 0x58                          <== NOT EXECUTED
3000b0fc:	e5804064 	str	r4, [r0, #100]	; 0x64                         <== NOT EXECUTED
3000b100:	e5804068 	str	r4, [r0, #104]	; 0x68                         <== NOT EXECUTED
3000b104:	e580406c 	str	r4, [r0, #108]	; 0x6c                         <== NOT EXECUTED
3000b108:	e5804070 	str	r4, [r0, #112]	; 0x70                         <== NOT EXECUTED
3000b10c:	e580407c 	str	r4, [r0, #124]	; 0x7c                         <== NOT EXECUTED
3000b110:	e5804080 	str	r4, [r0, #128]	; 0x80                         <== NOT EXECUTED
3000b114:	e5804084 	str	r4, [r0, #132]	; 0x84                         <== NOT EXECUTED
3000b118:	e5804088 	str	r4, [r0, #136]	; 0x88                         <== NOT EXECUTED
3000b11c:	e580305c 	str	r3, [r0, #92]	; 0x5c                          <== NOT EXECUTED
3000b120:	e5803060 	str	r3, [r0, #96]	; 0x60                          <== NOT EXECUTED
3000b124:	e5803074 	str	r3, [r0, #116]	; 0x74                         <== NOT EXECUTED
3000b128:	e5803078 	str	r3, [r0, #120]	; 0x78                         <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000b12c:	eb000b07 	bl	3000dd50 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3000b130:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000b134:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000b138:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3001899c <rtems_region_create>: uintptr_t length, uintptr_t page_size, rtems_attribute attribute_set, rtems_id *id ) {
3001899c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
300189a0:	e2509000 	subs	r9, r0, #0                                   
  uintptr_t           length,                                         
  uintptr_t           page_size,                                      
  rtems_attribute     attribute_set,                                  
  rtems_id           *id                                              
)                                                                     
{                                                                     
300189a4:	e24dd004 	sub	sp, sp, #4                                    
300189a8:	e1a05001 	mov	r5, r1                                        
300189ac:	e1a07002 	mov	r7, r2                                        
300189b0:	e1a06003 	mov	r6, r3                                        
300189b4:	e59db02c 	ldr	fp, [sp, #44]	; 0x2c                          
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
300189b8:	03a05003 	moveq	r5, #3                                      
)                                                                     
{                                                                     
  rtems_status_code  return_status;                                   
  Region_Control    *the_region;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
300189bc:	0a00001a 	beq	30018a2c <rtems_region_create+0x90>           
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !starting_address )                                            
300189c0:	e3550000 	cmp	r5, #0                                        
300189c4:	0a000035 	beq	30018aa0 <rtems_region_create+0x104>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
300189c8:	e35b0000 	cmp	fp, #0                                        
300189cc:	0a000033 	beq	30018aa0 <rtems_region_create+0x104>          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
300189d0:	e59f80d0 	ldr	r8, [pc, #208]	; 30018aa8 <rtems_region_create+0x10c>
 *  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 );
300189d4:	e59fa0d0 	ldr	sl, [pc, #208]	; 30018aac <rtems_region_create+0x110>
300189d8:	e5980000 	ldr	r0, [r8]                                      
300189dc:	eb0009b6 	bl	3001b0bc <_API_Mutex_Lock>                     
300189e0:	e1a0000a 	mov	r0, sl                                        
300189e4:	eb001019 	bl	3001ca50 <_Objects_Allocate>                   
                                                                      
    the_region = _Region_Allocate();                                  
                                                                      
    if ( !the_region )                                                
300189e8:	e2504000 	subs	r4, r0, #0                                   
      return_status = RTEMS_TOO_MANY;                                 
300189ec:	03a05005 	moveq	r5, #5                                      
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
                                                                      
    the_region = _Region_Allocate();                                  
                                                                      
    if ( !the_region )                                                
300189f0:	0a00000b 	beq	30018a24 <rtems_region_create+0x88>           
      return_status = RTEMS_TOO_MANY;                                 
                                                                      
    else {                                                            
                                                                      
      the_region->maximum_segment_size = _Heap_Initialize(            
300189f4:	e2840068 	add	r0, r4, #104	; 0x68                           
300189f8:	e1a01005 	mov	r1, r5                                        
300189fc:	e1a02007 	mov	r2, r7                                        
30018a00:	e1a03006 	mov	r3, r6                                        
30018a04:	eb000eef 	bl	3001c5c8 <_Heap_Initialize>                    
        &the_region->Memory, starting_address, length, page_size      
      );                                                              
                                                                      
      if ( !the_region->maximum_segment_size ) {                      
30018a08:	e3500000 	cmp	r0, #0                                        
    if ( !the_region )                                                
      return_status = RTEMS_TOO_MANY;                                 
                                                                      
    else {                                                            
                                                                      
      the_region->maximum_segment_size = _Heap_Initialize(            
30018a0c:	e584005c 	str	r0, [r4, #92]	; 0x5c                          
        &the_region->Memory, starting_address, length, page_size      
      );                                                              
                                                                      
      if ( !the_region->maximum_segment_size ) {                      
30018a10:	1a000008 	bne	30018a38 <rtems_region_create+0x9c>           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Region_Free (                              
  Region_Control *the_region                                          
)                                                                     
{                                                                     
  _Objects_Free( &_Region_Information, &the_region->Object );         
30018a14:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
30018a18:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
30018a1c:	eb0010e5 	bl	3001cdb8 <_Objects_Free>                       <== NOT EXECUTED
        _Region_Free( the_region );                                   
        return_status = RTEMS_INVALID_SIZE;                           
30018a20:	e3a05008 	mov	r5, #8                                        <== NOT EXECUTED
        *id = the_region->Object.id;                                  
        return_status = RTEMS_SUCCESSFUL;                             
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018a24:	e5980000 	ldr	r0, [r8]                                      
30018a28:	eb0009bf 	bl	3001b12c <_API_Mutex_Unlock>                   
  return return_status;                                               
}                                                                     
30018a2c:	e1a00005 	mov	r0, r5                                        
30018a30:	e28dd004 	add	sp, sp, #4                                    
30018a34:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
        the_region->length                = length;                   
        the_region->page_size             = page_size;                
        the_region->attribute_set         = attribute_set;            
        the_region->number_of_used_blocks = 0;                        
                                                                      
        _Thread_queue_Initialize(                                     
30018a38:	e59d3028 	ldr	r3, [sp, #40]	; 0x28                          
                                                                      
        the_region->starting_address      = starting_address;         
        the_region->length                = length;                   
        the_region->page_size             = page_size;                
        the_region->attribute_set         = attribute_set;            
        the_region->number_of_used_blocks = 0;                        
30018a3c:	e3a0c000 	mov	ip, #0                                        
                                                                      
        _Thread_queue_Initialize(                                     
30018a40:	e3130004 	tst	r3, #4                                        
        return_status = RTEMS_INVALID_SIZE;                           
      }                                                               
                                                                      
      else {                                                          
                                                                      
        the_region->starting_address      = starting_address;         
30018a44:	e5845050 	str	r5, [r4, #80]	; 0x50                          
        the_region->length                = length;                   
        the_region->page_size             = page_size;                
        the_region->attribute_set         = attribute_set;            
30018a48:	e5843060 	str	r3, [r4, #96]	; 0x60                          
        the_region->number_of_used_blocks = 0;                        
30018a4c:	e584c064 	str	ip, [r4, #100]	; 0x64                         
      }                                                               
                                                                      
      else {                                                          
                                                                      
        the_region->starting_address      = starting_address;         
        the_region->length                = length;                   
30018a50:	e5847054 	str	r7, [r4, #84]	; 0x54                          
        the_region->page_size             = page_size;                
30018a54:	e5846058 	str	r6, [r4, #88]	; 0x58                          
        the_region->attribute_set         = attribute_set;            
        the_region->number_of_used_blocks = 0;                        
                                                                      
        _Thread_queue_Initialize(                                     
30018a58:	e2840010 	add	r0, r4, #16                                   
30018a5c:	03a01000 	moveq	r1, #0                                      
30018a60:	13a01001 	movne	r1, #1                                      
30018a64:	e3a02040 	mov	r2, #64	; 0x40                                
30018a68:	e3a03006 	mov	r3, #6                                        
30018a6c:	e58dc000 	str	ip, [sp]                                      
30018a70:	eb00166d 	bl	3001e42c <_Thread_queue_Initialize>            
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30018a74:	e5943008 	ldr	r3, [r4, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30018a78:	e59a201c 	ldr	r2, [sl, #28]                                 
          &the_region->Object,                                        
          (Objects_Name) name                                         
        );                                                            
                                                                      
        *id = the_region->Object.id;                                  
        return_status = RTEMS_SUCCESSFUL;                             
30018a7c:	e59dc000 	ldr	ip, [sp]                                      
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30018a80:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30018a84:	e7824721 	str	r4, [r2, r1, lsr #14]                         
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018a88:	e5980000 	ldr	r0, [r8]                                      
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
30018a8c:	e584900c 	str	r9, [r4, #12]                                 
          &_Region_Information,                                       
          &the_region->Object,                                        
          (Objects_Name) name                                         
        );                                                            
                                                                      
        *id = the_region->Object.id;                                  
30018a90:	e58b3000 	str	r3, [fp]                                      
        return_status = RTEMS_SUCCESSFUL;                             
30018a94:	e1a0500c 	mov	r5, ip                                        
      }                                                               
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018a98:	eb0009a3 	bl	3001b12c <_API_Mutex_Unlock>                   
30018a9c:	eaffffe2 	b	30018a2c <rtems_region_create+0x90>             
                                                                      
  if ( !starting_address )                                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
30018aa0:	e3a05009 	mov	r5, #9                                        <== NOT EXECUTED
30018aa4:	eaffffe0 	b	30018a2c <rtems_region_create+0x90>             <== NOT EXECUTED
                                                                      

30018b34 <rtems_region_extend>: rtems_status_code rtems_region_extend( rtems_id id, void *starting_address, uintptr_t length ) {
30018b34:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  bool                extend_ok;                                      
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
30018b38:	e2518000 	subs	r8, r1, #0                                   <== NOT EXECUTED
rtems_status_code rtems_region_extend(                                
  rtems_id   id,                                                      
  void      *starting_address,                                        
  uintptr_t  length                                                   
)                                                                     
{                                                                     
30018b3c:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
30018b40:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
30018b44:	e1a07002 	mov	r7, r2                                        <== NOT EXECUTED
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
    return RTEMS_INVALID_ADDRESS;                                     
30018b48:	03a05009 	moveq	r5, #9                                      <== NOT EXECUTED
  bool                extend_ok;                                      
  Objects_Locations   location;                                       
  rtems_status_code   return_status;                                  
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
30018b4c:	0a00000d 	beq	30018b88 <rtems_region_extend+0x54>           <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
30018b50:	e59f407c 	ldr	r4, [pc, #124]	; 30018bd4 <rtems_region_extend+0xa0><== NOT EXECUTED
30018b54:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018b58:	eb000957 	bl	3001b0bc <_API_Mutex_Lock>                     <== NOT EXECUTED
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    _Objects_Get_no_protection( &_Region_Information, id, location ); 
30018b5c:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30018b60:	e59f0070 	ldr	r0, [pc, #112]	; 30018bd8 <rtems_region_extend+0xa4><== NOT EXECUTED
30018b64:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30018b68:	eb0010e9 	bl	3001cf14 <_Objects_Get_no_protection>          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018b6c:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
30018b70:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30018b74:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
30018b78:	13a05004 	movne	r5, #4                                      <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018b7c:	0a000004 	beq	30018b94 <rtems_region_extend+0x60>           <== NOT EXECUTED
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018b80:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018b84:	eb000968 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
}                                                                     
30018b88:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30018b8c:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
30018b90:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        extend_ok = _Heap_Extend(                                     
30018b94:	e2800068 	add	r0, r0, #104	; 0x68                           <== NOT EXECUTED
30018b98:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
30018b9c:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
30018ba0:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
30018ba4:	eb000cc7 	bl	3001bec8 <_Heap_Extend>                        <== NOT EXECUTED
          starting_address,                                           
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
30018ba8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
          the_region->length                += amount_extended;       
          the_region->maximum_segment_size  += amount_extended;       
          return_status = RTEMS_SUCCESSFUL;                           
        } else {                                                      
          return_status = RTEMS_INVALID_ADDRESS;                      
30018bac:	03a05009 	moveq	r5, #9                                      <== NOT EXECUTED
          starting_address,                                           
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
30018bb0:	0afffff2 	beq	30018b80 <rtems_region_extend+0x4c>           <== NOT EXECUTED
          the_region->length                += amount_extended;       
30018bb4:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
30018bb8:	e5962054 	ldr	r2, [r6, #84]	; 0x54                          <== NOT EXECUTED
          the_region->maximum_segment_size  += amount_extended;       
30018bbc:	e596105c 	ldr	r1, [r6, #92]	; 0x5c                          <== NOT EXECUTED
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
          the_region->length                += amount_extended;       
30018bc0:	e0822003 	add	r2, r2, r3                                    <== NOT EXECUTED
          the_region->maximum_segment_size  += amount_extended;       
30018bc4:	e0813003 	add	r3, r1, r3                                    <== NOT EXECUTED
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        if ( extend_ok ) {                                            
          the_region->length                += amount_extended;       
30018bc8:	e5862054 	str	r2, [r6, #84]	; 0x54                          <== NOT EXECUTED
          the_region->maximum_segment_size  += amount_extended;       
30018bcc:	e586305c 	str	r3, [r6, #92]	; 0x5c                          <== NOT EXECUTED
30018bd0:	eaffffea 	b	30018b80 <rtems_region_extend+0x4c>             <== NOT EXECUTED
                                                                      

30018bdc <rtems_region_get_free_information>: rtems_status_code rtems_region_get_free_information( rtems_id id, Heap_Information_block *the_info ) {
30018bdc:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
30018be0:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_region_get_free_information(                  
  rtems_id                id,                                         
  Heap_Information_block *the_info                                    
)                                                                     
{                                                                     
30018be4:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30018be8:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
30018bec:	03a06009 	moveq	r6, #9                                      <== NOT EXECUTED
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
30018bf0:	0a00000c 	beq	30018c28 <rtems_region_get_free_information+0x4c><== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
30018bf4:	e59f4054 	ldr	r4, [pc, #84]	; 30018c50 <rtems_region_get_free_information+0x74><== NOT EXECUTED
30018bf8:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018bfc:	eb00092e 	bl	3001b0bc <_API_Mutex_Lock>                     <== NOT EXECUTED
30018c00:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30018c04:	e59f0048 	ldr	r0, [pc, #72]	; 30018c54 <rtems_region_get_free_information+0x78><== NOT EXECUTED
30018c08:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30018c0c:	eb0010c0 	bl	3001cf14 <_Objects_Get_no_protection>          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018c10:	e59d6000 	ldr	r6, [sp]                                      <== NOT EXECUTED
30018c14:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
30018c18:	13a06004 	movne	r6, #4                                      <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018c1c:	0a000004 	beq	30018c34 <rtems_region_get_free_information+0x58><== NOT EXECUTED
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018c20:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018c24:	eb000940 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
}                                                                     
30018c28:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30018c2c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30018c30:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        the_info->Used.number   = 0;                                  
30018c34:	e585600c 	str	r6, [r5, #12]                                 <== NOT EXECUTED
        the_info->Used.total    = 0;                                  
30018c38:	e5856014 	str	r6, [r5, #20]                                 <== NOT EXECUTED
        the_info->Used.largest  = 0;                                  
30018c3c:	e5856010 	str	r6, [r5, #16]                                 <== NOT EXECUTED
                                                                      
        _Heap_Get_free_information( &the_region->Memory, &the_info->Free );
30018c40:	e2800068 	add	r0, r0, #104	; 0x68                           <== NOT EXECUTED
30018c44:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30018c48:	eb000dbd 	bl	3001c344 <_Heap_Get_free_information>          <== NOT EXECUTED
                                                                      
        return_status = RTEMS_SUCCESSFUL;                             
        break;                                                        
30018c4c:	eafffff3 	b	30018c20 <rtems_region_get_free_information+0x44><== NOT EXECUTED
                                                                      

30018c58 <rtems_region_get_information>: rtems_status_code rtems_region_get_information( rtems_id id, Heap_Information_block *the_info ) {
30018c58:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
30018c5c:	e2515000 	subs	r5, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_region_get_information(                       
  rtems_id                id,                                         
  Heap_Information_block *the_info                                    
)                                                                     
{                                                                     
30018c60:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30018c64:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
30018c68:	03a06009 	moveq	r6, #9                                      <== NOT EXECUTED
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status;                             
  register Region_Control *the_region;                                
                                                                      
  if ( !the_info )                                                    
30018c6c:	0a00000c 	beq	30018ca4 <rtems_region_get_information+0x4c>  <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
30018c70:	e59f4048 	ldr	r4, [pc, #72]	; 30018cc0 <rtems_region_get_information+0x68><== NOT EXECUTED
30018c74:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018c78:	eb00090f 	bl	3001b0bc <_API_Mutex_Lock>                     <== NOT EXECUTED
30018c7c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30018c80:	e59f003c 	ldr	r0, [pc, #60]	; 30018cc4 <rtems_region_get_information+0x6c><== NOT EXECUTED
30018c84:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30018c88:	eb0010a1 	bl	3001cf14 <_Objects_Get_no_protection>          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018c8c:	e59d6000 	ldr	r6, [sp]                                      <== NOT EXECUTED
30018c90:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
30018c94:	13a06004 	movne	r6, #4                                      <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018c98:	0a000004 	beq	30018cb0 <rtems_region_get_information+0x58>  <== NOT EXECUTED
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018c9c:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018ca0:	eb000921 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
}                                                                     
30018ca4:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30018ca8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30018cac:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
        _Heap_Get_information( &the_region->Memory, the_info );       
30018cb0:	e2800068 	add	r0, r0, #104	; 0x68                           <== NOT EXECUTED
30018cb4:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
30018cb8:	eb000dbb 	bl	3001c3ac <_Heap_Get_information>               <== NOT EXECUTED
        return_status = RTEMS_SUCCESSFUL;                             
        break;                                                        
30018cbc:	eafffff6 	b	30018c9c <rtems_region_get_information+0x44>    <== NOT EXECUTED
                                                                      

30018e0c <rtems_region_get_segment_size>: rtems_status_code rtems_region_get_segment_size( rtems_id id, void *segment, uintptr_t *size ) {
30018e0c:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
30018e10:	e2516000 	subs	r6, r1, #0                                   <== NOT EXECUTED
rtems_status_code rtems_region_get_segment_size(                      
  rtems_id   id,                                                      
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
30018e14:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
30018e18:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
30018e1c:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
  register Region_Control *the_region;                                
                                                                      
  if ( !segment )                                                     
30018e20:	0a00001b 	beq	30018e94 <rtems_region_get_segment_size+0x88> <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
30018e24:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30018e28:	0a000019 	beq	30018e94 <rtems_region_get_segment_size+0x88> <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
30018e2c:	e59f4068 	ldr	r4, [pc, #104]	; 30018e9c <rtems_region_get_segment_size+0x90><== NOT EXECUTED
30018e30:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018e34:	eb0008a0 	bl	3001b0bc <_API_Mutex_Lock>                     <== NOT EXECUTED
30018e38:	e59f0060 	ldr	r0, [pc, #96]	; 30018ea0 <rtems_region_get_segment_size+0x94><== NOT EXECUTED
30018e3c:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
30018e40:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
30018e44:	eb001032 	bl	3001cf14 <_Objects_Get_no_protection>          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018e48:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
30018e4c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30018e50:	0a000007 	beq	30018e74 <rtems_region_get_segment_size+0x68> <== NOT EXECUTED
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
30018e54:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
30018e58:	03a05004 	moveq	r5, #4                                      <== NOT EXECUTED
30018e5c:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018e60:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018e64:	eb0008b0 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
}                                                                     
30018e68:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30018e6c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30018e70:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
                                                                      
      case OBJECTS_LOCAL:                                             
        if ( !_Heap_Size_of_alloc_area( &the_region->Memory, segment, size ) )
30018e74:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
30018e78:	e2800068 	add	r0, r0, #104	; 0x68                           <== NOT EXECUTED
30018e7c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30018e80:	eb000eb9 	bl	3001c96c <_Heap_Size_of_alloc_area>            <== NOT EXECUTED
  void      *segment,                                                 
  uintptr_t *size                                                     
)                                                                     
{                                                                     
  Objects_Locations        location;                                  
  rtems_status_code        return_status = RTEMS_SUCCESSFUL;          
30018e84:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30018e88:	03a05009 	moveq	r5, #9                                      <== NOT EXECUTED
30018e8c:	13a05000 	movne	r5, #0                                      <== NOT EXECUTED
30018e90:	eafffff2 	b	30018e60 <rtems_region_get_segment_size+0x54>   <== NOT EXECUTED
                                                                      
  if ( !segment )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !size )                                                        
    return RTEMS_INVALID_ADDRESS;                                     
30018e94:	e3a05009 	mov	r5, #9                                        <== NOT EXECUTED
30018e98:	eafffff2 	b	30018e68 <rtems_region_get_segment_size+0x5c>   <== NOT EXECUTED
                                                                      

30018ed4 <rtems_region_resize_segment>: rtems_id id, void *segment, uintptr_t size, uintptr_t *old_size ) {
30018ed4:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
  uintptr_t                osize;                                     
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
30018ed8:	e2535000 	subs	r5, r3, #0                                   <== NOT EXECUTED
  rtems_id    id,                                                     
  void       *segment,                                                
  uintptr_t   size,                                                   
  uintptr_t  *old_size                                                
)                                                                     
{                                                                     
30018edc:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
30018ee0:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
30018ee4:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
30018ee8:	e1a06002 	mov	r6, r2                                        <== NOT EXECUTED
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
30018eec:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  uintptr_t                osize;                                     
  rtems_status_code        return_status;                             
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
30018ef0:	0a00000d 	beq	30018f2c <rtems_region_resize_segment+0x58>   <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
30018ef4:	e59f408c 	ldr	r4, [pc, #140]	; 30018f88 <rtems_region_resize_segment+0xb4><== NOT EXECUTED
30018ef8:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018efc:	eb00086e 	bl	3001b0bc <_API_Mutex_Lock>                     <== NOT EXECUTED
30018f00:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
30018f04:	e59f0080 	ldr	r0, [pc, #128]	; 30018f8c <rtems_region_resize_segment+0xb8><== NOT EXECUTED
30018f08:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
30018f0c:	eb001000 	bl	3001cf14 <_Objects_Get_no_protection>          <== NOT EXECUTED
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018f10:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
30018f14:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
30018f18:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30018f1c:	0a000004 	beq	30018f34 <rtems_region_resize_segment+0x60>   <== NOT EXECUTED
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018f20:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018f24:	eb000880 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
30018f28:	e3a00004 	mov	r0, #4                                        <== NOT EXECUTED
}                                                                     
30018f2c:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
30018f30:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        _Region_Debug_Walk( the_region, 7 );                          
                                                                      
        status = _Heap_Resize_block(                                  
30018f34:	e28d300c 	add	r3, sp, #12                                   <== NOT EXECUTED
30018f38:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
30018f3c:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
30018f40:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
30018f44:	e2800068 	add	r0, r0, #104	; 0x68                           <== NOT EXECUTED
30018f48:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
30018f4c:	eb000e38 	bl	3001c834 <_Heap_Resize_block>                  <== NOT EXECUTED
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
30018f50:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
30018f54:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
30018f58:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
30018f5c:	1a000003 	bne	30018f70 <rtems_region_resize_segment+0x9c>   <== NOT EXECUTED
          _Region_Process_queue( the_region );    /* unlocks allocator */
30018f60:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
30018f64:	eb0021d9 	bl	300216d0 <_Region_Process_queue>               <== NOT EXECUTED
        else                                                          
          _RTEMS_Unlock_allocator();                                  
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
30018f68:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30018f6c:	eaffffee 	b	30018f2c <rtems_region_resize_segment+0x58>     <== NOT EXECUTED
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL )                       
          _Region_Process_queue( the_region );    /* unlocks allocator */
        else                                                          
          _RTEMS_Unlock_allocator();                                  
30018f70:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018f74:	eb00086c 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
                                                                      
                                                                      
        if (status == HEAP_RESIZE_SUCCESSFUL)                         
          return RTEMS_SUCCESSFUL;                                    
        if (status == HEAP_RESIZE_UNSATISFIED)                        
          return RTEMS_UNSATISFIED;                                   
30018f78:	e3560001 	cmp	r6, #1                                        <== NOT EXECUTED
30018f7c:	13a00009 	movne	r0, #9                                      <== NOT EXECUTED
30018f80:	03a0000d 	moveq	r0, #13                                     <== NOT EXECUTED
30018f84:	eaffffe8 	b	30018f2c <rtems_region_resize_segment+0x58>     <== NOT EXECUTED
                                                                      

30018f90 <rtems_region_return_segment>: rtems_status_code rtems_region_return_segment( rtems_id id, void *segment ) {
30018f90:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  uint32_t                 size;                                      
#endif                                                                
  int                      status;                                    
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
30018f94:	e59f4078 	ldr	r4, [pc, #120]	; 30019014 <rtems_region_return_segment+0x84>
                                                                      
rtems_status_code rtems_region_return_segment(                        
  rtems_id  id,                                                       
  void     *segment                                                   
)                                                                     
{                                                                     
30018f98:	e24dd004 	sub	sp, sp, #4                                    
30018f9c:	e1a06000 	mov	r6, r0                                        
  uint32_t                 size;                                      
#endif                                                                
  int                      status;                                    
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
30018fa0:	e5940000 	ldr	r0, [r4]                                      
                                                                      
rtems_status_code rtems_region_return_segment(                        
  rtems_id  id,                                                       
  void     *segment                                                   
)                                                                     
{                                                                     
30018fa4:	e1a05001 	mov	r5, r1                                        
  uint32_t                 size;                                      
#endif                                                                
  int                      status;                                    
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
30018fa8:	eb000843 	bl	3001b0bc <_API_Mutex_Lock>                     
30018fac:	e1a01006 	mov	r1, r6                                        
30018fb0:	e59f0060 	ldr	r0, [pc, #96]	; 30019018 <rtems_region_return_segment+0x88>
30018fb4:	e1a0200d 	mov	r2, sp                                        
30018fb8:	eb000fd5 	bl	3001cf14 <_Objects_Get_no_protection>          
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018fbc:	e59d6000 	ldr	r6, [sp]                                      
30018fc0:	e1a07000 	mov	r7, r0                                        
30018fc4:	e3560000 	cmp	r6, #0                                        
        break;                                                        
#endif                                                                
                                                                      
      case OBJECTS_ERROR:                                             
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
30018fc8:	13a06004 	movne	r6, #4                                      
  register Region_Control *the_region;                                
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
30018fcc:	1a000005 	bne	30018fe8 <rtems_region_return_segment+0x58>   
RTEMS_INLINE_ROUTINE bool _Region_Free_segment (                      
  Region_Control *the_region,                                         
  void           *the_segment                                         
)                                                                     
{                                                                     
  return _Heap_Free( &the_region->Memory, the_segment );              
30018fd0:	e2800068 	add	r0, r0, #104	; 0x68                           
30018fd4:	e1a01005 	mov	r1, r5                                        
30018fd8:	eb000c67 	bl	3001c17c <_Heap_Free>                          
#endif                                                                
          status = _Region_Free_segment( the_region, segment );       
                                                                      
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
30018fdc:	e3500000 	cmp	r0, #0                                        
            return_status = RTEMS_INVALID_ADDRESS;                    
30018fe0:	03a06009 	moveq	r6, #9                                      
#endif                                                                
          status = _Region_Free_segment( the_region, segment );       
                                                                      
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
30018fe4:	1a000004 	bne	30018ffc <rtems_region_return_segment+0x6c>   
      default:                                                        
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
30018fe8:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30018fec:	eb00084e 	bl	3001b12c <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return return_status;                                               
}                                                                     
30018ff0:	e1a00006 	mov	r0, r6                                        
30018ff4:	e28dd004 	add	sp, sp, #4                                    
30018ff8:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
            return_status = RTEMS_INVALID_ADDRESS;                    
          else {                                                      
            the_region->number_of_used_blocks -= 1;                   
30018ffc:	e5973064 	ldr	r3, [r7, #100]	; 0x64                         
                                                                      
            _Region_Process_queue(the_region); /* unlocks allocator */
30019000:	e1a00007 	mov	r0, r7                                        
          _Region_Debug_Walk( the_region, 4 );                        
                                                                      
          if ( !status )                                              
            return_status = RTEMS_INVALID_ADDRESS;                    
          else {                                                      
            the_region->number_of_used_blocks -= 1;                   
30019004:	e2433001 	sub	r3, r3, #1                                    
30019008:	e5873064 	str	r3, [r7, #100]	; 0x64                         
                                                                      
            _Region_Process_queue(the_region); /* unlocks allocator */
3001900c:	eb0021af 	bl	300216d0 <_Region_Process_queue>               
                                                                      
            return RTEMS_SUCCESSFUL;                                  
30019010:	eafffff6 	b	30018ff0 <rtems_region_return_segment+0x60>     
                                                                      

300098ec <rtems_semaphore_create>: uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) {
300098ec:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  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 ) )                                 
300098f0:	e2505000 	subs	r5, r0, #0                                   
  uint32_t             count,                                         
  rtems_attribute      attribute_set,                                 
  rtems_task_priority  priority_ceiling,                              
  rtems_id            *id                                             
)                                                                     
{                                                                     
300098f4:	e24dd020 	sub	sp, sp, #32                                   
300098f8:	e1a04001 	mov	r4, r1                                        
300098fc:	e59d6038 	ldr	r6, [sp, #56]	; 0x38                          
  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;                                        
30009900:	03a00003 	moveq	r0, #3                                      
  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 ) )                                 
30009904:	0a000008 	beq	3000992c <rtems_semaphore_create+0x40>        
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
30009908:	e3560000 	cmp	r6, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000990c:	03a00009 	moveq	r0, #9                                      
  CORE_mutex_Status           mutex_status;                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
30009910:	0a000005 	beq	3000992c <rtems_semaphore_create+0x40>        
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  } else                                                              
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
30009914:	e21210c0 	ands	r1, r2, #192	; 0xc0                          
30009918:	0a000037 	beq	300099fc <rtems_semaphore_create+0x110>       
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore(            
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE);
3000991c:	e2028030 	and	r8, r2, #48	; 0x30                            
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
30009920:	e3580010 	cmp	r8, #16                                       
30009924:	0a000002 	beq	30009934 <rtems_semaphore_create+0x48>        
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
30009928:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000992c:	e28dd020 	add	sp, sp, #32                                   
30009930:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! (_Attributes_Is_binary_semaphore( attribute_set ) &&       
30009934:	e3120004 	tst	r2, #4                                        
30009938:	0afffffa 	beq	30009928 <rtems_semaphore_create+0x3c>        
            _Attributes_Is_priority( attribute_set ) ) )              
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
3000993c:	e35100c0 	cmp	r1, #192	; 0xc0                               
30009940:	0afffff8 	beq	30009928 <rtems_semaphore_create+0x3c>        
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) )
30009944:	e3540001 	cmp	r4, #1                                        
    return RTEMS_INVALID_NUMBER;                                      
30009948:	83a0000a 	movhi	r0, #10                                     
                                                                      
  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 ) )
3000994c:	8afffff6 	bhi	3000992c <rtems_semaphore_create+0x40>        
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009950:	e59f1150 	ldr	r1, [pc, #336]	; 30009aa8 <rtems_semaphore_create+0x1bc>
30009954:	e5910000 	ldr	r0, [r1]                                      
30009958:	e2800001 	add	r0, r0, #1                                    
3000995c:	e5810000 	str	r0, [r1]                                      
 *  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 );
30009960:	e59f0144 	ldr	r0, [pc, #324]	; 30009aac <rtems_semaphore_create+0x1c0>
30009964:	e58d2004 	str	r2, [sp, #4]                                  
30009968:	e58d3000 	str	r3, [sp]                                      
3000996c:	eb000557 	bl	3000aed0 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
30009970:	e2507000 	subs	r7, r0, #0                                   
30009974:	e59d2004 	ldr	r2, [sp, #4]                                  
30009978:	e59d3000 	ldr	r3, [sp]                                      
3000997c:	0a00002f 	beq	30009a40 <rtems_semaphore_create+0x154>       
  the_semaphore->attribute_set = attribute_set;                       
                                                                      
  /*                                                                  
   *  Initialize it as a counting semaphore.                          
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
30009980:	e3580000 	cmp	r8, #0                                        
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_semaphore->attribute_set = attribute_set;                       
30009984:	e5872010 	str	r2, [r7, #16]                                 
                                                                      
  /*                                                                  
   *  Initialize it as a counting semaphore.                          
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
30009988:	0a00001e 	beq	30009a08 <rtems_semaphore_create+0x11c>       
  } else {                                                            
    /*                                                                
     *  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 ) )                   
3000998c:	e2121004 	ands	r1, r2, #4                                   
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;    
30009990:	13a01001 	movne	r1, #1                                      
30009994:	158d1010 	strne	r1, [sp, #16]                               
    else                                                              
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_FIFO;        
30009998:	058d1010 	streq	r1, [sp, #16]                               
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
3000999c:	e3580010 	cmp	r8, #16                                       
300099a0:	0a000029 	beq	30009a4c <rtems_semaphore_create+0x160>       
          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;
300099a4:	e3a03002 	mov	r3, #2                                        
300099a8:	e58d3008 	str	r3, [sp, #8]                                  
      the_mutex_attr.only_owner_release = false;                      
300099ac:	e3a03000 	mov	r3, #0                                        
300099b0:	e5cd300c 	strb	r3, [sp, #12]                                
    }                                                                 
                                                                      
    mutex_status = _CORE_mutex_Initialize(                            
300099b4:	e3540001 	cmp	r4, #1                                        
300099b8:	13a02000 	movne	r2, #0                                      
300099bc:	03a02001 	moveq	r2, #1                                      
300099c0:	e2870014 	add	r0, r7, #20                                   
300099c4:	e28d1008 	add	r1, sp, #8                                    
300099c8:	eb0002f5 	bl	3000a5a4 <_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 ) {       
300099cc:	e3500006 	cmp	r0, #6                                        
300099d0:	0a00002e 	beq	30009a90 <rtems_semaphore_create+0x1a4>       
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
300099d4:	e59f20d0 	ldr	r2, [pc, #208]	; 30009aac <rtems_semaphore_create+0x1c0>
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
300099d8:	e5973008 	ldr	r3, [r7, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
300099dc:	e592201c 	ldr	r2, [r2, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
300099e0:	e1a01803 	lsl	r1, r3, #16                                   
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
300099e4:	e7827721 	str	r7, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
300099e8:	e587500c 	str	r5, [r7, #12]                                 
    &_Semaphore_Information,                                          
    &the_semaphore->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_semaphore->Object.id;                                     
300099ec:	e5863000 	str	r3, [r6]                                      
      the_semaphore->Object.id,                                       
      name,                                                           
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
300099f0:	eb0009c3 	bl	3000c104 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
300099f4:	e3a00000 	mov	r0, #0                                        
300099f8:	eaffffcb 	b	3000992c <rtems_semaphore_create+0x40>          
                                                                      
  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 ) )
300099fc:	e2128030 	ands	r8, r2, #48	; 0x30                           
30009a00:	1affffcf 	bne	30009944 <rtems_semaphore_create+0x58>        
30009a04:	eaffffd1 	b	30009950 <rtems_semaphore_create+0x64>          
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
    the_semaphore_attr.maximum_count = 0xFFFFFFFF;                    
                                                                      
    if ( _Attributes_Is_priority( attribute_set ) )                   
30009a08:	e3120004 	tst	r2, #4                                        
   */                                                                 
  if ( _Attributes_Is_counting_semaphore( attribute_set ) ) {         
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
    the_semaphore_attr.maximum_count = 0xFFFFFFFF;                    
30009a0c:	e3e03000 	mvn	r3, #0                                        
30009a10:	e58d3018 	str	r3, [sp, #24]                                 
                                                                      
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_semaphore_attr.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
30009a14:	13a03001 	movne	r3, #1                                      
30009a18:	158d301c 	strne	r3, [sp, #28]                               
     *  The following are just to make Purify happy.                  
     */                                                               
    the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    the_mutex_attr.priority_ceiling = PRIORITY_MINIMUM;               
                                                                      
    _CORE_semaphore_Initialize(                                       
30009a1c:	e2870014 	add	r0, r7, #20                                   
      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;
30009a20:	e3a03000 	mov	r3, #0                                        
    the_mutex_attr.priority_ceiling = PRIORITY_MINIMUM;               
                                                                      
    _CORE_semaphore_Initialize(                                       
30009a24:	e28d1018 	add	r1, sp, #24                                   
30009a28:	e1a02004 	mov	r2, r4                                        
    the_semaphore_attr.maximum_count = 0xFFFFFFFF;                    
                                                                      
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_semaphore_attr.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
    else                                                              
      the_semaphore_attr.discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO;
30009a2c:	058d801c 	streq	r8, [sp, #28]                               
                                                                      
    /*                                                                
     *  The following are just to make Purify happy.                  
     */                                                               
    the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
30009a30:	e58d3008 	str	r3, [sp, #8]                                  
    the_mutex_attr.priority_ceiling = PRIORITY_MINIMUM;               
30009a34:	e58d3014 	str	r3, [sp, #20]                                 
                                                                      
    _CORE_semaphore_Initialize(                                       
30009a38:	eb0003a3 	bl	3000a8cc <_CORE_semaphore_Initialize>          
30009a3c:	eaffffe4 	b	300099d4 <rtems_semaphore_create+0xe8>          
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
    _Thread_Enable_dispatch();                                        
30009a40:	eb0009af 	bl	3000c104 <_Thread_Enable_dispatch>             
    return RTEMS_TOO_MANY;                                            
30009a44:	e3a00005 	mov	r0, #5                                        
30009a48:	eaffffb7 	b	3000992c <rtems_semaphore_create+0x40>          
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
      the_mutex_attr.priority_ceiling      = priority_ceiling;        
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
      the_mutex_attr.only_owner_release    = false;                   
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
30009a4c:	e59d0010 	ldr	r0, [sp, #16]                                 
    else                                                              
      the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_FIFO;        
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
      the_mutex_attr.priority_ceiling      = priority_ceiling;        
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
30009a50:	e3a01000 	mov	r1, #0                                        
      the_mutex_attr.only_owner_release    = false;                   
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
30009a54:	e3500001 	cmp	r0, #1                                        
      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;        
30009a58:	e58d3014 	str	r3, [sp, #20]                                 
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
30009a5c:	e58d1008 	str	r1, [sp, #8]                                  
      the_mutex_attr.only_owner_release    = false;                   
30009a60:	e5cd100c 	strb	r1, [sp, #12]                                
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
30009a64:	1affffd2 	bne	300099b4 <rtems_semaphore_create+0xc8>        
        if ( _Attributes_Is_inherit_priority( attribute_set ) ) {     
30009a68:	e3120040 	tst	r2, #64	; 0x40                                
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
30009a6c:	13a03002 	movne	r3, #2                                      
30009a70:	158d3010 	strne	r3, [sp, #16]                               
          the_mutex_attr.only_owner_release = true;                   
30009a74:	15cd000c 	strbne	r0, [sp, #12]                              
      the_mutex_attr.priority_ceiling      = priority_ceiling;        
      the_mutex_attr.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
      the_mutex_attr.only_owner_release    = false;                   
                                                                      
      if ( the_mutex_attr.discipline == CORE_MUTEX_DISCIPLINES_PRIORITY ) {
        if ( _Attributes_Is_inherit_priority( attribute_set ) ) {     
30009a78:	1affffcd 	bne	300099b4 <rtems_semaphore_create+0xc8>        
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
          the_mutex_attr.only_owner_release = true;                   
        } else if ( _Attributes_Is_priority_ceiling( attribute_set ) ) {
30009a7c:	e3120080 	tst	r2, #128	; 0x80                               
          the_mutex_attr.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
30009a80:	13a03003 	movne	r3, #3                                      
30009a84:	158d3010 	strne	r3, [sp, #16]                               
          the_mutex_attr.only_owner_release = true;                   
30009a88:	15cd000c 	strbne	r0, [sp, #12]                              
30009a8c:	eaffffc8 	b	300099b4 <rtems_semaphore_create+0xc8>          
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
30009a90:	e59f0014 	ldr	r0, [pc, #20]	; 30009aac <rtems_semaphore_create+0x1c0>
30009a94:	e1a01007 	mov	r1, r7                                        
30009a98:	eb0005e6 	bl	3000b238 <_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();                                      
30009a9c:	eb000998 	bl	3000c104 <_Thread_Enable_dispatch>             
      return RTEMS_INVALID_PRIORITY;                                  
30009aa0:	e3a00013 	mov	r0, #19                                       
30009aa4:	eaffffa0 	b	3000992c <rtems_semaphore_create+0x40>          
                                                                      

30009ab0 <rtems_semaphore_delete>: #endif rtems_status_code rtems_semaphore_delete( rtems_id id ) {
30009ab0:	e92d4010 	push	{r4, lr}                                     
30009ab4:	e24dd004 	sub	sp, sp, #4                                    
30009ab8:	e1a01000 	mov	r1, r0                                        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get( &_Semaphore_Information, id, location );            
30009abc:	e1a0200d 	mov	r2, sp                                        
30009ac0:	e59f0088 	ldr	r0, [pc, #136]	; 30009b50 <rtems_semaphore_delete+0xa0>
30009ac4:	eb000632 	bl	3000b394 <_Objects_Get>                        
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
30009ac8:	e59d3000 	ldr	r3, [sp]                                      
30009acc:	e1a04000 	mov	r4, r0                                        
30009ad0:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30009ad4:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
30009ad8:	1a000009 	bne	30009b04 <rtems_semaphore_delete+0x54>        
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore(          
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE);
30009adc:	e5941010 	ldr	r1, [r4, #16]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
30009ae0:	e2111030 	ands	r1, r1, #48	; 0x30                           
30009ae4:	0a000015 	beq	30009b40 <rtems_semaphore_delete+0x90>        
        if ( _CORE_mutex_Is_locked( &the_semaphore->Core_control.mutex ) &&
30009ae8:	e5943064 	ldr	r3, [r4, #100]	; 0x64                         
30009aec:	e3530000 	cmp	r3, #0                                        
30009af0:	1a000005 	bne	30009b0c <rtems_semaphore_delete+0x5c>        
30009af4:	e3510020 	cmp	r1, #32                                       
30009af8:	0a000003 	beq	30009b0c <rtems_semaphore_delete+0x5c>        
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
30009afc:	eb000980 	bl	3000c104 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_RESOURCE_IN_USE;                               
30009b00:	e3a0000c 	mov	r0, #12                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30009b04:	e28dd004 	add	sp, sp, #4                                    
30009b08:	e8bd8010 	pop	{r4, pc}                                      
             !_Attributes_Is_simple_binary_semaphore(                 
                 the_semaphore->attribute_set ) ) {                   
          _Thread_Enable_dispatch();                                  
          return RTEMS_RESOURCE_IN_USE;                               
        }                                                             
        _CORE_mutex_Flush(                                            
30009b0c:	e2840014 	add	r0, r4, #20                                   
30009b10:	e3a01000 	mov	r1, #0                                        
30009b14:	e3a02004 	mov	r2, #4                                        
30009b18:	eb0002a0 	bl	3000a5a0 <_CORE_mutex_Flush>                   
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_SEMAPHORE_WAS_DELETED                                  
        );                                                            
     }                                                                
                                                                      
      _Objects_Close( &_Semaphore_Information, &the_semaphore->Object );
30009b1c:	e1a01004 	mov	r1, r4                                        
30009b20:	e59f0028 	ldr	r0, [pc, #40]	; 30009b50 <rtems_semaphore_delete+0xa0>
30009b24:	eb00050e 	bl	3000af64 <_Objects_Close>                      
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
30009b28:	e59f0020 	ldr	r0, [pc, #32]	; 30009b50 <rtems_semaphore_delete+0xa0>
30009b2c:	e1a01004 	mov	r1, r4                                        
30009b30:	eb0005c0 	bl	3000b238 <_Objects_Free>                       
          0,                         /* Not used */                   
          0                          /* Not used */                   
        );                                                            
      }                                                               
#endif                                                                
      _Thread_Enable_dispatch();                                      
30009b34:	eb000972 	bl	3000c104 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
30009b38:	e3a00000 	mov	r0, #0                                        
30009b3c:	eafffff0 	b	30009b04 <rtems_semaphore_delete+0x54>          
          &the_semaphore->Core_control.mutex,                         
          SEMAPHORE_MP_OBJECT_WAS_DELETED,                            
          CORE_MUTEX_WAS_DELETED                                      
        );                                                            
      } else {                                                        
        _CORE_semaphore_Flush(                                        
30009b40:	e2840014 	add	r0, r4, #20                                   
30009b44:	e3a02002 	mov	r2, #2                                        
30009b48:	eb00035e 	bl	3000a8c8 <_CORE_semaphore_Flush>               
30009b4c:	eafffff2 	b	30009b1c <rtems_semaphore_delete+0x6c>          
                                                                      

30013ae0 <rtems_semaphore_flush>: #endif rtems_status_code rtems_semaphore_flush( rtems_id id ) {
30013ae0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
30013ae4:	e24dd004 	sub	sp, sp, #4                                    
30013ae8:	e1a01000 	mov	r1, r0                                        
30013aec:	e1a0200d 	mov	r2, sp                                        
30013af0:	e59f004c 	ldr	r0, [pc, #76]	; 30013b44 <rtems_semaphore_flush+0x64>
30013af4:	ebffe3ce 	bl	3000ca34 <_Objects_Get>                        
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
30013af8:	e59d3000 	ldr	r3, [sp]                                      
30013afc:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30013b00:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
30013b04:	1a000007 	bne	30013b28 <rtems_semaphore_flush+0x48>         
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_counting_semaphore(          
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_COUNTING_SEMAPHORE);
30013b08:	e5901010 	ldr	r1, [r0, #16]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
30013b0c:	e2111030 	ands	r1, r1, #48	; 0x30                           
30013b10:	1a000006 	bne	30013b30 <rtems_semaphore_flush+0x50>         
          &the_semaphore->Core_control.mutex,                         
          SEND_OBJECT_WAS_DELETED,                                    
          CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT                        
        );                                                            
      } else {                                                        
        _CORE_semaphore_Flush(                                        
30013b14:	e2800014 	add	r0, r0, #20                                   <== NOT EXECUTED
30013b18:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
30013b1c:	ebffe111 	bl	3000bf68 <_CORE_semaphore_Flush>               <== NOT EXECUTED
          &the_semaphore->Core_control.semaphore,                     
          SEND_OBJECT_WAS_DELETED,                                    
          CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT                    
        );                                                            
      }                                                               
      _Thread_Enable_dispatch();                                      
30013b20:	ebffe725 	bl	3000d7bc <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
30013b24:	e3a00000 	mov	r0, #0                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30013b28:	e28dd004 	add	sp, sp, #4                                    
30013b2c:	e8bd8000 	pop	{pc}                                          
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
        _CORE_mutex_Flush(                                            
30013b30:	e2800014 	add	r0, r0, #20                                   
30013b34:	e1a01003 	mov	r1, r3                                        
30013b38:	e3a02001 	mov	r2, #1                                        
30013b3c:	ebffe03f 	bl	3000bc40 <_CORE_mutex_Flush>                   
30013b40:	eafffff6 	b	30013b20 <rtems_semaphore_flush+0x40>           
                                                                      

30009b54 <rtems_semaphore_obtain>: rtems_status_code rtems_semaphore_obtain( rtems_id id, rtems_option option_set, rtems_interval timeout ) {
30009b54:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
30009b58:	e1a04000 	mov	r4, r0                                        
30009b5c:	e24dd00c 	sub	sp, sp, #12                                   
  Objects_Locations *location,                                        
  ISR_Level         *level                                            
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    _Objects_Get_isr_disable( &_Semaphore_Information, id, location, level );
30009b60:	e28d3004 	add	r3, sp, #4                                    
30009b64:	e1a05001 	mov	r5, r1                                        
30009b68:	e1a06002 	mov	r6, r2                                        
30009b6c:	e59f00f4 	ldr	r0, [pc, #244]	; 30009c68 <rtems_semaphore_obtain+0x114>
30009b70:	e1a01004 	mov	r1, r4                                        
30009b74:	e28d2008 	add	r2, sp, #8                                    
30009b78:	eb0005e9 	bl	3000b324 <_Objects_Get_isr_disable>            
  register Semaphore_Control     *the_semaphore;                      
  Objects_Locations               location;                           
  ISR_Level                       level;                              
                                                                      
  the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level );
  switch ( location ) {                                               
30009b7c:	e59d3008 	ldr	r3, [sp, #8]                                  
30009b80:	e3530000 	cmp	r3, #0                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30009b84:	13a00004 	movne	r0, #4                                      
  register Semaphore_Control     *the_semaphore;                      
  Objects_Locations               location;                           
  ISR_Level                       level;                              
                                                                      
  the_semaphore = _Semaphore_Get_interrupt_disable( id, &location, &level );
  switch ( location ) {                                               
30009b88:	1a00000e 	bne	30009bc8 <rtems_semaphore_obtain+0x74>        
30009b8c:	e5903010 	ldr	r3, [r0, #16]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
30009b90:	e2133030 	ands	r3, r3, #48	; 0x30                           
30009b94:	0a00000d 	beq	30009bd0 <rtems_semaphore_obtain+0x7c>        
        _CORE_mutex_Seize(                                            
30009b98:	e59d3004 	ldr	r3, [sp, #4]                                  
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Options_Is_no_wait (                       
  rtems_option option_set                                             
)                                                                     
{                                                                     
   return (option_set & RTEMS_NO_WAIT) ? true : false;                
30009b9c:	e2052001 	and	r2, r5, #1                                    
30009ba0:	e58d3000 	str	r3, [sp]                                      
30009ba4:	e2800014 	add	r0, r0, #20                                   
30009ba8:	e1a03006 	mov	r3, r6                                        
30009bac:	e2222001 	eor	r2, r2, #1                                    
30009bb0:	e1a01004 	mov	r1, r4                                        
30009bb4:	eb0002c3 	bl	3000a6c8 <_CORE_mutex_Seize>                   
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
                  _Thread_Executing->Wait.return_code );              
30009bb8:	e59f30ac 	ldr	r3, [pc, #172]	; 30009c6c <rtems_semaphore_obtain+0x118>
30009bbc:	e5933004 	ldr	r3, [r3, #4]                                  
          id,                                                         
          ((_Options_Is_no_wait( option_set )) ? false : true),       
          timeout,                                                    
          level                                                       
        );                                                            
        return _Semaphore_Translate_core_mutex_return_code(           
30009bc0:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          
30009bc4:	eb00004c 	bl	30009cfc <_Semaphore_Translate_core_mutex_return_code>
      break;                                                          
                                                                      
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30009bc8:	e28dd00c 	add	sp, sp, #12                                   
30009bcc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
{                                                                     
  Thread_Control *executing;                                          
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
30009bd0:	e59f7094 	ldr	r7, [pc, #148]	; 30009c6c <rtems_semaphore_obtain+0x118>
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  if ( the_semaphore->count != 0 ) {                                  
30009bd4:	e590105c 	ldr	r1, [r0, #92]	; 0x5c                          
{                                                                     
  Thread_Control *executing;                                          
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
30009bd8:	e5972004 	ldr	r2, [r7, #4]                                  
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
  if ( the_semaphore->count != 0 ) {                                  
30009bdc:	e3510000 	cmp	r1, #0                                        
  Thread_Control *executing;                                          
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_SEMAPHORE_STATUS_SUCCESSFUL;     
30009be0:	e5823034 	str	r3, [r2, #52]	; 0x34                          
  if ( the_semaphore->count != 0 ) {                                  
30009be4:	1a000009 	bne	30009c10 <rtems_semaphore_obtain+0xbc>        
    the_semaphore->count -= 1;                                        
    _ISR_Enable( *level_p );                                          
    return;                                                           
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
30009be8:	e3150001 	tst	r5, #1                                        
30009bec:	0a00000c 	beq	30009c24 <rtems_semaphore_obtain+0xd0>        
30009bf0:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
30009bf4:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    _ISR_Enable( *level_p );                                          
    executing->Wait.return_code = CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT;
30009bf8:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
30009bfc:	e5823034 	str	r3, [r2, #52]	; 0x34                          <== NOT EXECUTED
        ((_Options_Is_no_wait( option_set )) ? false : true),         
        timeout,                                                      
        &level                                                        
      );                                                              
      return _Semaphore_Translate_core_semaphore_return_code(         
                  _Thread_Executing->Wait.return_code );              
30009c00:	e5973004 	ldr	r3, [r7, #4]                                  
        id,                                                           
        ((_Options_Is_no_wait( option_set )) ? false : true),         
        timeout,                                                      
        &level                                                        
      );                                                              
      return _Semaphore_Translate_core_semaphore_return_code(         
30009c04:	e5930034 	ldr	r0, [r3, #52]	; 0x34                          
30009c08:	eb00003f 	bl	30009d0c <_Semaphore_Translate_core_semaphore_return_code>
30009c0c:	eaffffed 	b	30009bc8 <rtems_semaphore_obtain+0x74>          
  /* 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;                                        
30009c10:	e2411001 	sub	r1, r1, #1                                    
30009c14:	e580105c 	str	r1, [r0, #92]	; 0x5c                          
30009c18:	e59d3004 	ldr	r3, [sp, #4]                                  
30009c1c:	e129f003 	msr	CPSR_fc, r3                                   
30009c20:	eafffff6 	b	30009c00 <rtems_semaphore_obtain+0xac>          
30009c24:	e59f3044 	ldr	r3, [pc, #68]	; 30009c70 <rtems_semaphore_obtain+0x11c>
30009c28:	e5931000 	ldr	r1, [r3]                                      
30009c2c:	e2811001 	add	r1, r1, #1                                    
30009c30:	e5831000 	str	r1, [r3]                                      
                                                                      
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;
30009c34:	e3a01001 	mov	r1, #1                                        
    return;                                                           
  }                                                                   
                                                                      
  _Thread_Disable_dispatch();                                         
  _Thread_queue_Enter_critical_section( &the_semaphore->Wait_queue ); 
  executing->Wait.queue          = &the_semaphore->Wait_queue;        
30009c38:	e2803014 	add	r3, r0, #20                                   
30009c3c:	e5801044 	str	r1, [r0, #68]	; 0x44                          
30009c40:	e5823044 	str	r3, [r2, #68]	; 0x44                          
  executing->Wait.id             = id;                                
30009c44:	e5824020 	str	r4, [r2, #32]                                 
30009c48:	e59d2004 	ldr	r2, [sp, #4]                                  
30009c4c:	e129f002 	msr	CPSR_fc, r2                                   
  _ISR_Enable( *level_p );                                            
                                                                      
  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );       
30009c50:	e59f201c 	ldr	r2, [pc, #28]	; 30009c74 <rtems_semaphore_obtain+0x120>
30009c54:	e1a00003 	mov	r0, r3                                        
30009c58:	e1a01006 	mov	r1, r6                                        
30009c5c:	eb000a54 	bl	3000c5b4 <_Thread_queue_Enqueue_with_handler>  
  _Thread_Enable_dispatch();                                          
30009c60:	eb000927 	bl	3000c104 <_Thread_Enable_dispatch>             
30009c64:	eaffffe5 	b	30009c00 <rtems_semaphore_obtain+0xac>          
                                                                      

300194ec <rtems_signal_send>: rtems_status_code rtems_signal_send( rtems_id id, rtems_signal_set signal_set ) {
300194ec:	e92d4010 	push	{r4, lr}                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
300194f0:	e2514000 	subs	r4, r1, #0                                   
                                                                      
rtems_status_code rtems_signal_send(                                  
  rtems_id          id,                                               
  rtems_signal_set  signal_set                                        
)                                                                     
{                                                                     
300194f4:	e24dd004 	sub	sp, sp, #4                                    
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
300194f8:	03a0000a 	moveq	r0, #10                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
300194fc:	1a000001 	bne	30019508 <rtems_signal_send+0x1c>             
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
30019500:	e28dd004 	add	sp, sp, #4                                    
30019504:	e8bd8010 	pop	{r4, pc}                                      
  ASR_Information         *asr;                                       
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30019508:	e1a0100d 	mov	r1, sp                                        
3001950c:	eb0011f5 	bl	3001dce8 <_Thread_Get>                         
  switch ( location ) {                                               
30019510:	e59d3000 	ldr	r3, [sp]                                      
30019514:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30019518:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !signal_set )                                                  
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3001951c:	1afffff7 	bne	30019500 <rtems_signal_send+0x14>             
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
30019520:	e59030f8 	ldr	r3, [r0, #248]	; 0xf8                         
      asr = &api->Signal;                                             
                                                                      
      if ( ! _ASR_Is_null_handler( asr->handler ) ) {                 
30019524:	e593200c 	ldr	r2, [r3, #12]                                 
30019528:	e3520000 	cmp	r2, #0                                        
3001952c:	0a00001c 	beq	300195a4 <rtems_signal_send+0xb8>             
        if ( asr->is_enabled ) {                                      
30019530:	e5d32008 	ldrb	r2, [r3, #8]                                 
30019534:	e3520000 	cmp	r2, #0                                        
30019538:	0a00000f 	beq	3001957c <rtems_signal_send+0x90>             
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001953c:	e10f2000 	mrs	r2, CPSR                                      
30019540:	e3821080 	orr	r1, r2, #128	; 0x80                           
30019544:	e129f001 	msr	CPSR_fc, r1                                   
)                                                                     
{                                                                     
  ISR_Level              _level;                                      
                                                                      
  _ISR_Disable( _level );                                             
    *signal_set |= signals;                                           
30019548:	e5931014 	ldr	r1, [r3, #20]                                 
3001954c:	e1814004 	orr	r4, r1, r4                                    
30019550:	e5834014 	str	r4, [r3, #20]                                 
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30019554:	e129f002 	msr	CPSR_fc, r2                                   
          _ASR_Post_signals( signal_set, &asr->signals_posted );      
                                                                      
          if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
30019558:	e59f3050 	ldr	r3, [pc, #80]	; 300195b0 <rtems_signal_send+0xc4>
3001955c:	e5932000 	ldr	r2, [r3]                                      
30019560:	e3520000 	cmp	r2, #0                                        
30019564:	0a00000b 	beq	30019598 <rtems_signal_send+0xac>             
30019568:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
3001956c:	e1500002 	cmp	r0, r2                                        <== NOT EXECUTED
            _Thread_Dispatch_necessary = true;                        
30019570:	03a02001 	moveq	r2, #1                                      <== NOT EXECUTED
30019574:	05c32010 	strbeq	r2, [r3, #16]                              <== NOT EXECUTED
30019578:	ea000006 	b	30019598 <rtems_signal_send+0xac>               <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001957c:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
30019580:	e3821080 	orr	r1, r2, #128	; 0x80                           <== NOT EXECUTED
30019584:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
30019588:	e5931018 	ldr	r1, [r3, #24]                                 <== NOT EXECUTED
3001958c:	e1814004 	orr	r4, r1, r4                                    <== NOT EXECUTED
30019590:	e5834018 	str	r4, [r3, #24]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30019594:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
        } else {                                                      
          _ASR_Post_signals( signal_set, &asr->signals_pending );     
        }                                                             
        _Thread_Enable_dispatch();                                    
30019598:	eb0011c9 	bl	3001dcc4 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3001959c:	e3a00000 	mov	r0, #0                                        
300195a0:	eaffffd6 	b	30019500 <rtems_signal_send+0x14>               
      }                                                               
      _Thread_Enable_dispatch();                                      
300195a4:	eb0011c6 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_NOT_DEFINED;                                       
300195a8:	e3a0000b 	mov	r0, #11                                       <== NOT EXECUTED
300195ac:	eaffffd3 	b	30019500 <rtems_signal_send+0x14>               <== NOT EXECUTED
                                                                      

30009d20 <rtems_task_create>: size_t stack_size, rtems_mode initial_modes, rtems_attribute attribute_set, rtems_id *id ) {
30009d20:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
30009d24:	e24dd01c 	sub	sp, sp, #28                                   
30009d28:	e59d9044 	ldr	r9, [sp, #68]	; 0x44                          
30009d2c:	e1a04000 	mov	r4, r0                                        
  Priority_Control         core_priority;                             
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
30009d30:	e3590000 	cmp	r9, #0                                        
  size_t               stack_size,                                    
  rtems_mode           initial_modes,                                 
  rtems_attribute      attribute_set,                                 
  rtems_id            *id                                             
)                                                                     
{                                                                     
30009d34:	e1a0a001 	mov	sl, r1                                        
30009d38:	e1a06002 	mov	r6, r2                                        
30009d3c:	e1a05003 	mov	r5, r3                                        
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
30009d40:	03a00009 	moveq	r0, #9                                      
  Priority_Control         core_priority;                             
  RTEMS_API_Control       *api;                                       
  ASR_Information         *asr;                                       
                                                                      
                                                                      
  if ( !id )                                                          
30009d44:	0a000031 	beq	30009e10 <rtems_task_create+0xf0>             
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30009d48:	e3540000 	cmp	r4, #0                                        
    return RTEMS_INVALID_NAME;                                        
30009d4c:	03a00003 	moveq	r0, #3                                      
                                                                      
                                                                      
  if ( !id )                                                          
   return RTEMS_INVALID_ADDRESS;                                      
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
30009d50:	0a00002e 	beq	30009e10 <rtems_task_create+0xf0>             
                                                                      
  /*                                                                  
   *  Validate the RTEMS API priority and convert it to the core priority range.
   */                                                                 
                                                                      
  if ( !_Attributes_Is_system_task( the_attribute_set ) ) {           
30009d54:	e59d3040 	ldr	r3, [sp, #64]	; 0x40                          
30009d58:	e3130902 	tst	r3, #32768	; 0x8000                           
30009d5c:	1a000005 	bne	30009d78 <rtems_task_create+0x58>             
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
30009d60:	e3510000 	cmp	r1, #0                                        
30009d64:	0a00002b 	beq	30009e18 <rtems_task_create+0xf8>             
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
30009d68:	e59f30e0 	ldr	r3, [pc, #224]	; 30009e50 <rtems_task_create+0x130>
30009d6c:	e5d33000 	ldrb	r3, [r3]                                     
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
30009d70:	e1510003 	cmp	r1, r3                                        
30009d74:	8a000027 	bhi	30009e18 <rtems_task_create+0xf8>             
   */                                                                 
                                                                      
  /*                                                                  
   *  Lock the allocator mutex for protection                         
   */                                                                 
  _RTEMS_Lock_allocator();                                            
30009d78:	e59fb0d4 	ldr	fp, [pc, #212]	; 30009e54 <rtems_task_create+0x134>
30009d7c:	e59b0000 	ldr	r0, [fp]                                      
30009d80:	eb0001bd 	bl	3000a47c <_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 );
30009d84:	e59f00cc 	ldr	r0, [pc, #204]	; 30009e58 <rtems_task_create+0x138>
30009d88:	eb000450 	bl	3000aed0 <_Objects_Allocate>                   
   *         the event of an error.                                   
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
30009d8c:	e2507000 	subs	r7, r0, #0                                   
30009d90:	0a00002a 	beq	30009e40 <rtems_task_create+0x120>            
                                                                      
  /*                                                                  
   *  Initialize the core thread for this task.                       
   */                                                                 
                                                                      
  status = _Thread_Initialize(                                        
30009d94:	e3150c01 	tst	r5, #256	; 0x100                              
30009d98:	13a01000 	movne	r1, #0                                      
30009d9c:	03a01001 	moveq	r1, #1                                      
30009da0:	e3150c02 	tst	r5, #512	; 0x200                              
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_floating_point(              
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
   return ( attribute_set & RTEMS_FLOATING_POINT ) ? true : false;    
30009da4:	e3a08000 	mov	r8, #0                                        
30009da8:	03a02000 	moveq	r2, #0                                      
30009dac:	13a02001 	movne	r2, #1                                      
 */                                                                   
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level (           
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  return ( mode_set & RTEMS_INTERRUPT_MASK );                         
30009db0:	e2053080 	and	r3, r5, #128	; 0x80                           
30009db4:	e58d1008 	str	r1, [sp, #8]                                  
30009db8:	e58d200c 	str	r2, [sp, #12]                                 
30009dbc:	e58d3014 	str	r3, [sp, #20]                                 
30009dc0:	e59f0090 	ldr	r0, [pc, #144]	; 30009e58 <rtems_task_create+0x138>
30009dc4:	e1a01007 	mov	r1, r7                                        
30009dc8:	e1a02008 	mov	r2, r8                                        
30009dcc:	e1a03006 	mov	r3, r6                                        
30009dd0:	e88d0500 	stm	sp, {r8, sl}                                  
30009dd4:	e58d8010 	str	r8, [sp, #16]                                 
30009dd8:	e58d4018 	str	r4, [sp, #24]                                 
30009ddc:	eb0008f6 	bl	3000c1bc <_Thread_Initialize>                  
    NULL,        /* no budget algorithm callout */                    
    _Modes_Get_interrupt_level(initial_modes),                        
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  if ( !status ) {                                                    
30009de0:	e1500008 	cmp	r0, r8                                        
30009de4:	0a00000d 	beq	30009e20 <rtems_task_create+0x100>            
    _RTEMS_Unlock_allocator();                                        
    return RTEMS_UNSATISFIED;                                         
  }                                                                   
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
  asr = &api->Signal;                                                 
30009de8:	e59720f8 	ldr	r2, [r7, #248]	; 0xf8                         
                                                                      
  asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true;
                                                                      
  *id = the_thread->Object.id;                                        
30009dec:	e5973008 	ldr	r3, [r7, #8]                                  
 *    id               - thread id                                    
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code       - if unsuccessful                              
 */                                                                   
                                                                      
rtems_status_code rtems_task_create(                                  
30009df0:	e3150b01 	tst	r5, #1024	; 0x400                             
30009df4:	13a01000 	movne	r1, #0                                      
30009df8:	03a01001 	moveq	r1, #1                                      
    );                                                                
                                                                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
30009dfc:	e59b0000 	ldr	r0, [fp]                                      
 *    id               - thread id                                    
 *    RTEMS_SUCCESSFUL - if successful                                
 *    error code       - if unsuccessful                              
 */                                                                   
                                                                      
rtems_status_code rtems_task_create(                                  
30009e00:	e5c21008 	strb	r1, [r2, #8]                                 
  api = the_thread->API_Extensions[ THREAD_API_RTEMS ];               
  asr = &api->Signal;                                                 
                                                                      
  asr->is_enabled = _Modes_Is_asr_disabled(initial_modes) ? false : true;
                                                                      
  *id = the_thread->Object.id;                                        
30009e04:	e5893000 	str	r3, [r9]                                      
    );                                                                
                                                                      
   }                                                                  
#endif                                                                
                                                                      
  _RTEMS_Unlock_allocator();                                          
30009e08:	eb0001b7 	bl	3000a4ec <_API_Mutex_Unlock>                   
  return RTEMS_SUCCESSFUL;                                            
30009e0c:	e1a00008 	mov	r0, r8                                        
}                                                                     
30009e10:	e28dd01c 	add	sp, sp, #28                                   
30009e14:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
   *  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;                                  
30009e18:	e3a00013 	mov	r0, #19                                       <== NOT EXECUTED
30009e1c:	eafffffb 	b	30009e10 <rtems_task_create+0xf0>               <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _RTEMS_tasks_Free (                         
  Thread_Control *the_task                                            
)                                                                     
{                                                                     
  _Objects_Free(                                                      
30009e20:	e5970008 	ldr	r0, [r7, #8]                                  
30009e24:	eb000520 	bl	3000b2ac <_Objects_Get_information_id>         
30009e28:	e1a01007 	mov	r1, r7                                        
30009e2c:	eb000501 	bl	3000b238 <_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();                                        
30009e30:	e59b0000 	ldr	r0, [fp]                                      
30009e34:	eb0001ac 	bl	3000a4ec <_API_Mutex_Unlock>                   
    return RTEMS_UNSATISFIED;                                         
30009e38:	e3a0000d 	mov	r0, #13                                       
30009e3c:	eafffff3 	b	30009e10 <rtems_task_create+0xf0>               
   */                                                                 
                                                                      
  the_thread = _RTEMS_tasks_Allocate();                               
                                                                      
  if ( !the_thread ) {                                                
    _RTEMS_Unlock_allocator();                                        
30009e40:	e59b0000 	ldr	r0, [fp]                                      
30009e44:	eb0001a8 	bl	3000a4ec <_API_Mutex_Unlock>                   
    return RTEMS_TOO_MANY;                                            
30009e48:	e3a00005 	mov	r0, #5                                        
30009e4c:	eaffffef 	b	30009e10 <rtems_task_create+0xf0>               
                                                                      

30009e5c <rtems_task_delete>: */ rtems_status_code rtems_task_delete( rtems_id id ) {
30009e5c:	e92d4070 	push	{r4, r5, r6, lr}                             
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
30009e60:	e59f4070 	ldr	r4, [pc, #112]	; 30009ed8 <rtems_task_delete+0x7c>
 */                                                                   
                                                                      
rtems_status_code rtems_task_delete(                                  
  rtems_id id                                                         
)                                                                     
{                                                                     
30009e64:	e24dd004 	sub	sp, sp, #4                                    
30009e68:	e1a05000 	mov	r5, r0                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
30009e6c:	e5940000 	ldr	r0, [r4]                                      
30009e70:	eb000181 	bl	3000a47c <_API_Mutex_Lock>                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30009e74:	e1a00005 	mov	r0, r5                                        
30009e78:	e1a0100d 	mov	r1, sp                                        
30009e7c:	eb0008a9 	bl	3000c128 <_Thread_Get>                         
  switch ( location ) {                                               
30009e80:	e59d5000 	ldr	r5, [sp]                                      
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30009e84:	e1a06000 	mov	r6, r0                                        
  switch ( location ) {                                               
30009e88:	e3550000 	cmp	r5, #0                                        
30009e8c:	1a00000d 	bne	30009ec8 <rtems_task_delete+0x6c>             
                                                                      
    case OBJECTS_LOCAL:                                               
      the_information = _Objects_Get_information_id( the_thread->Object.id );
30009e90:	e5900008 	ldr	r0, [r0, #8]                                  
30009e94:	eb000504 	bl	3000b2ac <_Objects_Get_information_id>         
            0                                /* Not used */           
          );                                                          
        }                                                             
      #endif                                                          
                                                                      
      _Thread_Close( the_information, the_thread );                   
30009e98:	e1a01006 	mov	r1, r6                                        
30009e9c:	eb0007cd 	bl	3000bdd8 <_Thread_Close>                       
30009ea0:	e5960008 	ldr	r0, [r6, #8]                                  
30009ea4:	eb000500 	bl	3000b2ac <_Objects_Get_information_id>         
30009ea8:	e1a01006 	mov	r1, r6                                        
30009eac:	eb0004e1 	bl	3000b238 <_Objects_Free>                       
                                                                      
      _RTEMS_tasks_Free( the_thread );                                
                                                                      
      _RTEMS_Unlock_allocator();                                      
30009eb0:	e5940000 	ldr	r0, [r4]                                      
30009eb4:	eb00018c 	bl	3000a4ec <_API_Mutex_Unlock>                   
      _Thread_Enable_dispatch();                                      
30009eb8:	eb000891 	bl	3000c104 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
30009ebc:	e1a00005 	mov	r0, r5                                        
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return RTEMS_INVALID_ID;                                            
}                                                                     
30009ec0:	e28dd004 	add	sp, sp, #4                                    
30009ec4:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
30009ec8:	e5940000 	ldr	r0, [r4]                                      <== NOT EXECUTED
30009ecc:	eb000186 	bl	3000a4ec <_API_Mutex_Unlock>                   <== NOT EXECUTED
  return RTEMS_INVALID_ID;                                            
30009ed0:	e3a00004 	mov	r0, #4                                        <== NOT EXECUTED
30009ed4:	eafffff9 	b	30009ec0 <rtems_task_delete+0x64>               <== NOT EXECUTED
                                                                      

3000c128 <rtems_task_get_note>: rtems_status_code rtems_task_get_note( rtems_id id, uint32_t notepad, uint32_t *note ) {
3000c128:	e92d4030 	push	{r4, r5, lr}                                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c12c:	e59f30a8 	ldr	r3, [pc, #168]	; 3000c1dc <rtems_task_get_note+0xb4>
rtems_status_code rtems_task_get_note(                                
  rtems_id    id,                                                     
  uint32_t    notepad,                                                
  uint32_t   *note                                                    
)                                                                     
{                                                                     
3000c130:	e1a0c000 	mov	ip, r0                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c134:	e5d33004 	ldrb	r3, [r3, #4]                                 
rtems_status_code rtems_task_get_note(                                
  rtems_id    id,                                                     
  uint32_t    notepad,                                                
  uint32_t   *note                                                    
)                                                                     
{                                                                     
3000c138:	e24dd008 	sub	sp, sp, #8                                    
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c13c:	e3530000 	cmp	r3, #0                                        
rtems_status_code rtems_task_get_note(                                
  rtems_id    id,                                                     
  uint32_t    notepad,                                                
  uint32_t   *note                                                    
)                                                                     
{                                                                     
3000c140:	e1a04001 	mov	r4, r1                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
3000c144:	03a00016 	moveq	r0, #22                                     
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c148:	0a000019 	beq	3000c1b4 <rtems_task_get_note+0x8c>           
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
3000c14c:	e3520000 	cmp	r2, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000c150:	03a00009 	moveq	r0, #9                                      
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
                                                                      
  if ( !note )                                                        
3000c154:	0a000016 	beq	3000c1b4 <rtems_task_get_note+0x8c>           
  /*                                                                  
   *  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 )                                 
3000c158:	e351000f 	cmp	r1, #15                                       
    return RTEMS_INVALID_NUMBER;                                      
3000c15c:	83a0000a 	movhi	r0, #10                                     
  /*                                                                  
   *  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 )                                 
3000c160:	8a000013 	bhi	3000c1b4 <rtems_task_get_note+0x8c>           
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c164:	e35c0000 	cmp	ip, #0                                        
3000c168:	0a000013 	beq	3000c1bc <rtems_task_get_note+0x94>           
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
3000c16c:	e59f306c 	ldr	r3, [pc, #108]	; 3000c1e0 <rtems_task_get_note+0xb8>
3000c170:	e5933004 	ldr	r3, [r3, #4]                                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c174:	e5931008 	ldr	r1, [r3, #8]                                  
3000c178:	e15c0001 	cmp	ip, r1                                        
3000c17c:	0a000010 	beq	3000c1c4 <rtems_task_get_note+0x9c>           
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000c180:	e28d1004 	add	r1, sp, #4                                    
3000c184:	e58d2000 	str	r2, [sp]                                      
3000c188:	eb00096b 	bl	3000e73c <_Thread_Get>                         
  switch ( location ) {                                               
3000c18c:	e89d0024 	ldm	sp, {r2, r5}                                  
3000c190:	e3550000 	cmp	r5, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000c194:	13a00004 	movne	r0, #4                                      
      *note = api->Notepads[ notepad ];                               
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000c198:	1a000005 	bne	3000c1b4 <rtems_task_get_note+0x8c>           
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      *note = api->Notepads[ notepad ];                               
3000c19c:	e59030f8 	ldr	r3, [r0, #248]	; 0xf8                         
3000c1a0:	e2844008 	add	r4, r4, #8                                    
3000c1a4:	e7933104 	ldr	r3, [r3, r4, lsl #2]                          
3000c1a8:	e5823000 	str	r3, [r2]                                      
      _Thread_Enable_dispatch();                                      
3000c1ac:	eb000959 	bl	3000e718 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3000c1b0:	e1a00005 	mov	r0, r5                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000c1b4:	e28dd008 	add	sp, sp, #8                                    
3000c1b8:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c1bc:	e59f301c 	ldr	r3, [pc, #28]	; 3000c1e0 <rtems_task_get_note+0xb8><== NOT EXECUTED
3000c1c0:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
3000c1c4:	e59330f8 	ldr	r3, [r3, #248]	; 0xf8                         <== NOT EXECUTED
3000c1c8:	e2844008 	add	r4, r4, #8                                    <== NOT EXECUTED
3000c1cc:	e7933104 	ldr	r3, [r3, r4, lsl #2]                          <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3000c1d0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      *note = api->Notepads[ notepad ];                               
3000c1d4:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3000c1d8:	eafffff5 	b	3000c1b4 <rtems_task_get_note+0x8c>             <== NOT EXECUTED
                                                                      

30009edc <rtems_task_ident>: rtems_id *id ) { Objects_Name_or_id_lookup_errors status; if ( !id )
30009edc:	e2523000 	subs	r3, r2, #0                                   
rtems_status_code rtems_task_ident(                                   
  rtems_name    name,                                                 
  uint32_t      node,                                                 
  rtems_id     *id                                                    
)                                                                     
{                                                                     
30009ee0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
30009ee4:	e1a0c000 	mov	ip, r0                                        
30009ee8:	e1a02001 	mov	r2, r1                                        
  Objects_Name_or_id_lookup_errors  status;                           
                                                                      
  if ( !id )                                                          
30009eec:	0a00000c 	beq	30009f24 <rtems_task_ident+0x48>              
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( name == OBJECTS_ID_OF_SELF ) {                                 
30009ef0:	e3500000 	cmp	r0, #0                                        
30009ef4:	1a000004 	bne	30009f0c <rtems_task_ident+0x30>              
    *id = _Thread_Executing->Object.id;                               
30009ef8:	e59f202c 	ldr	r2, [pc, #44]	; 30009f2c <rtems_task_ident+0x50><== NOT EXECUTED
30009efc:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
30009f00:	e5922008 	ldr	r2, [r2, #8]                                  <== NOT EXECUTED
30009f04:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
    return RTEMS_SUCCESSFUL;                                          
30009f08:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
   }                                                                  
                                                                      
  status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id );
30009f0c:	e59f001c 	ldr	r0, [pc, #28]	; 30009f30 <rtems_task_ident+0x54>
30009f10:	e1a0100c 	mov	r1, ip                                        
30009f14:	eb00057e 	bl	3000b514 <_Objects_Name_to_id_u32>             
                                                                      
  return _Status_Object_name_errors_to_status[ status ];              
30009f18:	e59f3014 	ldr	r3, [pc, #20]	; 30009f34 <rtems_task_ident+0x58>
30009f1c:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          
30009f20:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
)                                                                     
{                                                                     
  Objects_Name_or_id_lookup_errors  status;                           
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
30009f24:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
   }                                                                  
                                                                      
  status = _Objects_Name_to_id_u32( &_RTEMS_tasks_Information, name, node, id );
                                                                      
  return _Status_Object_name_errors_to_status[ status ];              
}                                                                     
30009f28:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30019918 <rtems_task_is_suspended>: */ rtems_status_code rtems_task_is_suspended( rtems_id id ) {
30019918:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3001991c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30019920:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
30019924:	eb0010ef 	bl	3001dce8 <_Thread_Get>                         <== NOT EXECUTED
  switch ( location ) {                                               
30019928:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3001992c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30019930:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
30019934:	1a000004 	bne	3001994c <rtems_task_is_suspended+0x34>       <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_suspended (                      
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_SUSPENDED);                            
30019938:	e5904010 	ldr	r4, [r0, #16]                                 <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
3001993c:	e2144002 	ands	r4, r4, #2                                   <== NOT EXECUTED
30019940:	0a000003 	beq	30019954 <rtems_task_is_suspended+0x3c>       <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
30019944:	eb0010de 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_ALREADY_SUSPENDED;                                 
30019948:	e3a0000f 	mov	r0, #15                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001994c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
30019950:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
        _Thread_Enable_dispatch();                                    
30019954:	eb0010da 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return RTEMS_SUCCESSFUL;                                      
30019958:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001995c:	eafffffa 	b	3001994c <rtems_task_is_suspended+0x34>         <== NOT EXECUTED
                                                                      

30011b4c <rtems_task_mode>: rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ) {
30011b4c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  ASR_Information    *asr;                                            
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
30011b50:	e2525000 	subs	r5, r2, #0                                   
rtems_status_code rtems_task_mode(                                    
  rtems_mode  mode_set,                                               
  rtems_mode  mask,                                                   
  rtems_mode *previous_mode_set                                       
)                                                                     
{                                                                     
30011b54:	e1a04000 	mov	r4, r0                                        
30011b58:	e1a06001 	mov	r6, r1                                        
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
30011b5c:	03a00009 	moveq	r0, #9                                      
  ASR_Information    *asr;                                            
  bool                is_asr_enabled = false;                         
  bool                needs_asr_dispatching = false;                  
  rtems_mode          old_mode;                                       
                                                                      
  if ( !previous_mode_set )                                           
30011b60:	08bd8ff0 	popeq	{r4, r5, r6, r7, r8, r9, sl, fp, pc}        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
30011b64:	e59f9148 	ldr	r9, [pc, #328]	; 30011cb4 <rtems_task_mode+0x168>
30011b68:	e5997004 	ldr	r7, [r9, #4]                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
30011b6c:	e5d7a074 	ldrb	sl, [r7, #116]	; 0x74                        
                                                                      
  if ( !previous_mode_set )                                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
30011b70:	e59780f8 	ldr	r8, [r7, #248]	; 0xf8                         
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
30011b74:	e597307c 	ldr	r3, [r7, #124]	; 0x7c                         
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
30011b78:	e35a0000 	cmp	sl, #0                                        
  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;           
30011b7c:	e5d8b008 	ldrb	fp, [r8, #8]                                 
                                                                      
  executing     = _Thread_Executing;                                  
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
  asr = &api->Signal;                                                 
                                                                      
  old_mode  = (executing->is_preemptible) ? RTEMS_PREEMPT : RTEMS_NO_PREEMPT;
30011b80:	03a0ac01 	moveq	sl, #256	; 0x100                            
30011b84:	13a0a000 	movne	sl, #0                                      
                                                                      
  if ( executing->budget_algorithm == THREAD_CPU_BUDGET_ALGORITHM_NONE )
30011b88:	e3530000 	cmp	r3, #0                                        
    old_mode |= RTEMS_NO_TIMESLICE;                                   
  else                                                                
    old_mode |= RTEMS_TIMESLICE;                                      
30011b8c:	138aac02 	orrne	sl, sl, #512	; 0x200                        
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
30011b90:	e35b0000 	cmp	fp, #0                                        
30011b94:	03a0bb01 	moveq	fp, #1024	; 0x400                           
30011b98:	13a0b000 	movne	fp, #0                                      
  old_mode |= _ISR_Get_level();                                       
30011b9c:	ebffeec9 	bl	3000d6c8 <_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;           
30011ba0:	e18bb000 	orr	fp, fp, r0                                    
  old_mode |= _ISR_Get_level();                                       
30011ba4:	e18ba00a 	orr	sl, fp, sl                                    
  *previous_mode_set = old_mode;                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
30011ba8:	e3160c01 	tst	r6, #256	; 0x100                              
    old_mode |= RTEMS_TIMESLICE;                                      
                                                                      
  old_mode |= (asr->is_enabled) ? RTEMS_ASR : RTEMS_NO_ASR;           
  old_mode |= _ISR_Get_level();                                       
                                                                      
  *previous_mode_set = old_mode;                                      
30011bac:	e585a000 	str	sl, [r5]                                      
                                                                      
  /*                                                                  
   *  These are generic thread scheduling characteristics.            
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
30011bb0:	0a000003 	beq	30011bc4 <rtems_task_mode+0x78>               
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
30011bb4:	e3140c01 	tst	r4, #256	; 0x100                              
30011bb8:	13a03000 	movne	r3, #0                                      
30011bbc:	03a03001 	moveq	r3, #1                                      
30011bc0:	e5c73074 	strb	r3, [r7, #116]	; 0x74                        
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
30011bc4:	e3160c02 	tst	r6, #512	; 0x200                              
30011bc8:	1a000028 	bne	30011c70 <rtems_task_mode+0x124>              
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
30011bcc:	e3160080 	tst	r6, #128	; 0x80                               
30011bd0:	1a00002f 	bne	30011c94 <rtems_task_mode+0x148>              
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
30011bd4:	e2166b01 	ands	r6, r6, #1024	; 0x400                        
30011bd8:	0a000012 	beq	30011c28 <rtems_task_mode+0xdc>               
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
30011bdc:	e3140b01 	tst	r4, #1024	; 0x400                             
  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 ) {                        
30011be0:	e5d82008 	ldrb	r2, [r8, #8]                                 
 *  Output:                                                           
 *    *previous_mode_set - previous mode set                          
 *     always return RTEMS_SUCCESSFUL;                                
 */                                                                   
                                                                      
rtems_status_code rtems_task_mode(                                    
30011be4:	13a03000 	movne	r3, #0                                      
30011be8:	03a03001 	moveq	r3, #1                                      
  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 ) {                        
30011bec:	e1520003 	cmp	r2, r3                                        
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
30011bf0:	03a06000 	moveq	r6, #0                                      
                                                                      
  if ( mask & RTEMS_ASR_MASK ) {                                      
    is_asr_enabled = _Modes_Is_asr_disabled( mode_set ) ? false : true;
    if ( is_asr_enabled != asr->is_enabled ) {                        
30011bf4:	0a00000b 	beq	30011c28 <rtems_task_mode+0xdc>               
      asr->is_enabled = is_asr_enabled;                               
30011bf8:	e5c83008 	strb	r3, [r8, #8]                                 
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
30011bfc:	e10f3000 	mrs	r3, CPSR                                      
30011c00:	e3832080 	orr	r2, r3, #128	; 0x80                           
30011c04:	e129f002 	msr	CPSR_fc, r2                                   
{                                                                     
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
    _signals                     = information->signals_pending;      
30011c08:	e5981018 	ldr	r1, [r8, #24]                                 
    information->signals_pending = information->signals_posted;       
30011c0c:	e5982014 	ldr	r2, [r8, #20]                                 
    information->signals_posted  = _signals;                          
30011c10:	e5881014 	str	r1, [r8, #20]                                 
  rtems_signal_set _signals;                                          
  ISR_Level        _level;                                            
                                                                      
  _ISR_Disable( _level );                                             
    _signals                     = information->signals_pending;      
    information->signals_pending = information->signals_posted;       
30011c14:	e5882018 	str	r2, [r8, #24]                                 
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
30011c18:	e129f003 	msr	CPSR_fc, r3                                   
      _ASR_Swap_signals( asr );                                       
      if ( _ASR_Are_signals_pending( asr ) ) {                        
30011c1c:	e5986014 	ldr	r6, [r8, #20]                                 
30011c20:	e3560000 	cmp	r6, #0                                        
                                                                      
  /*                                                                  
   *  This is specific to the RTEMS API                               
   */                                                                 
  is_asr_enabled = false;                                             
  needs_asr_dispatching = false;                                      
30011c24:	13a06001 	movne	r6, #1                                      
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
30011c28:	e59f3088 	ldr	r3, [pc, #136]	; 30011cb8 <rtems_task_mode+0x16c>
30011c2c:	e5933000 	ldr	r3, [r3]                                      
30011c30:	e3530003 	cmp	r3, #3                                        
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
30011c34:	13a00000 	movne	r0, #0                                      
        needs_asr_dispatching = true;                                 
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
30011c38:	18bd8ff0 	popne	{r4, r5, r6, r7, r8, r9, sl, fp, pc}        
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
                                                                      
  if ( are_signals_pending ||                                         
30011c3c:	e3560000 	cmp	r6, #0                                        
  bool are_signals_pending                                            
)                                                                     
{                                                                     
  Thread_Control     *executing;                                      
                                                                      
  executing = _Thread_Executing;                                      
30011c40:	e5993004 	ldr	r3, [r9, #4]                                  
                                                                      
  if ( are_signals_pending ||                                         
30011c44:	1a000015 	bne	30011ca0 <rtems_task_mode+0x154>              
30011c48:	e59f2064 	ldr	r2, [pc, #100]	; 30011cb4 <rtems_task_mode+0x168>
30011c4c:	e5922008 	ldr	r2, [r2, #8]                                  
30011c50:	e1530002 	cmp	r3, r2                                        
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
30011c54:	01a00006 	moveq	r0, r6                                      
30011c58:	08bd8ff0 	popeq	{r4, r5, r6, r7, r8, r9, sl, fp, pc}        
       (!_Thread_Is_heir( executing ) && executing->is_preemptible) ) {
30011c5c:	e5d33074 	ldrb	r3, [r3, #116]	; 0x74                        
30011c60:	e3530000 	cmp	r3, #0                                        
30011c64:	1a00000d 	bne	30011ca0 <rtems_task_mode+0x154>              
30011c68:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
}                                                                     
30011c6c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
   */                                                                 
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
30011c70:	e2143c02 	ands	r3, r4, #512	; 0x200                         
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
30011c74:	159f3040 	ldrne	r3, [pc, #64]	; 30011cbc <rtems_task_mode+0x170>
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
30011c78:	13a02001 	movne	r2, #1                                      
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
30011c7c:	15933000 	ldrne	r3, [r3]                                    
  if ( mask & RTEMS_PREEMPT_MASK )                                    
    executing->is_preemptible = _Modes_Is_preempt(mode_set) ? true : false;
                                                                      
  if ( mask & RTEMS_TIMESLICE_MASK ) {                                
    if ( _Modes_Is_timeslice(mode_set) ) {                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
30011c80:	1587207c 	strne	r2, [r7, #124]	; 0x7c                       
      executing->cpu_time_budget  = _Thread_Ticks_per_timeslice;      
30011c84:	15873078 	strne	r3, [r7, #120]	; 0x78                       
    } else                                                            
      executing->budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE; 
30011c88:	0587307c 	streq	r3, [r7, #124]	; 0x7c                       
  }                                                                   
                                                                      
  /*                                                                  
   *  Set the new interrupt level                                     
   */                                                                 
  if ( mask & RTEMS_INTERRUPT_MASK )                                  
30011c8c:	e3160080 	tst	r6, #128	; 0x80                               
30011c90:	0affffcf 	beq	30011bd4 <rtems_task_mode+0x88>               
 */                                                                   
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level (                
  Modes_Control mode_set                                              
)                                                                     
{                                                                     
  _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) );           
30011c94:	e2040080 	and	r0, r4, #128	; 0x80                           
30011c98:	ebffee85 	bl	3000d6b4 <_CPU_ISR_Set_level>                  
30011c9c:	eaffffcc 	b	30011bd4 <rtems_task_mode+0x88>                 
    _Thread_Dispatch_necessary = true;                                
30011ca0:	e3a03001 	mov	r3, #1                                        
30011ca4:	e5c93010 	strb	r3, [r9, #16]                                
    }                                                                 
  }                                                                   
                                                                      
  if ( _System_state_Is_up( _System_state_Get() ) ) {                 
     if (_Thread_Evaluate_is_dispatch_needed( needs_asr_dispatching ) )
      _Thread_Dispatch();                                             
30011ca8:	ebffe8bf 	bl	3000bfac <_Thread_Dispatch>                    
  }                                                                   
                                                                      
  return RTEMS_SUCCESSFUL;                                            
30011cac:	e3a00000 	mov	r0, #0                                        
30011cb0:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

3000ac40 <rtems_task_restart>: rtems_status_code rtems_task_restart( rtems_id id, uint32_t argument ) {
3000ac40:	e92d4030 	push	{r4, r5, lr}                                 
3000ac44:	e24dd004 	sub	sp, sp, #4                                    
3000ac48:	e1a05001 	mov	r5, r1                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000ac4c:	e1a0100d 	mov	r1, sp                                        
3000ac50:	eb000879 	bl	3000ce3c <_Thread_Get>                         
  switch ( location ) {                                               
3000ac54:	e59d4000 	ldr	r4, [sp]                                      
3000ac58:	e3540000 	cmp	r4, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000ac5c:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000ac60:	1a000006 	bne	3000ac80 <rtems_task_restart+0x40>            
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Restart( the_thread, NULL, argument ) ) {          
3000ac64:	e1a01004 	mov	r1, r4                                        
3000ac68:	e1a02005 	mov	r2, r5                                        
3000ac6c:	eb000a8a 	bl	3000d69c <_Thread_Restart>                     
3000ac70:	e3500000 	cmp	r0, #0                                        
3000ac74:	1a000003 	bne	3000ac88 <rtems_task_restart+0x48>            
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
3000ac78:	eb000866 	bl	3000ce18 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INCORRECT_STATE;                                   
3000ac7c:	e3a0000e 	mov	r0, #14                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000ac80:	e28dd004 	add	sp, sp, #4                                    
3000ac84:	e8bd8030 	pop	{r4, r5, pc}                                  
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Restart( the_thread, NULL, argument ) ) {          
        _Thread_Enable_dispatch();                                    
3000ac88:	eb000862 	bl	3000ce18 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000ac8c:	e1a00004 	mov	r0, r4                                        
3000ac90:	eafffffa 	b	3000ac80 <rtems_task_restart+0x40>              
                                                                      

3000d68c <rtems_task_resume>: */ rtems_status_code rtems_task_resume( rtems_id id ) {
3000d68c:	e92d4010 	push	{r4, lr}                                     
3000d690:	e24dd004 	sub	sp, sp, #4                                    
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000d694:	e1a0100d 	mov	r1, sp                                        
3000d698:	eb000892 	bl	3000f8e8 <_Thread_Get>                         
  switch ( location ) {                                               
3000d69c:	e59d4000 	ldr	r4, [sp]                                      
)                                                                     
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000d6a0:	e1a03000 	mov	r3, r0                                        
  switch ( location ) {                                               
3000d6a4:	e3540000 	cmp	r4, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000d6a8:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000d6ac:	1a000004 	bne	3000d6c4 <rtems_task_resume+0x38>             
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_suspended (                      
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_SUSPENDED);                            
3000d6b0:	e5933010 	ldr	r3, [r3, #16]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _States_Is_suspended( the_thread->current_state ) ) {      
3000d6b4:	e3130002 	tst	r3, #2                                        
3000d6b8:	1a000003 	bne	3000d6cc <rtems_task_resume+0x40>             
        _Thread_Resume( the_thread );                                 
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
3000d6bc:	eb000880 	bl	3000f8c4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INCORRECT_STATE;                                   
3000d6c0:	e3a0000e 	mov	r0, #14                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000d6c4:	e28dd004 	add	sp, sp, #4                                    
3000d6c8:	e8bd8010 	pop	{r4, pc}                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _States_Is_suspended( the_thread->current_state ) ) {      
        _Thread_Resume( the_thread );                                 
3000d6cc:	e3a01002 	mov	r1, #2                                        
3000d6d0:	eb00079d 	bl	3000f54c <_Thread_Clear_state>                 
        _Thread_Enable_dispatch();                                    
3000d6d4:	eb00087a 	bl	3000f8c4 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000d6d8:	e1a00004 	mov	r0, r4                                        
3000d6dc:	eafffff8 	b	3000d6c4 <rtems_task_resume+0x38>               
                                                                      

3000c2dc <rtems_task_set_note>: rtems_status_code rtems_task_set_note( rtems_id id, uint32_t notepad, uint32_t note ) {
3000c2dc:	e92d4030 	push	{r4, r5, lr}                                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c2e0:	e59f3094 	ldr	r3, [pc, #148]	; 3000c37c <rtems_task_set_note+0xa0>
rtems_status_code rtems_task_set_note(                                
  rtems_id id,                                                        
  uint32_t notepad,                                                   
  uint32_t note                                                       
)                                                                     
{                                                                     
3000c2e4:	e1a0c000 	mov	ip, r0                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c2e8:	e5d33004 	ldrb	r3, [r3, #4]                                 
rtems_status_code rtems_task_set_note(                                
  rtems_id id,                                                        
  uint32_t notepad,                                                   
  uint32_t note                                                       
)                                                                     
{                                                                     
3000c2ec:	e24dd008 	sub	sp, sp, #8                                    
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c2f0:	e3530000 	cmp	r3, #0                                        
rtems_status_code rtems_task_set_note(                                
  rtems_id id,                                                        
  uint32_t notepad,                                                   
  uint32_t note                                                       
)                                                                     
{                                                                     
3000c2f4:	e1a04001 	mov	r4, r1                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
    return RTEMS_NOT_CONFIGURED;                                      
3000c2f8:	03a00016 	moveq	r0, #22                                     
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  RTEMS_API_Control       *api;                                       
                                                                      
  if ( !rtems_configuration_get_notepads_enabled() )                  
3000c2fc:	0a000015 	beq	3000c358 <rtems_task_set_note+0x7c>           
  /*                                                                  
   *  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 )                                 
3000c300:	e351000f 	cmp	r1, #15                                       
    return RTEMS_INVALID_NUMBER;                                      
3000c304:	83a0000a 	movhi	r0, #10                                     
  /*                                                                  
   *  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 )                                 
3000c308:	8a000012 	bhi	3000c358 <rtems_task_set_note+0x7c>           
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c30c:	e35c0000 	cmp	ip, #0                                        
3000c310:	0a000012 	beq	3000c360 <rtems_task_set_note+0x84>           
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
3000c314:	e59f3064 	ldr	r3, [pc, #100]	; 3000c380 <rtems_task_set_note+0xa4>
3000c318:	e5933004 	ldr	r3, [r3, #4]                                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c31c:	e5931008 	ldr	r1, [r3, #8]                                  
3000c320:	e15c0001 	cmp	ip, r1                                        
3000c324:	0a00000f 	beq	3000c368 <rtems_task_set_note+0x8c>           
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      api->Notepads[ notepad ] = note;                                
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000c328:	e28d1004 	add	r1, sp, #4                                    
3000c32c:	e58d2000 	str	r2, [sp]                                      
3000c330:	eb000901 	bl	3000e73c <_Thread_Get>                         
  switch ( location ) {                                               
3000c334:	e89d0024 	ldm	sp, {r2, r5}                                  
3000c338:	e3550000 	cmp	r5, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000c33c:	13a00004 	movne	r0, #4                                      
      api->Notepads[ notepad ] = note;                                
      return RTEMS_SUCCESSFUL;                                        
  }                                                                   
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000c340:	1a000004 	bne	3000c358 <rtems_task_set_note+0x7c>           
                                                                      
    case OBJECTS_LOCAL:                                               
      api = the_thread->API_Extensions[ THREAD_API_RTEMS ];           
      api->Notepads[ notepad ] = note;                                
3000c344:	e59030f8 	ldr	r3, [r0, #248]	; 0xf8                         
3000c348:	e2844008 	add	r4, r4, #8                                    
3000c34c:	e7832104 	str	r2, [r3, r4, lsl #2]                          
      _Thread_Enable_dispatch();                                      
3000c350:	eb0008f0 	bl	3000e718 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3000c354:	e1a00005 	mov	r0, r5                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000c358:	e28dd008 	add	sp, sp, #8                                    
3000c35c:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      
  /*                                                                  
   *  Optimize the most likely case to avoid the Thread_Dispatch.     
   */                                                                 
                                                                      
  if ( _Objects_Are_ids_equal( id, OBJECTS_ID_OF_SELF ) ||            
3000c360:	e59f3018 	ldr	r3, [pc, #24]	; 3000c380 <rtems_task_set_note+0xa4><== NOT EXECUTED
3000c364:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
       _Objects_Are_ids_equal( id, _Thread_Executing->Object.id ) ) { 
      api = _Thread_Executing->API_Extensions[ THREAD_API_RTEMS ];    
      api->Notepads[ notepad ] = note;                                
3000c368:	e59330f8 	ldr	r3, [r3, #248]	; 0xf8                         <== NOT EXECUTED
3000c36c:	e2844008 	add	r4, r4, #8                                    <== NOT EXECUTED
3000c370:	e7832104 	str	r2, [r3, r4, lsl #2]                          <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3000c374:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000c378:	eafffff6 	b	3000c358 <rtems_task_set_note+0x7c>             <== NOT EXECUTED
                                                                      

3000e550 <rtems_task_set_priority>: rtems_status_code rtems_task_set_priority( rtems_id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ) {
3000e550:	e92d4030 	push	{r4, r5, lr}                                 
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
3000e554:	e2514000 	subs	r4, r1, #0                                   
rtems_status_code rtems_task_set_priority(                            
  rtems_id             id,                                            
  rtems_task_priority  new_priority,                                  
  rtems_task_priority *old_priority                                   
)                                                                     
{                                                                     
3000e558:	e24dd004 	sub	sp, sp, #4                                    
3000e55c:	e1a05002 	mov	r5, r2                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
3000e560:	0a000004 	beq	3000e578 <rtems_task_set_priority+0x28>       
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 ) );             
3000e564:	e59f3078 	ldr	r3, [pc, #120]	; 3000e5e4 <rtems_task_set_priority+0x94>
3000e568:	e5d33000 	ldrb	r3, [r3]                                     
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
3000e56c:	e1540003 	cmp	r4, r3                                        
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
3000e570:	83a00013 	movhi	r0, #19                                     
3000e574:	8a000018 	bhi	3000e5dc <rtems_task_set_priority+0x8c>       
                                                                      
  if ( !old_priority )                                                
3000e578:	e3550000 	cmp	r5, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000e57c:	03a00009 	moveq	r0, #9                                      
                                                                      
  if ( new_priority != RTEMS_CURRENT_PRIORITY &&                      
       !_RTEMS_tasks_Priority_is_valid( new_priority ) )              
    return RTEMS_INVALID_PRIORITY;                                    
                                                                      
  if ( !old_priority )                                                
3000e580:	0a000015 	beq	3000e5dc <rtems_task_set_priority+0x8c>       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000e584:	e1a0100d 	mov	r1, sp                                        
3000e588:	eb0008ed 	bl	30010944 <_Thread_Get>                         
  switch ( location ) {                                               
3000e58c:	e59d3000 	ldr	r3, [sp]                                      
3000e590:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000e594:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !old_priority )                                                
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000e598:	1a00000f 	bne	3000e5dc <rtems_task_set_priority+0x8c>       
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
3000e59c:	e5903014 	ldr	r3, [r0, #20]                                 
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
3000e5a0:	e3540000 	cmp	r4, #0                                        
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
3000e5a4:	e5853000 	str	r3, [r5]                                      
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
3000e5a8:	0a000009 	beq	3000e5d4 <rtems_task_set_priority+0x84>       
        the_thread->real_priority = new_priority;                     
        if ( the_thread->resource_count == 0 ||                       
3000e5ac:	e590301c 	ldr	r3, [r0, #28]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      /* XXX need helper to "convert" from core priority */           
      *old_priority = the_thread->current_priority;                   
      if ( new_priority != RTEMS_CURRENT_PRIORITY ) {                 
        the_thread->real_priority = new_priority;                     
3000e5b0:	e5804018 	str	r4, [r0, #24]                                 
        if ( the_thread->resource_count == 0 ||                       
3000e5b4:	e3530000 	cmp	r3, #0                                        
3000e5b8:	0a000002 	beq	3000e5c8 <rtems_task_set_priority+0x78>       
3000e5bc:	e5903014 	ldr	r3, [r0, #20]                                 <== NOT EXECUTED
3000e5c0:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
3000e5c4:	2a000002 	bcs	3000e5d4 <rtems_task_set_priority+0x84>       <== NOT EXECUTED
             the_thread->current_priority > new_priority )            
          _Thread_Change_priority( the_thread, new_priority, false ); 
3000e5c8:	e1a01004 	mov	r1, r4                                        
3000e5cc:	e3a02000 	mov	r2, #0                                        
3000e5d0:	eb0007b4 	bl	300104a8 <_Thread_Change_priority>             
      }                                                               
      _Thread_Enable_dispatch();                                      
3000e5d4:	eb0008d1 	bl	30010920 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3000e5d8:	e3a00000 	mov	r0, #0                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000e5dc:	e28dd004 	add	sp, sp, #4                                    
3000e5e0:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

30009fc8 <rtems_task_start>: rtems_status_code rtems_task_start( rtems_id id, rtems_task_entry entry_point, rtems_task_argument argument ) {
30009fc8:	e92d4070 	push	{r4, r5, r6, lr}                             
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
30009fcc:	e2515000 	subs	r5, r1, #0                                   
rtems_status_code rtems_task_start(                                   
  rtems_id         	id,                                               
  rtems_task_entry 	entry_point,                                      
  rtems_task_argument	argument                                        
)                                                                     
{                                                                     
30009fd0:	e24dd008 	sub	sp, sp, #8                                    
30009fd4:	e1a06002 	mov	r6, r2                                        
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
    return RTEMS_INVALID_ADDRESS;                                     
30009fd8:	03a00009 	moveq	r0, #9                                      
)                                                                     
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  if ( entry_point == NULL )                                          
30009fdc:	0a00000e 	beq	3000a01c <rtems_task_start+0x54>              
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
30009fe0:	e28d1004 	add	r1, sp, #4                                    
30009fe4:	eb00084f 	bl	3000c128 <_Thread_Get>                         
  switch ( location ) {                                               
30009fe8:	e59d4004 	ldr	r4, [sp, #4]                                  
30009fec:	e3540000 	cmp	r4, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
30009ff0:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( entry_point == NULL )                                          
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
30009ff4:	1a000008 	bne	3000a01c <rtems_task_start+0x54>              
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Start(                                             
30009ff8:	e1a01004 	mov	r1, r4                                        
30009ffc:	e1a02005 	mov	r2, r5                                        
3000a000:	e1a03004 	mov	r3, r4                                        
3000a004:	e58d6000 	str	r6, [sp]                                      
3000a008:	eb000ac1 	bl	3000cb14 <_Thread_Start>                       
3000a00c:	e3500000 	cmp	r0, #0                                        
3000a010:	1a000003 	bne	3000a024 <rtems_task_start+0x5c>              
             the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
3000a014:	eb00083a 	bl	3000c104 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INCORRECT_STATE;                                   
3000a018:	e3a0000e 	mov	r0, #14                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000a01c:	e28dd008 	add	sp, sp, #8                                    
3000a020:	e8bd8070 	pop	{r4, r5, r6, pc}                              
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( _Thread_Start(                                             
             the_thread, THREAD_START_NUMERIC, entry_point, NULL, argument ) ) {
        _Thread_Enable_dispatch();                                    
3000a024:	eb000836 	bl	3000c104 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000a028:	e1a00004 	mov	r0, r4                                        
3000a02c:	eafffffa 	b	3000a01c <rtems_task_start+0x54>                
                                                                      

3000d930 <rtems_task_suspend>: */ rtems_status_code rtems_task_suspend( rtems_id id ) {
3000d930:	e92d4010 	push	{r4, lr}                                     
3000d934:	e24dd004 	sub	sp, sp, #4                                    
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000d938:	e1a0100d 	mov	r1, sp                                        
3000d93c:	eb00085e 	bl	3000fabc <_Thread_Get>                         
  switch ( location ) {                                               
3000d940:	e59d3000 	ldr	r3, [sp]                                      
)                                                                     
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
3000d944:	e1a02000 	mov	r2, r0                                        
  switch ( location ) {                                               
3000d948:	e3530000 	cmp	r3, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000d94c:	13a00004 	movne	r0, #4                                      
{                                                                     
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
                                                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
3000d950:	1a000004 	bne	3000d968 <rtems_task_suspend+0x38>            
 */                                                                   
RTEMS_INLINE_ROUTINE bool _States_Is_suspended (                      
  States_Control the_states                                           
)                                                                     
{                                                                     
   return (the_states & STATES_SUSPENDED);                            
3000d954:	e5924010 	ldr	r4, [r2, #16]                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
3000d958:	e2144002 	ands	r4, r4, #2                                   
3000d95c:	0a000003 	beq	3000d970 <rtems_task_suspend+0x40>            
        _Thread_Suspend( the_thread );                                
        _Thread_Enable_dispatch();                                    
        return RTEMS_SUCCESSFUL;                                      
      }                                                               
      _Thread_Enable_dispatch();                                      
3000d960:	eb00084c 	bl	3000fa98 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_ALREADY_SUSPENDED;                                 
3000d964:	e3a0000f 	mov	r0, #15                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000d968:	e28dd004 	add	sp, sp, #4                                    
3000d96c:	e8bd8010 	pop	{r4, pc}                                      
  the_thread = _Thread_Get( id, &location );                          
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_States_Is_suspended( the_thread->current_state ) ) {     
        _Thread_Suspend( the_thread );                                
3000d970:	e3a01002 	mov	r1, #2                                        
3000d974:	eb000a6f 	bl	30010338 <_Thread_Set_state>                   
        _Thread_Enable_dispatch();                                    
3000d978:	eb000846 	bl	3000fa98 <_Thread_Enable_dispatch>             
        return RTEMS_SUCCESSFUL;                                      
3000d97c:	e1a00004 	mov	r0, r4                                        
3000d980:	eafffff8 	b	3000d968 <rtems_task_suspend+0x38>              
                                                                      

3000addc <rtems_task_variable_add>: rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) {
3000addc:	e92d4070 	push	{r4, r5, r6, lr}                             
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
3000ade0:	e2514000 	subs	r4, r1, #0                                   
rtems_status_code rtems_task_variable_add(                            
  rtems_id tid,                                                       
  void **ptr,                                                         
  void (*dtor)(void *)                                                
)                                                                     
{                                                                     
3000ade4:	e24dd004 	sub	sp, sp, #4                                    
3000ade8:	e1a05002 	mov	r5, r2                                        
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
3000adec:	03a00009 	moveq	r0, #9                                      
{                                                                     
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
3000adf0:	0a000016 	beq	3000ae50 <rtems_task_variable_add+0x74>       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
3000adf4:	e1a0100d 	mov	r1, sp                                        
3000adf8:	eb00089a 	bl	3000d068 <_Thread_Get>                         
  switch (location) {                                                 
3000adfc:	e59d3000 	ldr	r3, [sp]                                      
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
3000ae00:	e1a06000 	mov	r6, r0                                        
  switch (location) {                                                 
3000ae04:	e3530000 	cmp	r3, #0                                        
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
3000ae08:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
3000ae0c:	1a00000f 	bne	3000ae50 <rtems_task_variable_add+0x74>       
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
3000ae10:	e5963104 	ldr	r3, [r6, #260]	; 0x104                        
      while (tvp) {                                                   
3000ae14:	e3530000 	cmp	r3, #0                                        
3000ae18:	1a000011 	bne	3000ae64 <rtems_task_variable_add+0x88>       
                                                                      
      /*                                                              
       *  Now allocate memory for this task variable.                 
       */                                                             
      new = (rtems_task_variable_t *)                                 
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
3000ae1c:	e3a00014 	mov	r0, #20                                       
3000ae20:	eb000cfc 	bl	3000e218 <_Workspace_Allocate>                 
      if (new == NULL) {                                              
3000ae24:	e3500000 	cmp	r0, #0                                        
3000ae28:	0a000014 	beq	3000ae80 <rtems_task_variable_add+0xa4>       
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
3000ae2c:	e5942000 	ldr	r2, [r4]                                      
      new->ptr = ptr;                                                 
      new->dtor = dtor;                                               
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
3000ae30:	e5963104 	ldr	r3, [r6, #260]	; 0x104                        
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
      if (new == NULL) {                                              
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
3000ae34:	e5802008 	str	r2, [r0, #8]                                  
      new->ptr = ptr;                                                 
3000ae38:	e5804004 	str	r4, [r0, #4]                                  
      new->dtor = dtor;                                               
3000ae3c:	e5805010 	str	r5, [r0, #16]                                 
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
3000ae40:	e5803000 	str	r3, [r0]                                      
      the_thread->task_variables = new;                               
3000ae44:	e5860104 	str	r0, [r6, #260]	; 0x104                        
      _Thread_Enable_dispatch();                                      
3000ae48:	eb00087d 	bl	3000d044 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3000ae4c:	e3a00000 	mov	r0, #0                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000ae50:	e28dd004 	add	sp, sp, #4                                    
3000ae54:	e8bd8070 	pop	{r4, r5, r6, pc}                              
        if (tvp->ptr == ptr) {                                        
          tvp->dtor = dtor;                                           
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
3000ae58:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
3000ae5c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ae60:	0affffed 	beq	3000ae1c <rtems_task_variable_add+0x40>       <== NOT EXECUTED
        if (tvp->ptr == ptr) {                                        
3000ae64:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
3000ae68:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000ae6c:	1afffff9 	bne	3000ae58 <rtems_task_variable_add+0x7c>       <== NOT EXECUTED
          tvp->dtor = dtor;                                           
3000ae70:	e5835010 	str	r5, [r3, #16]                                 <== NOT EXECUTED
          _Thread_Enable_dispatch();                                  
3000ae74:	eb000872 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
3000ae78:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000ae7c:	eafffff3 	b	3000ae50 <rtems_task_variable_add+0x74>         <== NOT EXECUTED
       *  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();                                    
3000ae80:	eb00086f 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return RTEMS_NO_MEMORY;                                       
3000ae84:	e3a0001a 	mov	r0, #26                                       <== NOT EXECUTED
3000ae88:	eafffff0 	b	3000ae50 <rtems_task_variable_add+0x74>         <== NOT EXECUTED
                                                                      

3000ae8c <rtems_task_variable_delete>: rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) {
3000ae8c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
3000ae90:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_task_variable_delete(                         
  rtems_id  tid,                                                      
  void    **ptr                                                       
)                                                                     
{                                                                     
3000ae94:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
3000ae98:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
{                                                                     
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
3000ae9c:	0a000015 	beq	3000aef8 <rtems_task_variable_delete+0x6c>    <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
3000aea0:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000aea4:	eb00086f 	bl	3000d068 <_Thread_Get>                         <== NOT EXECUTED
  switch (location) {                                                 
3000aea8:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000aeac:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
                                                                      
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000aeb0:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
3000aeb4:	1a00000f 	bne	3000aef8 <rtems_task_variable_delete+0x6c>    <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
3000aeb8:	e5903104 	ldr	r3, [r0, #260]	; 0x104                        <== NOT EXECUTED
      while (tvp) {                                                   
3000aebc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000aec0:	0a00000a 	beq	3000aef0 <rtems_task_variable_delete+0x64>    <== NOT EXECUTED
        if (tvp->ptr == ptr) {                                        
3000aec4:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
3000aec8:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000aecc:	1a000004 	bne	3000aee4 <rtems_task_variable_delete+0x58>    <== NOT EXECUTED
3000aed0:	ea000010 	b	3000af18 <rtems_task_variable_delete+0x8c>      <== NOT EXECUTED
3000aed4:	e5912004 	ldr	r2, [r1, #4]                                  <== NOT EXECUTED
3000aed8:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000aedc:	0a000007 	beq	3000af00 <rtems_task_variable_delete+0x74>    <== NOT EXECUTED
3000aee0:	e1a03001 	mov	r3, r1                                        <== NOT EXECUTED
          _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp );  
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
3000aee4:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
3000aee8:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000aeec:	1afffff8 	bne	3000aed4 <rtems_task_variable_delete+0x48>    <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
3000aef0:	eb000853 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INVALID_ADDRESS;                                   
3000aef4:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000aef8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000aefc:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
3000af00:	e5912000 	ldr	r2, [r1]                                      <== NOT EXECUTED
3000af04:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
                                                                      
          _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp );  
3000af08:	eb000028 	bl	3000afb0 <_RTEMS_Tasks_Invoke_task_variable_dtor><== NOT EXECUTED
          _Thread_Enable_dispatch();                                  
3000af0c:	eb00084c 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
3000af10:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000af14:	eafffff7 	b	3000aef8 <rtems_task_variable_delete+0x6c>      <== NOT EXECUTED
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
3000af18:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000af1c:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000af20:	e5802104 	str	r2, [r0, #260]	; 0x104                        <== NOT EXECUTED
3000af24:	eafffff7 	b	3000af08 <rtems_task_variable_delete+0x7c>      <== NOT EXECUTED
                                                                      

3000af28 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
3000af28:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
3000af2c:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
rtems_status_code rtems_task_variable_get(                            
  rtems_id tid,                                                       
  void **ptr,                                                         
  void **result                                                       
)                                                                     
{                                                                     
3000af30:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000af34:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
3000af38:	0a000017 	beq	3000af9c <rtems_task_variable_get+0x74>       <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
3000af3c:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000af40:	0a000015 	beq	3000af9c <rtems_task_variable_get+0x74>       <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
3000af44:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000af48:	eb000846 	bl	3000d068 <_Thread_Get>                         <== NOT EXECUTED
  switch (location) {                                                 
3000af4c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000af50:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
#endif                                                                
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
3000af54:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
3000af58:	1a00000d 	bne	3000af94 <rtems_task_variable_get+0x6c>       <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
3000af5c:	e5903104 	ldr	r3, [r0, #260]	; 0x104                        <== NOT EXECUTED
      while (tvp) {                                                   
3000af60:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000af64:	1a000003 	bne	3000af78 <rtems_task_variable_get+0x50>       <== NOT EXECUTED
3000af68:	ea00000d 	b	3000afa4 <rtems_task_variable_get+0x7c>         <== NOT EXECUTED
	   */                                                                
          *result = tvp->tval;                                        
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
3000af6c:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
3000af70:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000af74:	0a00000a 	beq	3000afa4 <rtems_task_variable_get+0x7c>       <== NOT EXECUTED
        if (tvp->ptr == ptr) {                                        
3000af78:	e5932004 	ldr	r2, [r3, #4]                                  <== NOT EXECUTED
3000af7c:	e1520004 	cmp	r2, r4                                        <== NOT EXECUTED
3000af80:	1afffff9 	bne	3000af6c <rtems_task_variable_get+0x44>       <== NOT EXECUTED
	  /*                                                                 
	   * Should this return the current (i.e not the                     
	   * saved) value if `tid' is the current task?                      
	   */                                                                
          *result = tvp->tval;                                        
3000af84:	e593300c 	ldr	r3, [r3, #12]                                 <== NOT EXECUTED
3000af88:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
          _Thread_Enable_dispatch();                                  
3000af8c:	eb00082c 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
3000af90:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000af94:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000af98:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
3000af9c:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
3000afa0:	eafffffb 	b	3000af94 <rtems_task_variable_get+0x6c>         <== NOT EXECUTED
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
3000afa4:	eb000826 	bl	3000d044 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_INVALID_ADDRESS;                                   
3000afa8:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
3000afac:	eafffff8 	b	3000af94 <rtems_task_variable_get+0x6c>         <== NOT EXECUTED
                                                                      

3000a030 <rtems_task_wake_after>:
3000a030:	e59f307c 	ldr	r3, [pc, #124]	; 3000a0b4 <rtems_task_wake_after+0x84>
 */                                                                   
                                                                      
rtems_status_code rtems_task_wake_after(                              
  rtems_interval ticks                                                
)                                                                     
{                                                                     
3000a034:	e92d4030 	push	{r4, r5, lr}                                 
3000a038:	e5932000 	ldr	r2, [r3]                                      
3000a03c:	e1a04000 	mov	r4, r0                                        
3000a040:	e2822001 	add	r2, r2, #1                                    
3000a044:	e5832000 	str	r2, [r3]                                      
  _Thread_Disable_dispatch();                                         
    if ( ticks == 0 ) {                                               
3000a048:	e3500000 	cmp	r0, #0                                        
3000a04c:	0a000012 	beq	3000a09c <rtems_task_wake_after+0x6c>         
      _Scheduler_Yield();                                             
    } else {                                                          
      _Thread_Set_state( _Thread_Executing, STATES_DELAYING );        
3000a050:	e59f5060 	ldr	r5, [pc, #96]	; 3000a0b8 <rtems_task_wake_after+0x88><== NOT EXECUTED
3000a054:	e3a01008 	mov	r1, #8                                        <== NOT EXECUTED
3000a058:	e5950004 	ldr	r0, [r5, #4]                                  <== NOT EXECUTED
3000a05c:	eb000a50 	bl	3000c9a4 <_Thread_Set_state>                   <== NOT EXECUTED
      _Watchdog_Initialize(                                           
        &_Thread_Executing->Timer,                                    
3000a060:	e5951004 	ldr	r1, [r5, #4]                                  <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000a064:	e59f0050 	ldr	r0, [pc, #80]	; 3000a0bc <rtems_task_wake_after+0x8c><== NOT EXECUTED
  _Thread_Disable_dispatch();                                         
    if ( ticks == 0 ) {                                               
      _Scheduler_Yield();                                             
    } else {                                                          
      _Thread_Set_state( _Thread_Executing, STATES_DELAYING );        
      _Watchdog_Initialize(                                           
3000a068:	e5912008 	ldr	r2, [r1, #8]                                  <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000a06c:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000a070:	e5813050 	str	r3, [r1, #80]	; 0x50                          <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
3000a074:	e5812068 	str	r2, [r1, #104]	; 0x68                         <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
3000a078:	e581306c 	str	r3, [r1, #108]	; 0x6c                         <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000a07c:	e5810064 	str	r0, [r1, #100]	; 0x64                         <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000a080:	e5814054 	str	r4, [r1, #84]	; 0x54                          <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000a084:	e59f0034 	ldr	r0, [pc, #52]	; 3000a0c0 <rtems_task_wake_after+0x90><== NOT EXECUTED
3000a088:	e2811048 	add	r1, r1, #72	; 0x48                            <== NOT EXECUTED
3000a08c:	eb000bb6 	bl	3000cf6c <_Watchdog_Insert>                    <== NOT EXECUTED
        _Thread_Executing->Object.id,                                 
        NULL                                                          
      );                                                              
      _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );     
    }                                                                 
  _Thread_Enable_dispatch();                                          
3000a090:	eb00081b 	bl	3000c104 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000a094:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a098:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
 *  always operates on the scheduler that 'owns' the currently executing
 *  thread.                                                           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Scheduler_Yield( void )                    
{                                                                     
  _Scheduler.Operations.yield();                                      
3000a09c:	e59f3020 	ldr	r3, [pc, #32]	; 3000a0c4 <rtems_task_wake_after+0x94>
3000a0a0:	e1a0e00f 	mov	lr, pc                                        
3000a0a4:	e593f00c 	ldr	pc, [r3, #12]                                 
        _Thread_Executing->Object.id,                                 
        NULL                                                          
      );                                                              
      _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );     
    }                                                                 
  _Thread_Enable_dispatch();                                          
3000a0a8:	eb000815 	bl	3000c104 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000a0ac:	e3a00000 	mov	r0, #0                                        
3000a0b0:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

3000b0ec <rtems_task_wake_when>: rtems_time_of_day *time_buffer ) { Watchdog_Interval seconds; if ( !_TOD_Is_set )
3000b0ec:	e59f30bc 	ldr	r3, [pc, #188]	; 3000b1b0 <rtems_task_wake_when+0xc4>
 */                                                                   
                                                                      
rtems_status_code rtems_task_wake_when(                               
  rtems_time_of_day *time_buffer                                      
)                                                                     
{                                                                     
3000b0f0:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
3000b0f4:	e5d33000 	ldrb	r3, [r3]                                     
 */                                                                   
                                                                      
rtems_status_code rtems_task_wake_when(                               
  rtems_time_of_day *time_buffer                                      
)                                                                     
{                                                                     
3000b0f8:	e1a05000 	mov	r5, r0                                        
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
3000b0fc:	e3530000 	cmp	r3, #0                                        
    return RTEMS_NOT_DEFINED;                                         
3000b100:	03a0000b 	moveq	r0, #11                                     
  rtems_time_of_day *time_buffer                                      
)                                                                     
{                                                                     
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
3000b104:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
3000b108:	e3550000 	cmp	r5, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000b10c:	03a00009 	moveq	r0, #9                                      
  Watchdog_Interval   seconds;                                        
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !time_buffer )                                                 
3000b110:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
3000b114:	e3a04000 	mov	r4, #0                                        
3000b118:	e5854018 	str	r4, [r5, #24]                                 
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
3000b11c:	ebfffcfa 	bl	3000a50c <_TOD_Validate>                       
3000b120:	e1500004 	cmp	r0, r4                                        
    return RTEMS_INVALID_CLOCK;                                       
3000b124:	03a00014 	moveq	r0, #20                                     
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
3000b128:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
3000b12c:	e1a00005 	mov	r0, r5                                        
3000b130:	ebfffcca 	bl	3000a460 <_TOD_To_seconds>                     
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3000b134:	e59f6078 	ldr	r6, [pc, #120]	; 3000b1b4 <rtems_task_wake_when+0xc8>
  time_buffer->ticks = 0;                                             
                                                                      
  if ( !_TOD_Validate( time_buffer ) )                                
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( time_buffer );                           
3000b138:	e1a05000 	mov	r5, r0                                        
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3000b13c:	e5963000 	ldr	r3, [r6]                                      
3000b140:	e1500003 	cmp	r0, r3                                        
3000b144:	8a000001 	bhi	3000b150 <rtems_task_wake_when+0x64>          
    return RTEMS_INVALID_CLOCK;                                       
3000b148:	e3a00014 	mov	r0, #20                                       <== NOT EXECUTED
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000b14c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
3000b150:	e59f3060 	ldr	r3, [pc, #96]	; 3000b1b8 <rtems_task_wake_when+0xcc>
3000b154:	e5932000 	ldr	r2, [r3]                                      
3000b158:	e2822001 	add	r2, r2, #1                                    
3000b15c:	e5832000 	str	r2, [r3]                                      
                                                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
3000b160:	e59f7054 	ldr	r7, [pc, #84]	; 3000b1bc <rtems_task_wake_when+0xd0>
3000b164:	e3a01010 	mov	r1, #16                                       
3000b168:	e5970004 	ldr	r0, [r7, #4]                                  
3000b16c:	eb000a58 	bl	3000dad4 <_Thread_Set_state>                   
    _Watchdog_Initialize(                                             
      &_Thread_Executing->Timer,                                      
3000b170:	e5971004 	ldr	r1, [r7, #4]                                  
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
3000b174:	e5962000 	ldr	r2, [r6]                                      
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  _Thread_Disable_dispatch();                                         
    _Thread_Set_state( _Thread_Executing, STATES_WAITING_FOR_TIME );  
    _Watchdog_Initialize(                                             
3000b178:	e5913008 	ldr	r3, [r1, #8]                                  
      &_Thread_Executing->Timer,                                      
      _Thread_Delay_ended,                                            
      _Thread_Executing->Object.id,                                   
      NULL                                                            
    );                                                                
    _Watchdog_Insert_seconds(                                         
3000b17c:	e0625005 	rsb	r5, r2, r5                                    
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000b180:	e59f2038 	ldr	r2, [pc, #56]	; 3000b1c0 <rtems_task_wake_when+0xd4>
  the_watchdog->id        = id;                                       
3000b184:	e5813068 	str	r3, [r1, #104]	; 0x68                         
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3000b188:	e5812064 	str	r2, [r1, #100]	; 0x64                         
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3000b18c:	e59f0030 	ldr	r0, [pc, #48]	; 3000b1c4 <rtems_task_wake_when+0xd8>
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000b190:	e5814050 	str	r4, [r1, #80]	; 0x50                          
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
3000b194:	e581406c 	str	r4, [r1, #108]	; 0x6c                         
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000b198:	e5815054 	str	r5, [r1, #84]	; 0x54                          
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3000b19c:	e2811048 	add	r1, r1, #72	; 0x48                            
3000b1a0:	eb000bee 	bl	3000e160 <_Watchdog_Insert>                    
      &_Thread_Executing->Timer,                                      
      seconds - _TOD_Seconds_since_epoch()                            
    );                                                                
  _Thread_Enable_dispatch();                                          
3000b1a4:	eb000822 	bl	3000d234 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
3000b1a8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000b1ac:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

3000a524 <rtems_timer_create>: rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id ) {
3000a524:	e92d4070 	push	{r4, r5, r6, lr}                             
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
3000a528:	e2504000 	subs	r4, r0, #0                                   
                                                                      
rtems_status_code rtems_timer_create(                                 
  rtems_name  name,                                                   
  rtems_id   *id                                                      
)                                                                     
{                                                                     
3000a52c:	e1a05001 	mov	r5, r1                                        
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
3000a530:	03a00003 	moveq	r0, #3                                      
  rtems_id   *id                                                      
)                                                                     
{                                                                     
  Timer_Control *the_timer;                                           
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
3000a534:	08bd8070 	popeq	{r4, r5, r6, pc}                            
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
3000a538:	e3510000 	cmp	r1, #0                                        
3000a53c:	0a00001b 	beq	3000a5b0 <rtems_timer_create+0x8c>            
3000a540:	e59f3070 	ldr	r3, [pc, #112]	; 3000a5b8 <rtems_timer_create+0x94>
3000a544:	e5932000 	ldr	r2, [r3]                                      
3000a548:	e2822001 	add	r2, r2, #1                                    
3000a54c:	e5832000 	str	r2, [r3]                                      
 *  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 );  
3000a550:	e59f6064 	ldr	r6, [pc, #100]	; 3000a5bc <rtems_timer_create+0x98>
3000a554:	e1a00006 	mov	r0, r6                                        
3000a558:	eb0003d9 	bl	3000b4c4 <_Objects_Allocate>                   
                                                                      
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
3000a55c:	e3500000 	cmp	r0, #0                                        
3000a560:	0a00000f 	beq	3000a5a4 <rtems_timer_create+0x80>            
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
3000a564:	e5903008 	ldr	r3, [r0, #8]                                  
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a568:	e596201c 	ldr	r2, [r6, #28]                                 
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  Objects_Name         name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
3000a56c:	e1a01803 	lsl	r1, r3, #16                                   
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000a570:	e3a06000 	mov	r6, #0                                        
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
                                                                      
  the_timer->the_class = TIMER_DORMANT;                               
3000a574:	e3a0c004 	mov	ip, #4                                        
3000a578:	e580c038 	str	ip, [r0, #56]	; 0x38                          
3000a57c:	e5806018 	str	r6, [r0, #24]                                 
  the_watchdog->routine   = routine;                                  
3000a580:	e580602c 	str	r6, [r0, #44]	; 0x2c                          
  the_watchdog->id        = id;                                       
3000a584:	e5806030 	str	r6, [r0, #48]	; 0x30                          
  the_watchdog->user_data = user_data;                                
3000a588:	e5806034 	str	r6, [r0, #52]	; 0x34                          
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
3000a58c:	e7820721 	str	r0, [r2, r1, lsr #14]                         
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
3000a590:	e580400c 	str	r4, [r0, #12]                                 
    &_Timer_Information,                                              
    &the_timer->Object,                                               
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
3000a594:	e5853000 	str	r3, [r5]                                      
  _Thread_Enable_dispatch();                                          
3000a598:	eb000834 	bl	3000c670 <_Thread_Enable_dispatch>             
  return RTEMS_SUCCESSFUL;                                            
3000a59c:	e1a00006 	mov	r0, r6                                        
3000a5a0:	e8bd8070 	pop	{r4, r5, r6, pc}                              
  _Thread_Disable_dispatch();         /* to prevent deletion */       
                                                                      
  the_timer = _Timer_Allocate();                                      
                                                                      
  if ( !the_timer ) {                                                 
    _Thread_Enable_dispatch();                                        
3000a5a4:	eb000831 	bl	3000c670 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    return RTEMS_TOO_MANY;                                            
3000a5a8:	e3a00005 	mov	r0, #5                                        <== NOT EXECUTED
3000a5ac:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    return RTEMS_INVALID_ADDRESS;                                     
3000a5b0:	e3a00009 	mov	r0, #9                                        <== NOT EXECUTED
  );                                                                  
                                                                      
  *id = the_timer->Object.id;                                         
  _Thread_Enable_dispatch();                                          
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
3000a5b4:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000a5c0 <rtems_timer_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
3000a5c0:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
3000a5c4:	e2516000 	subs	r6, r1, #0                                   
  rtems_id                           id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3000a5c8:	e1a05000 	mov	r5, r0                                        
3000a5cc:	e24dd004 	sub	sp, sp, #4                                    
3000a5d0:	e1a04002 	mov	r4, r2                                        
3000a5d4:	e1a07003 	mov	r7, r3                                        
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
3000a5d8:	03a0000a 	moveq	r0, #10                                     
{                                                                     
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
3000a5dc:	0a000020 	beq	3000a664 <rtems_timer_fire_after+0xa4>        
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
3000a5e0:	e3520000 	cmp	r2, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3000a5e4:	03a00009 	moveq	r0, #9                                      
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
3000a5e8:	0a00001d 	beq	3000a664 <rtems_timer_fire_after+0xa4>        
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
    _Objects_Get( &_Timer_Information, id, location );                
3000a5ec:	e59f0088 	ldr	r0, [pc, #136]	; 3000a67c <rtems_timer_fire_after+0xbc>
3000a5f0:	e1a01005 	mov	r1, r5                                        
3000a5f4:	e1a0200d 	mov	r2, sp                                        
3000a5f8:	eb0004e2 	bl	3000b988 <_Objects_Get>                        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3000a5fc:	e59d3000 	ldr	r3, [sp]                                      
3000a600:	e1a08000 	mov	r8, r0                                        
3000a604:	e3530000 	cmp	r3, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3000a608:	13a00004 	movne	r0, #4                                      
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3000a60c:	1a000014 	bne	3000a664 <rtems_timer_fire_after+0xa4>        
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
3000a610:	e288a010 	add	sl, r8, #16                                   
3000a614:	e1a0000a 	mov	r0, sl                                        
3000a618:	eb000c1d 	bl	3000d694 <_Watchdog_Remove>                    
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000a61c:	e10f2000 	mrs	r2, CPSR                                      
3000a620:	e3823080 	orr	r3, r2, #128	; 0x80                           
3000a624:	e129f003 	msr	CPSR_fc, r3                                   
        /*                                                            
         *  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 ) {         
3000a628:	e5983018 	ldr	r3, [r8, #24]                                 
3000a62c:	e3530000 	cmp	r3, #0                                        
3000a630:	1a00000d 	bne	3000a66c <rtems_timer_fire_after+0xac>        
        /*                                                            
         *  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;                        
3000a634:	e5883038 	str	r3, [r8, #56]	; 0x38                          
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3000a638:	e5883018 	str	r3, [r8, #24]                                 
  the_watchdog->routine   = routine;                                  
3000a63c:	e588402c 	str	r4, [r8, #44]	; 0x2c                          
  the_watchdog->id        = id;                                       
3000a640:	e5885030 	str	r5, [r8, #48]	; 0x30                          
  the_watchdog->user_data = user_data;                                
3000a644:	e5887034 	str	r7, [r8, #52]	; 0x34                          
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000a648:	e129f002 	msr	CPSR_fc, r2                                   
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000a64c:	e59f002c 	ldr	r0, [pc, #44]	; 3000a680 <rtems_timer_fire_after+0xc0>
3000a650:	e1a0100a 	mov	r1, sl                                        
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3000a654:	e588601c 	str	r6, [r8, #28]                                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
3000a658:	eb000b9e 	bl	3000d4d8 <_Watchdog_Insert>                    
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _ISR_Enable( level );                                           
                                                                      
                                                                      
      _Watchdog_Insert_ticks( &the_timer->Ticker, ticks );            
      _Thread_Enable_dispatch();                                      
3000a65c:	eb000803 	bl	3000c670 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3000a660:	e3a00000 	mov	r0, #0                                        
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3000a664:	e28dd004 	add	sp, sp, #4                                    
3000a668:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
3000a66c:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
          _ISR_Enable( level );                                       
          _Thread_Enable_dispatch();                                  
3000a670:	eb0007fe 	bl	3000c670 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
3000a674:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a678:	eafffff9 	b	3000a664 <rtems_timer_fire_after+0xa4>          <== NOT EXECUTED
                                                                      

3001a0f8 <rtems_timer_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
3001a0f8:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
3001a0fc:	e1a05000 	mov	r5, r0                                        
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a100:	e59f00d0 	ldr	r0, [pc, #208]	; 3001a1d8 <rtems_timer_fire_when+0xe0>
  rtems_id                            id,                             
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry   routine,                        
  void                               *user_data                       
)                                                                     
{                                                                     
3001a104:	e24dd004 	sub	sp, sp, #4                                    
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a108:	e5d0c000 	ldrb	ip, [r0]                                     
  rtems_id                            id,                             
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry   routine,                        
  void                               *user_data                       
)                                                                     
{                                                                     
3001a10c:	e1a06001 	mov	r6, r1                                        
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a110:	e35c0000 	cmp	ip, #0                                        
  rtems_id                            id,                             
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry   routine,                        
  void                               *user_data                       
)                                                                     
{                                                                     
3001a114:	e1a04002 	mov	r4, r2                                        
3001a118:	e1a07003 	mov	r7, r3                                        
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
3001a11c:	03a0000b 	moveq	r0, #11                                     
{                                                                     
  Timer_Control       *the_timer;                                     
  Objects_Locations    location;                                      
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a120:	1a000001 	bne	3001a12c <rtems_timer_fire_when+0x34>         
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001a124:	e28dd004 	add	sp, sp, #4                                    
3001a128:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
  rtems_interval       seconds;                                       
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
3001a12c:	e1a00001 	mov	r0, r1                                        
3001a130:	ebfff4b5 	bl	3001740c <_TOD_Validate>                       
3001a134:	e3500000 	cmp	r0, #0                                        
3001a138:	0a000009 	beq	3001a164 <rtems_timer_fire_when+0x6c>         
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
3001a13c:	e3540000 	cmp	r4, #0                                        
    return RTEMS_INVALID_ADDRESS;                                     
3001a140:	03a00009 	moveq	r0, #9                                      
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
3001a144:	0afffff6 	beq	3001a124 <rtems_timer_fire_when+0x2c>         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
3001a148:	e1a00006 	mov	r0, r6                                        
3001a14c:	ebfff483 	bl	30017360 <_TOD_To_seconds>                     
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3001a150:	e59f8084 	ldr	r8, [pc, #132]	; 3001a1dc <rtems_timer_fire_when+0xe4>
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
3001a154:	e1a06000 	mov	r6, r0                                        
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3001a158:	e5983000 	ldr	r3, [r8]                                      
3001a15c:	e1500003 	cmp	r0, r3                                        
3001a160:	8a000001 	bhi	3001a16c <rtems_timer_fire_when+0x74>         
    return RTEMS_INVALID_CLOCK;                                       
3001a164:	e3a00014 	mov	r0, #20                                       <== NOT EXECUTED
3001a168:	eaffffed 	b	3001a124 <rtems_timer_fire_when+0x2c>           <== NOT EXECUTED
3001a16c:	e59f006c 	ldr	r0, [pc, #108]	; 3001a1e0 <rtems_timer_fire_when+0xe8>
3001a170:	e1a01005 	mov	r1, r5                                        
3001a174:	e1a0200d 	mov	r2, sp                                        
3001a178:	eb000b75 	bl	3001cf54 <_Objects_Get>                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a17c:	e59da000 	ldr	sl, [sp]                                      
3001a180:	e1a09000 	mov	r9, r0                                        
3001a184:	e35a0000 	cmp	sl, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001a188:	13a00004 	movne	r0, #4                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a18c:	1affffe4 	bne	3001a124 <rtems_timer_fire_when+0x2c>         
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
3001a190:	e289b010 	add	fp, r9, #16                                   
3001a194:	e1a0000b 	mov	r0, fp                                        
3001a198:	eb001379 	bl	3001ef84 <_Watchdog_Remove>                    
      the_timer->the_class = TIMER_TIME_OF_DAY;                       
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _Watchdog_Insert_seconds(                                       
3001a19c:	e5983000 	ldr	r3, [r8]                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3001a1a0:	e59f003c 	ldr	r0, [pc, #60]	; 3001a1e4 <rtems_timer_fire_when+0xec>
3001a1a4:	e0636006 	rsb	r6, r3, r6                                    
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY;                       
3001a1a8:	e3a03002 	mov	r3, #2                                        
3001a1ac:	e5893038 	str	r3, [r9, #56]	; 0x38                          
3001a1b0:	e1a0100b 	mov	r1, fp                                        
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001a1b4:	e589a018 	str	sl, [r9, #24]                                 
  the_watchdog->routine   = routine;                                  
3001a1b8:	e589402c 	str	r4, [r9, #44]	; 0x2c                          
  the_watchdog->id        = id;                                       
3001a1bc:	e5895030 	str	r5, [r9, #48]	; 0x30                          
  the_watchdog->user_data = user_data;                                
3001a1c0:	e5897034 	str	r7, [r9, #52]	; 0x34                          
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
3001a1c4:	e589601c 	str	r6, [r9, #28]                                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );         
3001a1c8:	eb0012fe 	bl	3001edc8 <_Watchdog_Insert>                    
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _Watchdog_Insert_seconds(                                       
         &the_timer->Ticker,                                          
         seconds - _TOD_Seconds_since_epoch()                         
       );                                                             
      _Thread_Enable_dispatch();                                      
3001a1cc:	eb000ebc 	bl	3001dcc4 <_Thread_Enable_dispatch>             
      return RTEMS_SUCCESSFUL;                                        
3001a1d0:	e1a0000a 	mov	r0, sl                                        
3001a1d4:	eaffffd2 	b	3001a124 <rtems_timer_fire_when+0x2c>           
                                                                      

3001a1e8 <rtems_timer_get_information>: rtems_status_code rtems_timer_get_information( rtems_id id, rtems_timer_information *the_info ) {
3001a1e8:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  if ( !the_info )                                                    
3001a1ec:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
rtems_status_code rtems_timer_get_information(                        
  rtems_id                 id,                                        
  rtems_timer_information *the_info                                   
)                                                                     
{                                                                     
3001a1f0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3001a1f4:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  if ( !the_info )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
3001a1f8:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  if ( !the_info )                                                    
3001a1fc:	0a00000e 	beq	3001a23c <rtems_timer_get_information+0x54>   <== NOT EXECUTED
3001a200:	e59f003c 	ldr	r0, [pc, #60]	; 3001a244 <rtems_timer_get_information+0x5c><== NOT EXECUTED
3001a204:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3001a208:	eb000b51 	bl	3001cf54 <_Objects_Get>                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a20c:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
3001a210:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001a214:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( !the_info )                                                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a218:	1a000007 	bne	3001a23c <rtems_timer_get_information+0x54>   <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      the_info->the_class  = the_timer->the_class;                    
3001a21c:	e590c038 	ldr	ip, [r0, #56]	; 0x38                          <== NOT EXECUTED
      the_info->initial    = the_timer->Ticker.initial;               
3001a220:	e590101c 	ldr	r1, [r0, #28]                                 <== NOT EXECUTED
      the_info->start_time = the_timer->Ticker.start_time;            
3001a224:	e5902024 	ldr	r2, [r0, #36]	; 0x24                          <== NOT EXECUTED
      the_info->stop_time  = the_timer->Ticker.stop_time;             
3001a228:	e5903028 	ldr	r3, [r0, #40]	; 0x28                          <== NOT EXECUTED
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_info->the_class  = the_timer->the_class;                    
3001a22c:	e584c000 	str	ip, [r4]                                      <== NOT EXECUTED
      the_info->initial    = the_timer->Ticker.initial;               
3001a230:	e984000e 	stmib	r4, {r1, r2, r3}                            <== NOT EXECUTED
      the_info->start_time = the_timer->Ticker.start_time;            
      the_info->stop_time  = the_timer->Ticker.stop_time;             
      _Thread_Enable_dispatch();                                      
3001a234:	eb000ea2 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3001a238:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001a23c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3001a240:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3001a8f4 <rtems_timer_initiate_server>: rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ) {
3001a8f4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
3001a8f8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3001a8fc:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
3001a900:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
3001a904:	e1a08002 	mov	r8, r2                                        <== NOT EXECUTED
3001a908:	0a00004a 	beq	3001aa38 <rtems_timer_initiate_server+0x144>  <== NOT EXECUTED
            ( the_priority <= RTEMS_MAXIMUM_PRIORITY ) );             
3001a90c:	e59f313c 	ldr	r3, [pc, #316]	; 3001aa50 <rtems_timer_initiate_server+0x15c><== NOT EXECUTED
3001a910:	e5d33000 	ldrb	r3, [r3]                                     <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _RTEMS_tasks_Priority_is_valid (            
  rtems_task_priority the_priority                                    
)                                                                     
{                                                                     
  return (  ( the_priority >= RTEMS_MINIMUM_PRIORITY ) &&             
3001a914:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
3001a918:	9a00004a 	bls	3001aa48 <rtems_timer_initiate_server+0x154>  <== NOT EXECUTED
   *  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 )            
3001a91c:	e3700001 	cmn	r0, #1                                        <== NOT EXECUTED
      return RTEMS_INVALID_PRIORITY;                                  
    _priority = 0;                                                    
3001a920:	03a07000 	moveq	r7, #0                                      <== NOT EXECUTED
   *  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 )            
3001a924:	1a000043 	bne	3001aa38 <rtems_timer_initiate_server+0x144>  <== NOT EXECUTED
3001a928:	e59f3124 	ldr	r3, [pc, #292]	; 3001aa54 <rtems_timer_initiate_server+0x160><== NOT EXECUTED
3001a92c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3001a930:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3001a934:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Just to make sure this is only called once.                     
   */                                                                 
  _Thread_Disable_dispatch();                                         
    tmpInitialized  = initialized;                                    
3001a938:	e59f4118 	ldr	r4, [pc, #280]	; 3001aa58 <rtems_timer_initiate_server+0x164><== NOT EXECUTED
    initialized = true;                                               
3001a93c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Just to make sure this is only called once.                     
   */                                                                 
  _Thread_Disable_dispatch();                                         
    tmpInitialized  = initialized;                                    
3001a940:	e5d45000 	ldrb	r5, [r4]                                     <== NOT EXECUTED
    initialized = true;                                               
3001a944:	e5c43000 	strb	r3, [r4]                                     <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
3001a948:	eb000cdd 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  if ( tmpInitialized )                                               
3001a94c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
    return RTEMS_INCORRECT_STATE;                                     
3001a950:	13a0300e 	movne	r3, #14                                     <== NOT EXECUTED
  _Thread_Disable_dispatch();                                         
    tmpInitialized  = initialized;                                    
    initialized = true;                                               
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( tmpInitialized )                                               
3001a954:	1a000038 	bne	3001aa3c <rtems_timer_initiate_server+0x148>  <== NOT EXECUTED
   *  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(                                         
3001a958:	e388c902 	orr	ip, r8, #32768	; 0x8000                       <== NOT EXECUTED
3001a95c:	e3a03c01 	mov	r3, #256	; 0x100                              <== NOT EXECUTED
3001a960:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3001a964:	e59f00f0 	ldr	r0, [pc, #240]	; 3001aa5c <rtems_timer_initiate_server+0x168><== NOT EXECUTED
3001a968:	e28dc008 	add	ip, sp, #8                                    <== NOT EXECUTED
3001a96c:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3001a970:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
3001a974:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
3001a978:	ebfffb0d 	bl	300195b4 <rtems_task_create>                   <== NOT EXECUTED
                          /* 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) {                                                       
3001a97c:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
    initialized = false;                                              
3001a980:	15c45000 	strbne	r5, [r4]                                   <== NOT EXECUTED
                          /* 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) {                                                       
3001a984:	1a00002c 	bne	3001aa3c <rtems_timer_initiate_server+0x148>  <== NOT EXECUTED
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return NULL;                                                    
  #endif                                                              
  return information->local_table[ index ];                           
3001a988:	e59f20d0 	ldr	r2, [pc, #208]	; 3001aa60 <rtems_timer_initiate_server+0x16c><== NOT EXECUTED
   *  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)                                            
3001a98c:	e59de008 	ldr	lr, [sp, #8]                                  <== NOT EXECUTED
3001a990:	e592201c 	ldr	r2, [r2, #28]                                 <== NOT EXECUTED
3001a994:	e1a0180e 	lsl	r1, lr, #16                                   <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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(           
3001a998:	e7922721 	ldr	r2, [r2, r1, lsr #14]                         <== NOT EXECUTED
3001a99c:	e1a0c004 	mov	ip, r4                                        <== NOT EXECUTED
3001a9a0:	e5ac2004 	str	r2, [ip, #4]!                                 <== NOT EXECUTED
   *  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;   
                                                                      
  ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot;  
3001a9a4:	e59f10b8 	ldr	r1, [pc, #184]	; 3001aa64 <rtems_timer_initiate_server+0x170><== NOT EXECUTED
  ts->TOD_watchdogs.last_snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
3001a9a8:	e59f20b8 	ldr	r2, [pc, #184]	; 3001aa68 <rtems_timer_initiate_server+0x174><== NOT EXECUTED
   *  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;   
                                                                      
  ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot;  
3001a9ac:	e5918000 	ldr	r8, [r1]                                      <== NOT EXECUTED
  ts->TOD_watchdogs.last_snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
3001a9b0:	e592a000 	ldr	sl, [r2]                                      <== NOT EXECUTED
   *  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;   
                                                                      
  ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot;  
3001a9b4:	e5848040 	str	r8, [r4, #64]	; 0x40                          <== NOT EXECUTED
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
  head->previous = NULL;                                              
3001a9b8:	e5843038 	str	r3, [r4, #56]	; 0x38                          <== NOT EXECUTED
  ts->TOD_watchdogs.last_snapshot = (Watchdog_Interval) _TOD_Seconds_since_epoch();
3001a9bc:	e584a078 	str	sl, [r4, #120]	; 0x78                         <== NOT EXECUTED
3001a9c0:	e5843070 	str	r3, [r4, #112]	; 0x70                         <== NOT EXECUTED
                                                                      
  ts->insert_chain = NULL;                                            
3001a9c4:	e584307c 	str	r3, [r4, #124]	; 0x7c                         <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001a9c8:	e5843014 	str	r3, [r4, #20]                                 <== NOT EXECUTED
  ts->active = false;                                                 
3001a9cc:	e5c43080 	strb	r3, [r4, #128]	; 0x80                        <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
3001a9d0:	e5843030 	str	r3, [r4, #48]	; 0x30                          <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001a9d4:	e584304c 	str	r3, [r4, #76]	; 0x4c                          <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
3001a9d8:	e5843068 	str	r3, [r4, #104]	; 0x68                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  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;   
3001a9dc:	e59f3088 	ldr	r3, [pc, #136]	; 3001aa6c <rtems_timer_initiate_server+0x178><== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3001a9e0:	e59f5088 	ldr	r5, [pc, #136]	; 3001aa70 <rtems_timer_initiate_server+0x17c><== NOT EXECUTED
3001a9e4:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
  ts->active = false;                                                 
                                                                      
  /*                                                                  
   * The default timer server is now available.                       
   */                                                                 
  _Timer_server = ts;                                                 
3001a9e8:	e59f3084 	ldr	r3, [pc, #132]	; 3001aa74 <rtems_timer_initiate_server+0x180><== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001a9ec:	e2847038 	add	r7, r4, #56	; 0x38                            <== NOT EXECUTED
3001a9f0:	e583c000 	str	ip, [r3]                                      <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3001a9f4:	e2849034 	add	r9, r4, #52	; 0x34                            <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001a9f8:	e284b070 	add	fp, r4, #112	; 0x70                           <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3001a9fc:	e284606c 	add	r6, r4, #108	; 0x6c                           <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Start the timer server                                          
   */                                                                 
  status = rtems_task_start(                                          
3001aa00:	e1a0000e 	mov	r0, lr                                        <== NOT EXECUTED
3001aa04:	e59f106c 	ldr	r1, [pc, #108]	; 3001aa78 <rtems_timer_initiate_server+0x184><== NOT EXECUTED
3001aa08:	e1a0200c 	mov	r2, ip                                        <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001aa0c:	e5847034 	str	r7, [r4, #52]	; 0x34                          <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3001aa10:	e584903c 	str	r9, [r4, #60]	; 0x3c                          <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *head = _Chain_Head( the_chain );                        
  Chain_Node *tail = _Chain_Tail( the_chain );                        
                                                                      
  head->next = tail;                                                  
3001aa14:	e584b06c 	str	fp, [r4, #108]	; 0x6c                         <== NOT EXECUTED
  head->previous = NULL;                                              
  tail->previous = head;                                              
3001aa18:	e5846074 	str	r6, [r4, #116]	; 0x74                         <== NOT EXECUTED
3001aa1c:	e5845028 	str	r5, [r4, #40]	; 0x28                          <== NOT EXECUTED
  the_watchdog->id        = id;                                       
3001aa20:	e584e02c 	str	lr, [r4, #44]	; 0x2c                          <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
3001aa24:	e5845060 	str	r5, [r4, #96]	; 0x60                          <== NOT EXECUTED
  the_watchdog->id        = id;                                       
3001aa28:	e584e064 	str	lr, [r4, #100]	; 0x64                         <== NOT EXECUTED
3001aa2c:	ebfffca2 	bl	30019cbc <rtems_task_start>                    <== NOT EXECUTED
3001aa30:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
    if (status) {                                                     
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
3001aa34:	ea000000 	b	3001aa3c <rtems_timer_initiate_server+0x148>    <== NOT EXECUTED
   *  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;                                  
3001aa38:	e3a03013 	mov	r3, #19                                       <== NOT EXECUTED
      initialized = false;                                            
    }                                                                 
  #endif                                                              
                                                                      
  return status;                                                      
}                                                                     
3001aa3c:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3001aa40:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3001aa44:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
3001aa48:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
3001aa4c:	eaffffb5 	b	3001a928 <rtems_timer_initiate_server+0x34>     <== NOT EXECUTED
                                                                      

3001a278 <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( rtems_id id ) {
3001a278:	e92d4070 	push	{r4, r5, r6, lr}                             
3001a27c:	e24dd004 	sub	sp, sp, #4                                    
3001a280:	e1a01000 	mov	r1, r0                                        
3001a284:	e1a0200d 	mov	r2, sp                                        
3001a288:	e59f0088 	ldr	r0, [pc, #136]	; 3001a318 <rtems_timer_reset+0xa0>
3001a28c:	eb000b30 	bl	3001cf54 <_Objects_Get>                        
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a290:	e59d4000 	ldr	r4, [sp]                                      
3001a294:	e1a06000 	mov	r6, r0                                        
3001a298:	e3540000 	cmp	r4, #0                                        
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001a29c:	13a05004 	movne	r5, #4                                      
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a2a0:	1a000006 	bne	3001a2c0 <rtems_timer_reset+0x48>             
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
3001a2a4:	e5905038 	ldr	r5, [r0, #56]	; 0x38                          
3001a2a8:	e3550000 	cmp	r5, #0                                        
3001a2ac:	0a000006 	beq	3001a2cc <rtems_timer_reset+0x54>             
        _Watchdog_Remove( &the_timer->Ticker );                       
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
      } else if ( the_timer->the_class == TIMER_INTERVAL_ON_TASK ) {  
3001a2b0:	e3550001 	cmp	r5, #1                                        <== NOT EXECUTED
        /*                                                            
         *  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;                                   
3001a2b4:	13a0500b 	movne	r5, #11                                     <== NOT EXECUTED
                                                                      
    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 ) {  
3001a2b8:	0a00000b 	beq	3001a2ec <rtems_timer_reset+0x74>             <== NOT EXECUTED
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
      }                                                               
      _Thread_Enable_dispatch();                                      
3001a2bc:	eb000e80 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001a2c0:	e1a00005 	mov	r0, r5                                        
3001a2c4:	e28dd004 	add	sp, sp, #4                                    
3001a2c8:	e8bd8070 	pop	{r4, r5, r6, pc}                              
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( the_timer->the_class == TIMER_INTERVAL ) {                 
        _Watchdog_Remove( &the_timer->Ticker );                       
3001a2cc:	e2806010 	add	r6, r0, #16                                   
3001a2d0:	e1a00006 	mov	r0, r6                                        
3001a2d4:	eb00132a 	bl	3001ef84 <_Watchdog_Remove>                    
        _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
3001a2d8:	e59f003c 	ldr	r0, [pc, #60]	; 3001a31c <rtems_timer_reset+0xa4>
3001a2dc:	e1a01006 	mov	r1, r6                                        
3001a2e0:	eb0012b8 	bl	3001edc8 <_Watchdog_Insert>                    
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
      }                                                               
      _Thread_Enable_dispatch();                                      
3001a2e4:	eb000e76 	bl	3001dcc4 <_Thread_Enable_dispatch>             
3001a2e8:	eafffff4 	b	3001a2c0 <rtems_timer_reset+0x48>               
    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;           
3001a2ec:	e59f302c 	ldr	r3, [pc, #44]	; 3001a320 <rtems_timer_reset+0xa8><== NOT EXECUTED
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
3001a2f0:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
    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;           
3001a2f4:	e5935000 	ldr	r5, [r3]                                      <== NOT EXECUTED
          if ( !timer_server ) {                                      
            _Thread_Enable_dispatch();                                
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
        #endif                                                        
        _Watchdog_Remove( &the_timer->Ticker );                       
3001a2f8:	eb001321 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
        (*timer_server->schedule_operation)( timer_server, the_timer );
3001a2fc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3001a300:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3001a304:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001a308:	e595f004 	ldr	pc, [r5, #4]                                  <== NOT EXECUTED
  rtems_id id                                                         
)                                                                     
{                                                                     
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
  rtems_status_code  status = RTEMS_SUCCESSFUL;                       
3001a30c:	e1a05004 	mov	r5, r4                                        <== NOT EXECUTED
         *  TIMER_TIME_OF_DAY, or TIMER_TIME_OF_DAY_ON_TASK).  We     
         *  can only reset active interval timers.                    
         */                                                           
        status = RTEMS_NOT_DEFINED;                                   
      }                                                               
      _Thread_Enable_dispatch();                                      
3001a310:	eb000e6b 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
3001a314:	eaffffe9 	b	3001a2c0 <rtems_timer_reset+0x48>               <== NOT EXECUTED
                                                                      

3001a324 <rtems_timer_server_fire_after>: rtems_id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
3001a324:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
3001a328:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
3001a32c:	e59f00cc 	ldr	r0, [pc, #204]	; 3001a400 <rtems_timer_server_fire_after+0xdc><== NOT EXECUTED
  rtems_id                           id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a330:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
3001a334:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
  rtems_id                           id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a338:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
3001a33c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
  rtems_id                           id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a340:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
3001a344:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
3001a348:	03a0000e 	moveq	r0, #14                                     <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
3001a34c:	0a000005 	beq	3001a368 <rtems_timer_server_fire_after+0x44> <== NOT EXECUTED
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
3001a350:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
3001a354:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
3001a358:	0a000002 	beq	3001a368 <rtems_timer_server_fire_after+0x44> <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
3001a35c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
    return RTEMS_INVALID_NUMBER;                                      
3001a360:	03a0000a 	moveq	r0, #10                                     <== NOT EXECUTED
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
3001a364:	1a000001 	bne	3001a370 <rtems_timer_server_fire_after+0x4c> <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001a368:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3001a36c:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
3001a370:	e59f008c 	ldr	r0, [pc, #140]	; 3001a404 <rtems_timer_server_fire_after+0xe0><== NOT EXECUTED
3001a374:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
3001a378:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3001a37c:	eb000af4 	bl	3001cf54 <_Objects_Get>                        <== NOT EXECUTED
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a380:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3001a384:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
3001a388:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001a38c:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
                                                                      
  if ( ticks == 0 )                                                   
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a390:	1afffff4 	bne	3001a368 <rtems_timer_server_fire_after+0x44> <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
3001a394:	e28a0010 	add	r0, sl, #16                                   <== NOT EXECUTED
3001a398:	eb0012f9 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3001a39c:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
3001a3a0:	e3823080 	orr	r3, r2, #128	; 0x80                           <== NOT EXECUTED
3001a3a4:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
        /*                                                            
         *  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 ) {         
3001a3a8:	e59a3018 	ldr	r3, [sl, #24]                                 <== NOT EXECUTED
3001a3ac:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3001a3b0:	1a00000e 	bne	3001a3f0 <rtems_timer_server_fire_after+0xcc> <== NOT EXECUTED
        /*                                                            
         *  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;                
3001a3b4:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3001a3b8:	e58a1038 	str	r1, [sl, #56]	; 0x38                          <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001a3bc:	e58a3018 	str	r3, [sl, #24]                                 <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
3001a3c0:	e58a502c 	str	r5, [sl, #44]	; 0x2c                          <== NOT EXECUTED
  the_watchdog->id        = id;                                       
3001a3c4:	e58a7030 	str	r7, [sl, #48]	; 0x30                          <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
3001a3c8:	e58a8034 	str	r8, [sl, #52]	; 0x34                          <== NOT EXECUTED
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
        the_timer->Ticker.initial = ticks;                            
3001a3cc:	e58a601c 	str	r6, [sl, #28]                                 <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3001a3d0:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
      _ISR_Enable( level );                                           
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
3001a3d4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3001a3d8:	e1a0100a 	mov	r1, sl                                        <== NOT EXECUTED
3001a3dc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001a3e0:	e594f004 	ldr	pc, [r4, #4]                                  <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3001a3e4:	eb000e36 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3001a3e8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3001a3ec:	eaffffdd 	b	3001a368 <rtems_timer_server_fire_after+0x44>   <== NOT EXECUTED
3001a3f0:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
         *  higher priority interrupt.  If so, abandon this insert.   
         */                                                           
                                                                      
        if ( the_timer->Ticker.state != WATCHDOG_INACTIVE ) {         
          _ISR_Enable( level );                                       
          _Thread_Enable_dispatch();                                  
3001a3f4:	eb000e32 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
          return RTEMS_SUCCESSFUL;                                    
3001a3f8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3001a3fc:	eaffffd9 	b	3001a368 <rtems_timer_server_fire_after+0x44>   <== NOT EXECUTED
                                                                      

3001a408 <rtems_timer_server_fire_when>: rtems_id id, rtems_time_of_day *wall_time, rtems_timer_service_routine_entry routine, void *user_data ) {
3001a408:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
3001a40c:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
3001a410:	e59f00e0 	ldr	r0, [pc, #224]	; 3001a4f8 <rtems_timer_server_fire_when+0xf0><== NOT EXECUTED
  rtems_id                           id,                              
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a414:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
3001a418:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
  rtems_id                           id,                              
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a41c:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
3001a420:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
  rtems_id                           id,                              
  rtems_time_of_day                  *wall_time,                      
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
3001a424:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
3001a428:	e1a08003 	mov	r8, r3                                        <== NOT EXECUTED
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
3001a42c:	03a0000e 	moveq	r0, #14                                     <== NOT EXECUTED
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  rtems_interval        seconds;                                      
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
3001a430:	0a00000c 	beq	3001a468 <rtems_timer_server_fire_when+0x60>  <== NOT EXECUTED
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a434:	e59f30c0 	ldr	r3, [pc, #192]	; 3001a4fc <rtems_timer_server_fire_when+0xf4><== NOT EXECUTED
3001a438:	e5d33000 	ldrb	r3, [r3]                                     <== NOT EXECUTED
3001a43c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
3001a440:	03a0000b 	moveq	r0, #11                                     <== NOT EXECUTED
  Timer_server_Control *timer_server = _Timer_server;                 
                                                                      
  if ( !timer_server )                                                
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
3001a444:	0a000007 	beq	3001a468 <rtems_timer_server_fire_when+0x60>  <== NOT EXECUTED
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
3001a448:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
3001a44c:	03a00009 	moveq	r0, #9                                      <== NOT EXECUTED
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !_TOD_Is_set )                                                 
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !routine )                                                     
3001a450:	0a000004 	beq	3001a468 <rtems_timer_server_fire_when+0x60>  <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
3001a454:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3001a458:	ebfff3eb 	bl	3001740c <_TOD_Validate>                       <== NOT EXECUTED
3001a45c:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3001a460:	1a000002 	bne	3001a470 <rtems_timer_server_fire_when+0x68>  <== NOT EXECUTED
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
3001a464:	e3a00014 	mov	r0, #20                                       <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
3001a468:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3001a46c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
3001a470:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
3001a474:	ebfff3b9 	bl	30017360 <_TOD_To_seconds>                     <== NOT EXECUTED
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3001a478:	e59fa080 	ldr	sl, [pc, #128]	; 3001a500 <rtems_timer_server_fire_when+0xf8><== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !_TOD_Validate( wall_time ) )                                  
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  seconds = _TOD_To_seconds( wall_time );                             
3001a47c:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
3001a480:	e59a3000 	ldr	r3, [sl]                                      <== NOT EXECUTED
3001a484:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
3001a488:	9afffff5 	bls	3001a464 <rtems_timer_server_fire_when+0x5c>  <== NOT EXECUTED
3001a48c:	e59f0070 	ldr	r0, [pc, #112]	; 3001a504 <rtems_timer_server_fire_when+0xfc><== NOT EXECUTED
3001a490:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
3001a494:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3001a498:	eb000aad 	bl	3001cf54 <_Objects_Get>                        <== NOT EXECUTED
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a49c:	e59d9000 	ldr	r9, [sp]                                      <== NOT EXECUTED
3001a4a0:	e1a0b000 	mov	fp, r0                                        <== NOT EXECUTED
3001a4a4:	e3590000 	cmp	r9, #0                                        <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
3001a4a8:	13a00004 	movne	r0, #4                                      <== NOT EXECUTED
  seconds = _TOD_To_seconds( wall_time );                             
  if ( seconds <= _TOD_Seconds_since_epoch() )                        
    return RTEMS_INVALID_CLOCK;                                       
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
3001a4ac:	1affffed 	bne	3001a468 <rtems_timer_server_fire_when+0x60>  <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
3001a4b0:	e28b0010 	add	r0, fp, #16                                   <== NOT EXECUTED
3001a4b4:	eb0012b2 	bl	3001ef84 <_Watchdog_Remove>                    <== NOT EXECUTED
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
3001a4b8:	e59a3000 	ldr	r3, [sl]                                      <== NOT EXECUTED
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
3001a4bc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
3001a4c0:	e0637007 	rsb	r7, r3, r7                                    <== NOT EXECUTED
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
3001a4c4:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
3001a4c8:	e58b3038 	str	r3, [fp, #56]	; 0x38                          <== NOT EXECUTED
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
3001a4cc:	e1a0100b 	mov	r1, fp                                        <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
3001a4d0:	e58b9018 	str	r9, [fp, #24]                                 <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
3001a4d4:	e58b502c 	str	r5, [fp, #44]	; 0x2c                          <== NOT EXECUTED
  the_watchdog->id        = id;                                       
3001a4d8:	e58b6030 	str	r6, [fp, #48]	; 0x30                          <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
3001a4dc:	e58b8034 	str	r8, [fp, #52]	; 0x34                          <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
      the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK;               
      _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch();
3001a4e0:	e58b701c 	str	r7, [fp, #28]                                 <== NOT EXECUTED
                                                                      
      (*timer_server->schedule_operation)( timer_server, the_timer ); 
3001a4e4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
3001a4e8:	e594f004 	ldr	pc, [r4, #4]                                  <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3001a4ec:	eb000df4 	bl	3001dcc4 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return RTEMS_SUCCESSFUL;                                        
3001a4f0:	e1a00009 	mov	r0, r9                                        <== NOT EXECUTED
3001a4f4:	eaffffdb 	b	3001a468 <rtems_timer_server_fire_when+0x60>    <== NOT EXECUTED
                                                                      

3000a5a8 <sched_get_priority_max>: int sched_get_priority_max( int policy ) { switch ( policy ) {
3000a5a8:	e3500004 	cmp	r0, #4                                        <== NOT EXECUTED
#include <rtems/posix/priority.h>                                     
                                                                      
int sched_get_priority_max(                                           
  int  policy                                                         
)                                                                     
{                                                                     
3000a5ac:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  switch ( policy ) {                                                 
3000a5b0:	9a000004 	bls	3000a5c8 <sched_get_priority_max+0x20>        <== NOT EXECUTED
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
3000a5b4:	eb002288 	bl	30012fdc <__errno>                             <== NOT EXECUTED
3000a5b8:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a5bc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a5c0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a5c4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
int sched_get_priority_max(                                           
  int  policy                                                         
)                                                                     
{                                                                     
  switch ( policy ) {                                                 
3000a5c8:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000a5cc:	e1a00013 	lsl	r0, r3, r0                                    <== NOT EXECUTED
3000a5d0:	e3100017 	tst	r0, #23                                       <== NOT EXECUTED
3000a5d4:	0afffff6 	beq	3000a5b4 <sched_get_priority_max+0xc>         <== NOT EXECUTED
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MAXIMUM_PRIORITY;                            
3000a5d8:	e59f3008 	ldr	r3, [pc, #8]	; 3000a5e8 <sched_get_priority_max+0x40><== NOT EXECUTED
3000a5dc:	e5d30000 	ldrb	r0, [r3]                                     <== NOT EXECUTED
3000a5e0:	e2400001 	sub	r0, r0, #1                                    <== NOT EXECUTED
}                                                                     
3000a5e4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000a5ec <sched_get_priority_min>: int sched_get_priority_min( int policy ) { switch ( policy ) {
3000a5ec:	e3500004 	cmp	r0, #4                                        <== NOT EXECUTED
#include <rtems/posix/priority.h>                                     
                                                                      
int sched_get_priority_min(                                           
  int  policy                                                         
)                                                                     
{                                                                     
3000a5f0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  switch ( policy ) {                                                 
3000a5f4:	9a000004 	bls	3000a60c <sched_get_priority_min+0x20>        <== NOT EXECUTED
    case SCHED_RR:                                                    
    case SCHED_SPORADIC:                                              
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
3000a5f8:	eb002277 	bl	30012fdc <__errno>                             <== NOT EXECUTED
3000a5fc:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a600:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a604:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a608:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
int sched_get_priority_min(                                           
  int  policy                                                         
)                                                                     
{                                                                     
  switch ( policy ) {                                                 
3000a60c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000a610:	e1a00013 	lsl	r0, r3, r0                                    <== NOT EXECUTED
3000a614:	e3100017 	tst	r0, #23                                       <== NOT EXECUTED
3000a618:	0afffff6 	beq	3000a5f8 <sched_get_priority_min+0xc>         <== NOT EXECUTED
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
  }                                                                   
                                                                      
  return POSIX_SCHEDULER_MINIMUM_PRIORITY;                            
3000a61c:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
}                                                                     
3000a620:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009a74 <sched_getparam>: int sched_getparam( pid_t pid __attribute__((unused)), struct sched_param *param __attribute__((unused)) ) {
30009a74:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009a78:	eb0023d7 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009a7c:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009a80:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009a84:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009a88:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009a8c <sched_getscheduler>: #include <rtems/posix/time.h> int sched_getscheduler( pid_t pid __attribute__((unused)) ) {
30009a8c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009a90:	eb0023d1 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009a94:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009a98:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009a9c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009aa0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000a624 <sched_rr_get_interval>: int sched_rr_get_interval( pid_t pid, struct timespec *interval ) {
3000a624:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
3000a628:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
                                                                      
int sched_rr_get_interval(                                            
  pid_t             pid,                                              
  struct timespec  *interval                                          
)                                                                     
{                                                                     
3000a62c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
3000a630:	1a000007 	bne	3000a654 <sched_rr_get_interval+0x30>         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ESRCH );                    
                                                                      
  if ( !interval )                                                    
3000a634:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000a638:	0a00000f 	beq	3000a67c <sched_rr_get_interval+0x58>         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  _Timespec_From_ticks( _Thread_Ticks_per_timeslice, interval );      
3000a63c:	e59f304c 	ldr	r3, [pc, #76]	; 3000a690 <sched_rr_get_interval+0x6c><== NOT EXECUTED
3000a640:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
3000a644:	eb000e09 	bl	3000de70 <_Timespec_From_ticks>                <== NOT EXECUTED
  return 0;                                                           
3000a648:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000a64c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a650:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
{                                                                     
  /*                                                                  
   *  Only supported for the "calling process" (i.e. this node).      
   */                                                                 
                                                                      
  if ( pid && pid != getpid() )                                       
3000a654:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
3000a658:	ebfff1f5 	bl	30006e34 <getpid>                              <== NOT EXECUTED
3000a65c:	e1500004 	cmp	r0, r4                                        <== NOT EXECUTED
3000a660:	e59d1000 	ldr	r1, [sp]                                      <== NOT EXECUTED
3000a664:	0afffff2 	beq	3000a634 <sched_rr_get_interval+0x10>         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ESRCH );                    
3000a668:	eb00225b 	bl	30012fdc <__errno>                             <== NOT EXECUTED
3000a66c:	e3a03003 	mov	r3, #3                                        <== NOT EXECUTED
3000a670:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a674:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a678:	eafffff3 	b	3000a64c <sched_rr_get_interval+0x28>           <== NOT EXECUTED
                                                                      
  if ( !interval )                                                    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000a67c:	eb002256 	bl	30012fdc <__errno>                             <== NOT EXECUTED
3000a680:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a684:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a688:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a68c:	eaffffee 	b	3000a64c <sched_rr_get_interval+0x28>           <== NOT EXECUTED
                                                                      

30009aa4 <sched_setparam>: int sched_setparam( pid_t pid __attribute__((unused)), const struct sched_param *param __attribute__((unused)) ) {
30009aa4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009aa8:	eb0023cb 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009aac:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009ab0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009ab4:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009ab8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009abc <sched_setscheduler>: int sched_setscheduler( pid_t pid __attribute__((unused)), int policy __attribute__((unused)), const struct sched_param *param __attribute__((unused)) ) {
30009abc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009ac0:	eb0023c5 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009ac4:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009ac8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009acc:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009ad0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c990 <sem_close>: */ int sem_close( sem_t *sem ) {
3000c990:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000c994:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  sem_t             *id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Semaphore_Control *)                                  
    _Objects_Get( &_POSIX_Semaphore_Information, (Objects_Id)*id, location );
3000c998:	e5901000 	ldr	r1, [r0]                                      <== NOT EXECUTED
3000c99c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000c9a0:	e59f0040 	ldr	r0, [pc, #64]	; 3000c9e8 <sem_close+0x58>     <== NOT EXECUTED
3000c9a4:	eb000880 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
3000c9a8:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
3000c9ac:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000c9b0:	0a000005 	beq	3000c9cc <sem_close+0x3c>                     <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000c9b4:	eb00262c 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000c9b8:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000c9bc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000c9c0:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000c9c4:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000c9c8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      the_semaphore->open_count -= 1;                                 
3000c9cc:	e5902018 	ldr	r2, [r0, #24]                                 <== NOT EXECUTED
3000c9d0:	e2422001 	sub	r2, r2, #1                                    <== NOT EXECUTED
3000c9d4:	e5802018 	str	r2, [r0, #24]                                 <== NOT EXECUTED
      _POSIX_Semaphore_Delete( the_semaphore );                       
3000c9d8:	eb001a2e 	bl	30013298 <_POSIX_Semaphore_Delete>             <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000c9dc:	eb000bce 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000c9e0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000c9e4:	eafffff6 	b	3000c9c4 <sem_close+0x34>                       <== NOT EXECUTED
                                                                      

3000c9ec <sem_destroy>: */ int sem_destroy( sem_t *sem ) {
3000c9ec:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000c9f0:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000c9f4:	e5901000 	ldr	r1, [r0]                                      <== NOT EXECUTED
3000c9f8:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000c9fc:	e59f0058 	ldr	r0, [pc, #88]	; 3000ca5c <sem_destroy+0x70>   <== NOT EXECUTED
3000ca00:	eb000869 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
3000ca04:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000ca08:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000ca0c:	0a000005 	beq	3000ca28 <sem_destroy+0x3c>                   <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000ca10:	eb002615 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000ca14:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000ca18:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000ca1c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000ca20:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000ca24:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
3000ca28:	e5d04014 	ldrb	r4, [r0, #20]                                <== NOT EXECUTED
3000ca2c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000ca30:	1a000003 	bne	3000ca44 <sem_destroy+0x58>                   <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        rtems_set_errno_and_return_minus_one( EINVAL );               
      }                                                               
                                                                      
      _POSIX_Semaphore_Delete( the_semaphore );                       
3000ca34:	eb001a17 	bl	30013298 <_POSIX_Semaphore_Delete>             <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000ca38:	eb000bb7 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000ca3c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000ca40:	eafffff6 	b	3000ca20 <sem_destroy+0x34>                     <== NOT EXECUTED
      /*                                                              
       *  Undefined operation on a named semaphore.                   
       */                                                             
                                                                      
      if ( the_semaphore->named == true ) {                           
        _Thread_Enable_dispatch();                                    
3000ca44:	eb000bb4 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
        rtems_set_errno_and_return_minus_one( EINVAL );               
3000ca48:	eb002607 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000ca4c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000ca50:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000ca54:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000ca58:	eafffff0 	b	3000ca20 <sem_destroy+0x34>                     <== NOT EXECUTED
                                                                      

3000ca60 <sem_getvalue>: int sem_getvalue( sem_t *sem, int *sval ) {
3000ca60:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000ca64:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
3000ca68:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000ca6c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000ca70:	e59f0040 	ldr	r0, [pc, #64]	; 3000cab8 <sem_getvalue+0x58>  <== NOT EXECUTED
3000ca74:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
3000ca78:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000ca7c:	eb00084a 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
3000ca80:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
3000ca84:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000ca88:	0a000005 	beq	3000caa4 <sem_getvalue+0x44>                  <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000ca8c:	eb0025f6 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000ca90:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000ca94:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000ca98:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000ca9c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000caa0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      *sval = _CORE_semaphore_Get_count( &the_semaphore->Semaphore ); 
3000caa4:	e5903064 	ldr	r3, [r0, #100]	; 0x64                         <== NOT EXECUTED
3000caa8:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000caac:	eb000b9a 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000cab0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000cab4:	eafffff8 	b	3000ca9c <sem_getvalue+0x3c>                    <== NOT EXECUTED
                                                                      

3000cabc <sem_init>: int sem_init( sem_t *sem, int pshared, unsigned int value ) {
3000cabc:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  int                        status;                                  
  POSIX_Semaphore_Control   *the_semaphore;                           
                                                                      
  if ( !sem )                                                         
3000cac0:	e2504000 	subs	r4, r0, #0                                   <== NOT EXECUTED
int sem_init(                                                         
  sem_t         *sem,                                                 
  int            pshared,                                             
  unsigned int   value                                                
)                                                                     
{                                                                     
3000cac4:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
  int                        status;                                  
  POSIX_Semaphore_Control   *the_semaphore;                           
                                                                      
  if ( !sem )                                                         
3000cac8:	0a000008 	beq	3000caf0 <sem_init+0x34>                      <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  status = _POSIX_Semaphore_Create_support(                           
3000cacc:	e1a0300d 	mov	r3, sp                                        <== NOT EXECUTED
3000cad0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000cad4:	eb0019ae 	bl	30013194 <_POSIX_Semaphore_Create_support>     <== NOT EXECUTED
    pshared,                                                          
    value,                                                            
    &the_semaphore                                                    
  );                                                                  
                                                                      
  if ( status != -1 )                                                 
3000cad8:	e3700001 	cmn	r0, #1                                        <== NOT EXECUTED
    *sem = the_semaphore->Object.id;                                  
3000cadc:	159d3000 	ldrne	r3, [sp]                                    <== NOT EXECUTED
3000cae0:	15933008 	ldrne	r3, [r3, #8]                                <== NOT EXECUTED
3000cae4:	15843000 	strne	r3, [r4]                                    <== NOT EXECUTED
                                                                      
  return status;                                                      
}                                                                     
3000cae8:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000caec:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
{                                                                     
  int                        status;                                  
  POSIX_Semaphore_Control   *the_semaphore;                           
                                                                      
  if ( !sem )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000caf0:	eb0025dd 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000caf4:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000caf8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000cafc:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000cb00:	eafffff8 	b	3000cae8 <sem_init+0x2c>                        <== NOT EXECUTED
                                                                      

3000cb04 <sem_open>: int oflag, ... /* mode_t mode, */ /* unsigned int value */ ) {
3000cb04:	e92d000e 	push	{r1, r2, r3}                                 <== NOT EXECUTED
3000cb08:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
3000cb0c:	e59f30f0 	ldr	r3, [pc, #240]	; 3000cc04 <sem_open+0x100>    <== NOT EXECUTED
3000cb10:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
3000cb14:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000cb18:	e59d4028 	ldr	r4, [sp, #40]	; 0x28                          <== NOT EXECUTED
3000cb1c:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000cb20:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
3000cb24:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  POSIX_Semaphore_Control   *the_semaphore;                           
  Objects_Locations          location;                                
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  if ( oflag & O_CREAT ) {                                            
3000cb28:	e2146c02 	ands	r6, r4, #512	; 0x200                         <== NOT EXECUTED
    va_start(arg, oflag);                                             
    mode = (mode_t) va_arg( arg, unsigned int );                      
    value = va_arg( arg, unsigned int );                              
3000cb2c:	128d3034 	addne	r3, sp, #52	; 0x34                          <== NOT EXECUTED
    va_end(arg);                                                      
  }                                                                   
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
3000cb30:	e28d1008 	add	r1, sp, #8                                    <== NOT EXECUTED
  _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 );                              
3000cb34:	158d300c 	strne	r3, [sp, #12]                               <== NOT EXECUTED
3000cb38:	159d7030 	ldrne	r7, [sp, #48]	; 0x30                        <== NOT EXECUTED
  /* unsigned int value */                                            
)                                                                     
{                                                                     
  va_list                    arg;                                     
  mode_t                     mode;                                    
  unsigned int               value = 0;                               
3000cb3c:	01a07006 	moveq	r7, r6                                      <== NOT EXECUTED
    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 );    
3000cb40:	eb0019e8 	bl	300132e8 <_POSIX_Semaphore_Name_to_id>         <== NOT EXECUTED
   *  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 ) {                                                     
3000cb44:	e2508000 	subs	r8, r0, #0                                   <== NOT EXECUTED
3000cb48:	0a000008 	beq	3000cb70 <sem_open+0x6c>                      <== NOT EXECUTED
    /*                                                                
     * 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) ) ) {               
3000cb4c:	e3580002 	cmp	r8, #2                                        <== NOT EXECUTED
3000cb50:	1a000001 	bne	3000cb5c <sem_open+0x58>                      <== NOT EXECUTED
3000cb54:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
3000cb58:	1a000018 	bne	3000cbc0 <sem_open+0xbc>                      <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000cb5c:	eb000b6e 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one_cast( status, sem_t * );   
3000cb60:	eb0025c1 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000cb64:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000cb68:	e5808000 	str	r8, [r0]                                      <== NOT EXECUTED
3000cb6c:	ea00000e 	b	3000cbac <sem_open+0xa8>                        <== NOT EXECUTED
                                                                      
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
3000cb70:	e2044c0a 	and	r4, r4, #2560	; 0xa00                         <== NOT EXECUTED
3000cb74:	e3540c0a 	cmp	r4, #2560	; 0xa00                             <== NOT EXECUTED
3000cb78:	0a00001b 	beq	3000cbec <sem_open+0xe8>                      <== NOT EXECUTED
3000cb7c:	e59d1008 	ldr	r1, [sp, #8]                                  <== NOT EXECUTED
3000cb80:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000cb84:	e59f007c 	ldr	r0, [pc, #124]	; 3000cc08 <sem_open+0x104>    <== NOT EXECUTED
3000cb88:	eb000807 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
    }                                                                 
                                                                      
    the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location );
    the_semaphore->open_count += 1;                                   
3000cb8c:	e5903018 	ldr	r3, [r0, #24]                                 <== NOT EXECUTED
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _Thread_Enable_dispatch();                                      
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
    }                                                                 
                                                                      
    the_semaphore = _POSIX_Semaphore_Get( &the_semaphore_id, &location );
3000cb90:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
    the_semaphore->open_count += 1;                                   
3000cb94:	e2833001 	add	r3, r3, #1                                    <== NOT EXECUTED
3000cb98:	e5803018 	str	r3, [r0, #24]                                 <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
3000cb9c:	eb000b5e 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
    _Thread_Enable_dispatch();                                        
3000cba0:	eb000b5d 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
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;                          
3000cba4:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
3000cba8:	e2833008 	add	r3, r3, #8                                    <== NOT EXECUTED
  #endif                                                              
  return id;                                                          
}                                                                     
3000cbac:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000cbb0:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
3000cbb4:	e8bd41f0 	pop	{r4, r5, r6, r7, r8, lr}                      <== NOT EXECUTED
3000cbb8:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000cbbc:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
  /*                                                                  
   *  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(                            
3000cbc0:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
3000cbc4:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000cbc8:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
3000cbcc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000cbd0:	eb00196f 	bl	30013194 <_POSIX_Semaphore_Create_support>     <== NOT EXECUTED
3000cbd4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
3000cbd8:	eb000b4f 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
                                                                      
  if ( status == -1 )                                                 
3000cbdc:	e3740001 	cmn	r4, #1                                        <== NOT EXECUTED
    return SEM_FAILED;                                                
3000cbe0:	01a03004 	moveq	r3, r4                                      <== NOT EXECUTED
   * errno was set by Create_support, so don't set it again.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
                                                                      
  if ( status == -1 )                                                 
3000cbe4:	1affffee 	bne	3000cba4 <sem_open+0xa0>                      <== NOT EXECUTED
3000cbe8:	eaffffef 	b	3000cbac <sem_open+0xa8>                        <== NOT EXECUTED
    /*                                                                
     * Check for existence with creation.                             
     */                                                               
                                                                      
    if ( (oflag & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL) ) {       
      _Thread_Enable_dispatch();                                      
3000cbec:	eb000b4a 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one_cast( EEXIST, sem_t * );   
3000cbf0:	eb00259d 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000cbf4:	e3a03011 	mov	r3, #17                                       <== NOT EXECUTED
3000cbf8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000cbfc:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000cc00:	eaffffe9 	b	3000cbac <sem_open+0xa8>                        <== NOT EXECUTED
                                                                      

3000cc0c <sem_post>: */ int sem_post( sem_t *sem ) {
3000cc0c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000cc10:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000cc14:	e5901000 	ldr	r1, [r0]                                      <== NOT EXECUTED
3000cc18:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000cc1c:	e59f0044 	ldr	r0, [pc, #68]	; 3000cc68 <sem_post+0x5c>      <== NOT EXECUTED
3000cc20:	eb0007e1 	bl	3000ebac <_Objects_Get>                        <== NOT EXECUTED
  register POSIX_Semaphore_Control *the_semaphore;                    
  Objects_Locations                 location;                         
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
3000cc24:	e59d4000 	ldr	r4, [sp]                                      <== NOT EXECUTED
3000cc28:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
3000cc2c:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000cc30:	0a000005 	beq	3000cc4c <sem_post+0x40>                      <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000cc34:	eb00258c 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000cc38:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000cc3c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000cc40:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000cc44:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000cc48:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  the_semaphore = _POSIX_Semaphore_Get( sem, &location );             
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _CORE_semaphore_Surrender(                                      
3000cc4c:	e5931008 	ldr	r1, [r3, #8]                                  <== NOT EXECUTED
3000cc50:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000cc54:	e280001c 	add	r0, r0, #28                                   <== NOT EXECUTED
3000cc58:	eb00052e 	bl	3000e118 <_CORE_semaphore_Surrender>           <== NOT EXECUTED
        NULL         /* XXX need to define a routine to handle this case */
#else                                                                 
        NULL                                                          
#endif                                                                
      );                                                              
      _Thread_Enable_dispatch();                                      
3000cc5c:	eb000b2e 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000cc60:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cc64:	eafffff6 	b	3000cc44 <sem_post+0x38>                        <== NOT EXECUTED
                                                                      

3000cc6c <sem_timedwait>: int sem_timedwait( sem_t *sem, const struct timespec *abstime ) {
3000cc6c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000cc70:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000cc74:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
   *                                                                  
   *  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 );       
3000cc78:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
3000cc7c:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000cc80:	eb0016a5 	bl	3001271c <_POSIX_Absolute_timeout_to_ticks>    <== NOT EXECUTED
  if ( status != POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE )                
3000cc84:	e3500003 	cmp	r0, #3                                        <== NOT EXECUTED
3000cc88:	0a000005 	beq	3000cca4 <sem_timedwait+0x38>                 <== NOT EXECUTED
    do_wait = false;                                                  
                                                                      
  lock_status = _POSIX_Semaphore_Wait_support( sem, do_wait, ticks ); 
3000cc8c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cc90:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000cc94:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000cc98:	eb0019ba 	bl	30013388 <_POSIX_Semaphore_Wait_support>       <== NOT EXECUTED
         lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW )               
      rtems_set_errno_and_return_minus_one( ETIMEDOUT );              
  }                                                                   
                                                                      
  return lock_status;                                                 
}                                                                     
3000cc9c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000cca0:	e8bd8010 	pop	{r4, pc}                                      <== 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 ); 
3000cca4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cca8:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000ccac:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
3000ccb0:	eb0019b4 	bl	30013388 <_POSIX_Semaphore_Wait_support>       <== NOT EXECUTED
3000ccb4:	eafffff8 	b	3000cc9c <sem_timedwait+0x30>                   <== NOT EXECUTED
                                                                      

3000ccb8 <sem_trywait>: int sem_trywait( sem_t *sem ) { return _POSIX_Semaphore_Wait_support(sem, false, THREAD_QUEUE_WAIT_FOREVER);
3000ccb8:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000ccbc:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000ccc0:	ea0019b0 	b	30013388 <_POSIX_Semaphore_Wait_support>        <== NOT EXECUTED
                                                                      

3000ccc4 <sem_unlink>: */ int sem_unlink( const char *name ) {
3000ccc4:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000ccc8:	e59f3068 	ldr	r3, [pc, #104]	; 3000cd38 <sem_unlink+0x74>   <== NOT EXECUTED
3000cccc:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000ccd0:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
3000ccd4:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
3000ccd8:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
  register POSIX_Semaphore_Control *the_semaphore;                    
  sem_t                        the_semaphore_id;                      
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
3000ccdc:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
3000cce0:	eb001980 	bl	300132e8 <_POSIX_Semaphore_Name_to_id>         <== NOT EXECUTED
  if ( status != 0 ) {                                                
3000cce4:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
3000cce8:	1a00000d 	bne	3000cd24 <sem_unlink+0x60>                    <== NOT EXECUTED
  _POSIX_Semaphore_Namespace_remove( the_semaphore );                 
  _POSIX_Semaphore_Delete( the_semaphore );                           
                                                                      
  _Thread_Enable_dispatch();                                          
  return 0;                                                           
}                                                                     
3000ccec:	e59f0048 	ldr	r0, [pc, #72]	; 3000cd3c <sem_unlink+0x78>    <== NOT EXECUTED
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return NULL;                                                    
  #endif                                                              
  return information->local_table[ index ];                           
3000ccf0:	e1dd20b0 	ldrh	r2, [sp]                                     <== NOT EXECUTED
3000ccf4:	e590301c 	ldr	r3, [r0, #28]                                 <== NOT EXECUTED
  if ( status != 0 ) {                                                
    _Thread_Enable_dispatch();                                        
    rtems_set_errno_and_return_minus_one( status );                   
  }                                                                   
                                                                      
  the_semaphore = (POSIX_Semaphore_Control *) _Objects_Get_local_object(
3000ccf8:	e7934102 	ldr	r4, [r3, r2, lsl #2]                          <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Namespace_remove (         
  POSIX_Semaphore_Control *the_semaphore                              
)                                                                     
{                                                                     
  _Objects_Namespace_remove(                                          
3000ccfc:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    &_POSIX_Semaphore_Information,                                    
    _Objects_Get_index( the_semaphore_id )                            
  );                                                                  
                                                                      
  the_semaphore->linked = false;                                      
3000cd00:	e5c45015 	strb	r5, [r4, #21]                                <== NOT EXECUTED
3000cd04:	eb0007ff 	bl	3000ed08 <_Objects_Namespace_remove>           <== NOT EXECUTED
  _POSIX_Semaphore_Namespace_remove( the_semaphore );                 
  _POSIX_Semaphore_Delete( the_semaphore );                           
3000cd08:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000cd0c:	eb001961 	bl	30013298 <_POSIX_Semaphore_Delete>             <== NOT EXECUTED
                                                                      
  _Thread_Enable_dispatch();                                          
3000cd10:	eb000b01 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
3000cd14:	e1a03005 	mov	r3, r5                                        <== NOT EXECUTED
}                                                                     
3000cd18:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
3000cd1c:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000cd20:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
                                                                      
  status = _POSIX_Semaphore_Name_to_id( name, &the_semaphore_id );    
  if ( status != 0 ) {                                                
    _Thread_Enable_dispatch();                                        
3000cd24:	eb000afc 	bl	3000f91c <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( status );                   
3000cd28:	eb00254f 	bl	3001626c <__errno>                             <== NOT EXECUTED
3000cd2c:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000cd30:	e5805000 	str	r5, [r0]                                      <== NOT EXECUTED
3000cd34:	eafffff7 	b	3000cd18 <sem_unlink+0x54>                      <== NOT EXECUTED
                                                                      

3000cd40 <sem_wait>: int sem_wait( sem_t *sem ) { return _POSIX_Semaphore_Wait_support( sem, true, THREAD_QUEUE_WAIT_FOREVER );
3000cd40:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000cd44:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000cd48:	ea00198e 	b	30013388 <_POSIX_Semaphore_Wait_support>        <== NOT EXECUTED
                                                                      

300099a0 <setitimer>: int which, const struct itimerval *value, struct itimerval *ovalue ) { if ( !value )
300099a0:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
int setitimer(                                                        
  int                     which,                                      
  const struct itimerval *value,                                      
  struct itimerval       *ovalue                                      
)                                                                     
{                                                                     
300099a4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !value )                                                       
300099a8:	0a00000d 	beq	300099e4 <setitimer+0x44>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  if ( !ovalue )                                                      
300099ac:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
300099b0:	0a00000b 	beq	300099e4 <setitimer+0x44>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  switch ( which ) {                                                  
300099b4:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
300099b8:	9a000004 	bls	300099d0 <setitimer+0x30>                     <== NOT EXECUTED
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
300099bc:	eb0023c0 	bl	300128c4 <__errno>                             <== NOT EXECUTED
300099c0:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
300099c4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
300099c8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300099cc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  switch ( which ) {                                                  
    case ITIMER_REAL:                                                 
    case ITIMER_VIRTUAL:                                              
    case ITIMER_PROF:                                                 
      rtems_set_errno_and_return_minus_one( ENOSYS );                 
300099d0:	eb0023bb 	bl	300128c4 <__errno>                             <== NOT EXECUTED
300099d4:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
300099d8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    default:                                                          
      break;                                                          
  }                                                                   
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
300099dc:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
300099e0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
{                                                                     
  if ( !value )                                                       
    rtems_set_errno_and_return_minus_one( EFAULT );                   
                                                                      
  if ( !ovalue )                                                      
    rtems_set_errno_and_return_minus_one( EFAULT );                   
300099e4:	eb0023b6 	bl	300128c4 <__errno>                             <== NOT EXECUTED
300099e8:	e3a0300e 	mov	r3, #14                                       <== NOT EXECUTED
300099ec:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
300099f0:	eafffff4 	b	300099c8 <setitimer+0x28>                       <== NOT EXECUTED
                                                                      

3000a49c <sigaction>: struct sigaction *oact ) { ISR_Level level; if ( oact )
3000a49c:	e2523000 	subs	r3, r2, #0                                   <== NOT EXECUTED
    *oact = _POSIX_signals_Vectors[ sig ];                            
3000a4a0:	159f20c4 	ldrne	r2, [pc, #196]	; 3000a56c <sigaction+0xd0>  <== NOT EXECUTED
int sigaction(                                                        
  int                     sig,                                        
  const struct sigaction *act,                                        
  struct sigaction       *oact                                        
)                                                                     
{                                                                     
3000a4a4:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
3000a4a8:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  ISR_Level     level;                                                
                                                                      
  if ( oact )                                                         
    *oact = _POSIX_signals_Vectors[ sig ];                            
3000a4ac:	10801080 	addne	r1, r0, r0, lsl #1                          <== NOT EXECUTED
3000a4b0:	10822101 	addne	r2, r2, r1, lsl #2                          <== NOT EXECUTED
int sigaction(                                                        
  int                     sig,                                        
  const struct sigaction *act,                                        
  struct sigaction       *oact                                        
)                                                                     
{                                                                     
3000a4b4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  ISR_Level     level;                                                
                                                                      
  if ( oact )                                                         
    *oact = _POSIX_signals_Vectors[ sig ];                            
3000a4b8:	18920007 	ldmne	r2, {r0, r1, r2}                            <== NOT EXECUTED
3000a4bc:	18830007 	stmne	r3, {r0, r1, r2}                            <== NOT EXECUTED
                                                                      
  if ( !sig )                                                         
3000a4c0:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
3000a4c4:	0a000023 	beq	3000a558 <sigaction+0xbc>                     <== NOT EXECUTED
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
3000a4c8:	e2443001 	sub	r3, r4, #1                                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(sig) )                                         
3000a4cc:	e353001f 	cmp	r3, #31                                       <== NOT EXECUTED
3000a4d0:	8a000020 	bhi	3000a558 <sigaction+0xbc>                     <== NOT EXECUTED
   *                                                                  
   *  NOTE: Solaris documentation claims to "silently enforce" this which
   *        contradicts the POSIX specification.                      
   */                                                                 
                                                                      
  if ( sig == SIGKILL )                                               
3000a4d4:	e3540009 	cmp	r4, #9                                        <== NOT EXECUTED
3000a4d8:	0a00001e 	beq	3000a558 <sigaction+0xbc>                     <== NOT EXECUTED
  /*                                                                  
   *  Evaluate the new action structure and set the global signal vector
   *  appropriately.                                                  
   */                                                                 
                                                                      
  if ( act ) {                                                        
3000a4dc:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000a4e0:	0a00001a 	beq	3000a550 <sigaction+0xb4>                     <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000a4e4:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
3000a4e8:	e3863080 	orr	r3, r6, #128	; 0x80                           <== NOT EXECUTED
3000a4ec:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
     *  Unless the user is installing the default signal actions, then
     *  we can just copy the provided sigaction structure into the vectors.
     */                                                               
                                                                      
    _ISR_Disable( level );                                            
      if ( act->sa_handler == SIG_DFL ) {                             
3000a4f0:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
3000a4f4:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000a4f8:	0a000009 	beq	3000a524 <sigaction+0x88>                     <== NOT EXECUTED
        _POSIX_signals_Vectors[ sig ] = _POSIX_signals_Default_vectors[ sig ];
      } else {                                                        
         _POSIX_signals_Clear_process_signals( sig );                 
3000a4fc:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000a500:	eb001776 	bl	300102e0 <_POSIX_signals_Clear_process_signals><== NOT EXECUTED
         _POSIX_signals_Vectors[ sig ] = *act;                        
3000a504:	e8950007 	ldm	r5, {r0, r1, r2}                              <== NOT EXECUTED
3000a508:	e59f305c 	ldr	r3, [pc, #92]	; 3000a56c <sigaction+0xd0>     <== NOT EXECUTED
3000a50c:	e0844084 	add	r4, r4, r4, lsl #1                            <== NOT EXECUTED
3000a510:	e0834104 	add	r4, r3, r4, lsl #2                            <== NOT EXECUTED
3000a514:	e8840007 	stm	r4, {r0, r1, r2}                              <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000a518:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
   *      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;                                                           
3000a51c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a520:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
     *  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 ];
3000a524:	e59f2044 	ldr	r2, [pc, #68]	; 3000a570 <sigaction+0xd4>     <== NOT EXECUTED
3000a528:	e0844084 	add	r4, r4, r4, lsl #1                            <== NOT EXECUTED
3000a52c:	e59f3038 	ldr	r3, [pc, #56]	; 3000a56c <sigaction+0xd0>     <== NOT EXECUTED
3000a530:	e1a04104 	lsl	r4, r4, #2                                    <== NOT EXECUTED
3000a534:	e0833004 	add	r3, r3, r4                                    <== NOT EXECUTED
3000a538:	e0824004 	add	r4, r2, r4                                    <== NOT EXECUTED
3000a53c:	e8940007 	ldm	r4, {r0, r1, r2}                              <== NOT EXECUTED
3000a540:	e8830007 	stm	r3, {r0, r1, r2}                              <== NOT EXECUTED
3000a544:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
   *      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;                                                           
3000a548:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000a54c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
3000a550:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
}                                                                     
3000a554:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== 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 );                   
3000a558:	eb002384 	bl	30013370 <__errno>                             <== NOT EXECUTED
3000a55c:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a560:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a564:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a568:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

3000a574 <sigaddset>: int sigaddset( sigset_t *set, int signo ) { if ( !set )
3000a574:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
                                                                      
int sigaddset(                                                        
  sigset_t   *set,                                                    
  int         signo                                                   
)                                                                     
{                                                                     
3000a578:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !set )                                                         
3000a57c:	0a00000a 	beq	3000a5ac <sigaddset+0x38>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !signo )                                                       
3000a580:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000a584:	0a000008 	beq	3000a5ac <sigaddset+0x38>                     <== NOT EXECUTED
3000a588:	e2411001 	sub	r1, r1, #1                                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(signo) )                                       
3000a58c:	e351001f 	cmp	r1, #31                                       <== NOT EXECUTED
3000a590:	8a000005 	bhi	3000a5ac <sigaddset+0x38>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set |= signo_to_mask(signo);                                       
3000a594:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
3000a598:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000a59c:	e1821110 	orr	r1, r2, r0, lsl r1                            <== NOT EXECUTED
  return 0;                                                           
3000a5a0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set |= signo_to_mask(signo);                                       
3000a5a4:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
  return 0;                                                           
}                                                                     
3000a5a8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  if ( !signo )                                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000a5ac:	eb00236f 	bl	30013370 <__errno>                             <== NOT EXECUTED
3000a5b0:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a5b4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a5b8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a5bc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c930 <sigdelset>: int sigdelset( sigset_t *set, int signo ) { if ( !set )
3000c930:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
                                                                      
int sigdelset(                                                        
  sigset_t   *set,                                                    
  int         signo                                                   
)                                                                     
{                                                                     
3000c934:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !set )                                                         
3000c938:	0a00000c 	beq	3000c970 <sigdelset+0x40>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !signo )                                                       
3000c93c:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000c940:	0a000008 	beq	3000c968 <sigdelset+0x38>                     <== NOT EXECUTED
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
3000c944:	e2411001 	sub	r1, r1, #1                                    <== NOT EXECUTED
    return 0;                                                         
                                                                      
  if ( !is_valid_signo(signo) )                                       
3000c948:	e351001f 	cmp	r1, #31                                       <== NOT EXECUTED
3000c94c:	8a000007 	bhi	3000c970 <sigdelset+0x40>                     <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set &= ~signo_to_mask(signo);                                      
3000c950:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
3000c954:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000c958:	e1c21110 	bic	r1, r2, r0, lsl r1                            <== NOT EXECUTED
  return 0;                                                           
3000c95c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    return 0;                                                         
                                                                      
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set &= ~signo_to_mask(signo);                                      
3000c960:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
  return 0;                                                           
3000c964:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
{                                                                     
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !signo )                                                       
    return 0;                                                         
3000c968:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set &= ~signo_to_mask(signo);                                      
  return 0;                                                           
}                                                                     
3000c96c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  if ( !signo )                                                       
    return 0;                                                         
                                                                      
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000c970:	eb0023e4 	bl	30015908 <__errno>                             <== NOT EXECUTED
3000c974:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000c978:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000c97c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000c980:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000f5d8 <sigemptyset>: int sigemptyset( sigset_t *set ) { if ( !set )
3000f5d8:	e2503000 	subs	r3, r0, #0                                   
#include <rtems/seterr.h>                                             
                                                                      
int sigemptyset(                                                      
  sigset_t   *set                                                     
)                                                                     
{                                                                     
3000f5dc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  if ( !set )                                                         
3000f5e0:	0a000002 	beq	3000f5f0 <sigemptyset+0x18>                   
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set = 0;                                                           
3000f5e4:	e3a00000 	mov	r0, #0                                        
3000f5e8:	e5830000 	str	r0, [r3]                                      
  return 0;                                                           
}                                                                     
3000f5ec:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
int sigemptyset(                                                      
  sigset_t   *set                                                     
)                                                                     
{                                                                     
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000f5f0:	eb000aa0 	bl	30012078 <__errno>                             <== NOT EXECUTED
3000f5f4:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000f5f8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000f5fc:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000f600:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c9b0 <sigfillset>: int sigfillset( sigset_t *set ) { if ( !set )
3000c9b0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
#include <rtems/seterr.h>                                             
                                                                      
int sigfillset(                                                       
  sigset_t   *set                                                     
)                                                                     
{                                                                     
3000c9b4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !set )                                                         
3000c9b8:	0a000003 	beq	3000c9cc <sigfillset+0x1c>                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  *set = SIGNAL_ALL_MASK;                                             
3000c9bc:	e3e03000 	mvn	r3, #0                                        <== NOT EXECUTED
3000c9c0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
  return 0;                                                           
3000c9c4:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000c9c8:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
int sigfillset(                                                       
  sigset_t   *set                                                     
)                                                                     
{                                                                     
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000c9cc:	eb0023cd 	bl	30015908 <__errno>                             <== NOT EXECUTED
3000c9d0:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000c9d4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000c9d8:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000c9dc:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000c9e0 <sigismember>: int sigismember( const sigset_t *set, int signo ) { if ( !set )
3000c9e0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
                                                                      
int sigismember(                                                      
  const sigset_t   *set,                                              
  int               signo                                             
)                                                                     
{                                                                     
3000c9e4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( !set )                                                         
3000c9e8:	0a00000c 	beq	3000ca20 <sigismember+0x40>                   <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !signo )                                                       
3000c9ec:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
3000c9f0:	0a000008 	beq	3000ca18 <sigismember+0x38>                   <== NOT EXECUTED
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
3000c9f4:	e2411001 	sub	r1, r1, #1                                    <== NOT EXECUTED
    return 0;                                                         
                                                                      
  if ( !is_valid_signo(signo) )                                       
3000c9f8:	e351001f 	cmp	r1, #31                                       <== NOT EXECUTED
3000c9fc:	8a000007 	bhi	3000ca20 <sigismember+0x40>                   <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( *set & signo_to_mask(signo) )                                  
3000ca00:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
                                                                      
static inline sigset_t signo_to_mask(                                 
  uint32_t sig                                                        
)                                                                     
{                                                                     
  return 1u << (sig - 1);                                             
3000ca04:	e3a02001 	mov	r2, #1                                        <== NOT EXECUTED
  const sigset_t   *set,                                              
  int               signo                                             
)                                                                     
{                                                                     
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000ca08:	e0133112 	ands	r3, r3, r2, lsl r1                           <== NOT EXECUTED
3000ca0c:	03a00000 	moveq	r0, #0                                      <== NOT EXECUTED
3000ca10:	13a00001 	movne	r0, #1                                      <== NOT EXECUTED
3000ca14:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  if ( !signo )                                                       
    return 0;                                                         
3000ca18:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
                                                                      
  if ( *set & signo_to_mask(signo) )                                  
    return 1;                                                         
                                                                      
  return 0;                                                           
}                                                                     
3000ca1c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  if ( !signo )                                                       
    return 0;                                                         
                                                                      
  if ( !is_valid_signo(signo) )                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000ca20:	eb0023b8 	bl	30015908 <__errno>                             <== NOT EXECUTED
3000ca24:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000ca28:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000ca2c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000ca30:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000a2ec <signal>: sighandler_t signal( int signum, sighandler_t handler ) {
3000a2ec:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000a2f0:	e24dd018 	sub	sp, sp, #24                                   <== NOT EXECUTED
  struct sigaction s;                                                 
  struct sigaction old;                                               
                                                                      
  s.sa_handler = handler ;                                            
  sigemptyset(&s.sa_mask);                                            
3000a2f4:	e28d400c 	add	r4, sp, #12                                   <== NOT EXECUTED
                                                                      
sighandler_t signal(                                                  
  int           signum,                                               
  sighandler_t  handler                                               
)                                                                     
{                                                                     
3000a2f8:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  struct sigaction s;                                                 
  struct sigaction old;                                               
                                                                      
  s.sa_handler = handler ;                                            
  sigemptyset(&s.sa_mask);                                            
3000a2fc:	e2840004 	add	r0, r4, #4                                    <== NOT EXECUTED
)                                                                     
{                                                                     
  struct sigaction s;                                                 
  struct sigaction old;                                               
                                                                      
  s.sa_handler = handler ;                                            
3000a300:	e58d1014 	str	r1, [sp, #20]                                 <== NOT EXECUTED
  sigemptyset(&s.sa_mask);                                            
3000a304:	ebffffed 	bl	3000a2c0 <sigemptyset>                         <== NOT EXECUTED
  s.sa_flags   = SA_RESTART | SA_INTERRUPT | SA_NOMASK;               
  s.sa_restorer= NULL ;                                               
#elif defined(signal_like_SVR4)                                       
  s.sa_flags   = SA_RESTART;                                          
#else                                                                 
  s.sa_flags   = 0;                                                   
3000a308:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
#endif                                                                
                                                                      
  sigaction( signum, &s, &old );                                      
3000a30c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a310:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000a314:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
  s.sa_flags   = SA_RESTART | SA_INTERRUPT | SA_NOMASK;               
  s.sa_restorer= NULL ;                                               
#elif defined(signal_like_SVR4)                                       
  s.sa_flags   = SA_RESTART;                                          
#else                                                                 
  s.sa_flags   = 0;                                                   
3000a318:	e58d300c 	str	r3, [sp, #12]                                 <== NOT EXECUTED
#endif                                                                
                                                                      
  sigaction( signum, &s, &old );                                      
3000a31c:	ebffff9e 	bl	3000a19c <sigaction>                           <== NOT EXECUTED
  return (sighandler_t) old.sa_handler;                               
}                                                                     
3000a320:	e59d0008 	ldr	r0, [sp, #8]                                  <== NOT EXECUTED
3000a324:	e28dd018 	add	sp, sp, #24                                   <== NOT EXECUTED
3000a328:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000a5ec <sigpending>: sigset_t *set ) { POSIX_API_Control *api; if ( !set )
3000a5ec:	e2503000 	subs	r3, r0, #0                                   <== NOT EXECUTED
#include <rtems/seterr.h>                                             
                                                                      
int sigpending(                                                       
  sigset_t  *set                                                      
)                                                                     
{                                                                     
3000a5f0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set )                                                         
3000a5f4:	0a000009 	beq	3000a620 <sigpending+0x34>                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
3000a5f8:	e59f2034 	ldr	r2, [pc, #52]	; 3000a634 <sigpending+0x48>    <== NOT EXECUTED
                                                                      
  *set = api->signals_pending | _POSIX_signals_Pending;               
3000a5fc:	e59f1034 	ldr	r1, [pc, #52]	; 3000a638 <sigpending+0x4c>    <== NOT EXECUTED
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
3000a600:	e5922004 	ldr	r2, [r2, #4]                                  <== NOT EXECUTED
                                                                      
  *set = api->signals_pending | _POSIX_signals_Pending;               
3000a604:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
3000a608:	e59220fc 	ldr	r2, [r2, #252]	; 0xfc                         <== NOT EXECUTED
                                                                      
  return 0;                                                           
3000a60c:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  api = _Thread_Executing->API_Extensions[ THREAD_API_POSIX ];        
                                                                      
  *set = api->signals_pending | _POSIX_signals_Pending;               
3000a610:	e59220d4 	ldr	r2, [r2, #212]	; 0xd4                         <== NOT EXECUTED
3000a614:	e1812002 	orr	r2, r1, r2                                    <== NOT EXECUTED
3000a618:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
3000a61c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
)                                                                     
{                                                                     
  POSIX_API_Control  *api;                                            
                                                                      
  if ( !set )                                                         
    rtems_set_errno_and_return_minus_one( EINVAL );                   
3000a620:	eb002352 	bl	30013370 <__errno>                             <== NOT EXECUTED
3000a624:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a628:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a62c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000a630:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

3000a63c <sigprocmask>: /* * P1003.1c/Draft 10, p. 38 maps sigprocmask to pthread_sigmask. */ #if defined(RTEMS_POSIX_API) return pthread_sigmask( how, set, oset );
3000a63c:	ea0018ed 	b	300109f8 <pthread_sigmask>                      <== NOT EXECUTED
                                                                      

3000ca88 <sigqueue>: int sigqueue( pid_t pid, int signo, const union sigval value ) {
3000ca88:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
3000ca8c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000ca90:	e28d3004 	add	r3, sp, #4                                    <== NOT EXECUTED
3000ca94:	e5232004 	str	r2, [r3, #-4]!                                <== NOT EXECUTED
  return killinfo( pid, signo, &value );                              
3000ca98:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000ca9c:	eb00178a 	bl	300128cc <killinfo>                            <== NOT EXECUTED
}                                                                     
3000caa0:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000caa4:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

3000caa8 <sigsuspend>: #include <rtems/seterr.h> int sigsuspend( const sigset_t *sigmask ) {
3000caa8:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000caac:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
  /*                                                                  
   *  We use SIG_BLOCK and not SIG_SETMASK because there may be       
   *  signals which might be pending, which might get caught here.    
   *  We want the signals to be caught inside sigtimedwait.           
   */                                                                 
  status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); 
3000cab0:	e28d4004 	add	r4, sp, #4                                    <== NOT EXECUTED
#include <rtems/seterr.h>                                             
                                                                      
int sigsuspend(                                                       
  const sigset_t  *sigmask                                            
)                                                                     
{                                                                     
3000cab4:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  /*                                                                  
   *  We use SIG_BLOCK and not SIG_SETMASK because there may be       
   *  signals which might be pending, which might get caught here.    
   *  We want the signals to be caught inside sigtimedwait.           
   */                                                                 
  status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); 
3000cab8:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000cabc:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000cac0:	e3a00001 	mov	r0, #1                                        <== NOT EXECUTED
3000cac4:	ebffffee 	bl	3000ca84 <sigprocmask>                         <== NOT EXECUTED
                                                                      
  current_unblocked_signals = ~(*sigmask);                            
3000cac8:	e5953000 	ldr	r3, [r5]                                      <== NOT EXECUTED
3000cacc:	e28d0008 	add	r0, sp, #8                                    <== NOT EXECUTED
3000cad0:	e1e03003 	mvn	r3, r3                                        <== NOT EXECUTED
  status = sigtimedwait( ¤t_unblocked_signals, NULL, NULL );    
3000cad4:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
   *  signals which might be pending, which might get caught here.    
   *  We want the signals to be caught inside sigtimedwait.           
   */                                                                 
  status = sigprocmask( SIG_BLOCK, sigmask, &saved_signals_blocked ); 
                                                                      
  current_unblocked_signals = ~(*sigmask);                            
3000cad8:	e5203008 	str	r3, [r0, #-8]!                                <== NOT EXECUTED
  status = sigtimedwait( ¤t_unblocked_signals, NULL, NULL );    
3000cadc:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000cae0:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000cae4:	eb00001c 	bl	3000cb5c <sigtimedwait>                        <== NOT EXECUTED
                                                                      
  (void) sigprocmask( SIG_SETMASK, &saved_signals_blocked, NULL );    
3000cae8:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
3000caec:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000caf0:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
3000caf4:	ebffffe2 	bl	3000ca84 <sigprocmask>                         <== NOT EXECUTED
   */                                                                 
  #if defined(RTEMS_DEBUG)                                            
    assert( status != -1 );                                           
  #endif                                                              
                                                                      
  rtems_set_errno_and_return_minus_one( EINTR );                      
3000caf8:	eb002382 	bl	30015908 <__errno>                             <== NOT EXECUTED
3000cafc:	e3a03004 	mov	r3, #4                                        <== NOT EXECUTED
3000cb00:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
3000cb04:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000cb08:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
3000cb0c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000a998 <sigtimedwait>: int sigtimedwait( const sigset_t *set, siginfo_t *info, const struct timespec *timeout ) {
3000a998:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             <== NOT EXECUTED
  ISR_Level          level;                                           
                                                                      
  /*                                                                  
   *  Error check parameters before disabling interrupts.             
   */                                                                 
  if ( !set )                                                         
3000a99c:	e2506000 	subs	r6, r0, #0                                   <== NOT EXECUTED
int sigtimedwait(                                                     
  const sigset_t         *set,                                        
  siginfo_t              *info,                                       
  const struct timespec  *timeout                                     
)                                                                     
{                                                                     
3000a9a0:	e24dd010 	sub	sp, sp, #16                                   <== NOT EXECUTED
3000a9a4:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
3000a9a8:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
  ISR_Level          level;                                           
                                                                      
  /*                                                                  
   *  Error check parameters before disabling interrupts.             
   */                                                                 
  if ( !set )                                                         
3000a9ac:	0a000062 	beq	3000ab3c <sigtimedwait+0x1a4>                 <== NOT EXECUTED
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
  if ( timeout ) {                                                    
3000a9b0:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
3000a9b4:	0a00004e 	beq	3000aaf4 <sigtimedwait+0x15c>                 <== NOT EXECUTED
                                                                      
    if ( !_Timespec_Is_valid( timeout ) )                             
3000a9b8:	e1a00002 	mov	r0, r2                                        <== NOT EXECUTED
3000a9bc:	eb000e24 	bl	3000e254 <_Timespec_Is_valid>                  <== NOT EXECUTED
3000a9c0:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
3000a9c4:	0a00005c 	beq	3000ab3c <sigtimedwait+0x1a4>                 <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
3000a9c8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a9cc:	eb000e47 	bl	3000e2f0 <_Timespec_To_ticks>                  <== NOT EXECUTED
                                                                      
    if ( !interval )                                                  
3000a9d0:	e2501000 	subs	r1, r0, #0                                   <== NOT EXECUTED
3000a9d4:	0a000058 	beq	3000ab3c <sigtimedwait+0x1a4>                 <== NOT EXECUTED
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
                                                                      
  the_thread = _Thread_Executing;                                     
3000a9d8:	e59f7188 	ldr	r7, [pc, #392]	; 3000ab68 <sigtimedwait+0x1d0><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
3000a9dc:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
                                                                      
  the_thread = _Thread_Executing;                                     
3000a9e0:	e5973004 	ldr	r3, [r7, #4]                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize local variables.                                     
   */                                                                 
                                                                      
  the_info = ( info ) ? info : &signal_information;                   
3000a9e4:	028d4004 	addeq	r4, sp, #4                                  <== NOT EXECUTED
                                                                      
  the_thread = _Thread_Executing;                                     
                                                                      
  api = the_thread->API_Extensions[ THREAD_API_POSIX ];               
3000a9e8:	e593a0fc 	ldr	sl, [r3, #252]	; 0xfc                         <== NOT EXECUTED
static inline uint32_t arm_interrupt_disable( void )                  
{                                                                     
  uint32_t arm_switch_reg;                                            
  uint32_t level;                                                     
                                                                      
  __asm__ volatile (                                                  
3000a9ec:	e10f8000 	mrs	r8, CPSR                                      <== NOT EXECUTED
3000a9f0:	e3882080 	orr	r2, r8, #128	; 0x80                           <== NOT EXECUTED
3000a9f4:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
   */                                                                 
                                                                      
  /* API signals pending? */                                          
                                                                      
  _ISR_Disable( level );                                              
  if ( *set & api->signals_pending ) {                                
3000a9f8:	e5962000 	ldr	r2, [r6]                                      <== NOT EXECUTED
3000a9fc:	e59a00d4 	ldr	r0, [sl, #212]	; 0xd4                         <== NOT EXECUTED
3000aa00:	e0129000 	ands	r9, r2, r0                                   <== NOT EXECUTED
3000aa04:	1a00003c 	bne	3000aafc <sigtimedwait+0x164>                 <== NOT EXECUTED
    return the_info->si_signo;                                        
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
3000aa08:	e59f015c 	ldr	r0, [pc, #348]	; 3000ab6c <sigtimedwait+0x1d4><== NOT EXECUTED
3000aa0c:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
3000aa10:	e1120000 	tst	r2, r0                                        <== NOT EXECUTED
3000aa14:	1a000027 	bne	3000aab8 <sigtimedwait+0x120>                 <== NOT EXECUTED
3000aa18:	e59f2150 	ldr	r2, [pc, #336]	; 3000ab70 <sigtimedwait+0x1d8><== NOT EXECUTED
    the_info->si_code = SI_USER;                                      
    the_info->si_value.sival_int = 0;                                 
    return signo;                                                     
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
3000aa1c:	e3e0c000 	mvn	ip, #0                                        <== NOT EXECUTED
3000aa20:	e5920000 	ldr	r0, [r2]                                      <== NOT EXECUTED
3000aa24:	e584c000 	str	ip, [r4]                                      <== NOT EXECUTED
3000aa28:	e2800001 	add	r0, r0, #1                                    <== NOT EXECUTED
3000aa2c:	e5820000 	str	r0, [r2]                                      <== NOT EXECUTED
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
    the_thread->Wait.return_code     = EINTR;                         
3000aa30:	e3a02004 	mov	r2, #4                                        <== NOT EXECUTED
3000aa34:	e5832034 	str	r2, [r3, #52]	; 0x34                          <== NOT EXECUTED
    the_thread->Wait.option          = *set;                          
3000aa38:	e5960000 	ldr	r0, [r6]                                      <== NOT EXECUTED
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
3000aa3c:	e59f2130 	ldr	r2, [pc, #304]	; 3000ab74 <sigtimedwait+0x1dc><== NOT EXECUTED
    the_thread->Wait.return_code     = EINTR;                         
    the_thread->Wait.option          = *set;                          
3000aa40:	e5830030 	str	r0, [r3, #48]	; 0x30                          <== NOT EXECUTED
    the_thread->Wait.return_argument = the_info;                      
3000aa44:	e5834028 	str	r4, [r3, #40]	; 0x28                          <== NOT EXECUTED
  }                                                                   
                                                                      
  the_info->si_signo = -1;                                            
                                                                      
  _Thread_Disable_dispatch();                                         
    the_thread->Wait.queue           = &_POSIX_signals_Wait_queue;    
3000aa48:	e5832044 	str	r2, [r3, #68]	; 0x44                          <== NOT EXECUTED
                                                                      
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;
3000aa4c:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000aa50:	e5823030 	str	r3, [r2, #48]	; 0x30                          <== NOT EXECUTED
                                                                      
static inline void arm_interrupt_enable( uint32_t level )             
{                                                                     
  ARM_SWITCH_REGISTERS;                                               
                                                                      
  __asm__ volatile (                                                  
3000aa54:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
    the_thread->Wait.return_code     = EINTR;                         
    the_thread->Wait.option          = *set;                          
    the_thread->Wait.return_argument = the_info;                      
    _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue );
    _ISR_Enable( level );                                             
    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval );    
3000aa58:	e59f0114 	ldr	r0, [pc, #276]	; 3000ab74 <sigtimedwait+0x1dc><== NOT EXECUTED
3000aa5c:	e59f2114 	ldr	r2, [pc, #276]	; 3000ab78 <sigtimedwait+0x1e0><== NOT EXECUTED
3000aa60:	eb000c51 	bl	3000dbac <_Thread_queue_Enqueue_with_handler>  <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
3000aa64:	eb000b24 	bl	3000d6fc <_Thread_Enable_dispatch>             <== NOT EXECUTED
  /*                                                                  
   * 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 );
3000aa68:	e3a0c000 	mov	ip, #0                                        <== NOT EXECUTED
3000aa6c:	e5941000 	ldr	r1, [r4]                                      <== NOT EXECUTED
3000aa70:	e1a0300c 	mov	r3, ip                                        <== NOT EXECUTED
3000aa74:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000aa78:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000aa7c:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000aa80:	eb001825 	bl	30010b1c <_POSIX_signals_Clear_signals>        <== NOT EXECUTED
  /* 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)                 
3000aa84:	e5973004 	ldr	r3, [r7, #4]                                  <== NOT EXECUTED
3000aa88:	e5933034 	ldr	r3, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000aa8c:	e3530004 	cmp	r3, #4                                        <== NOT EXECUTED
3000aa90:	1a00002e 	bne	3000ab50 <sigtimedwait+0x1b8>                 <== NOT EXECUTED
       || !(*set & signo_to_mask( the_info->si_signo )) ) {           
3000aa94:	e5945000 	ldr	r5, [r4]                                      <== NOT EXECUTED
3000aa98:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
3000aa9c:	e2452001 	sub	r2, r5, #1                                    <== NOT EXECUTED
3000aaa0:	e3a01001 	mov	r1, #1                                        <== NOT EXECUTED
3000aaa4:	e0133211 	ands	r3, r3, r1, lsl r2                           <== NOT EXECUTED
3000aaa8:	0a000028 	beq	3000ab50 <sigtimedwait+0x1b8>                 <== NOT EXECUTED
    errno = _Thread_Executing->Wait.return_code;                      
    return -1;                                                        
  }                                                                   
                                                                      
  return the_info->si_signo;                                          
}                                                                     
3000aaac:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000aab0:	e28dd010 	add	sp, sp, #16                                   <== NOT EXECUTED
3000aab4:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
3000aab8:	ebffffa3 	bl	3000a94c <_POSIX_signals_Get_lowest>           <== NOT EXECUTED
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
3000aabc:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000aac0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  /* Process pending signals? */                                      
                                                                      
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
3000aac4:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
3000aac8:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000aacc:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000aad0:	e58d9000 	str	r9, [sp]                                      <== NOT EXECUTED
3000aad4:	eb001810 	bl	30010b1c <_POSIX_signals_Clear_signals>        <== NOT EXECUTED
3000aad8:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
    _ISR_Enable( level );                                             
                                                                      
    the_info->si_signo = signo;                                       
    the_info->si_code = SI_USER;                                      
3000aadc:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000aae0:	e5843004 	str	r3, [r4, #4]                                  <== NOT EXECUTED
    the_info->si_value.sival_int = 0;                                 
3000aae4:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
  if ( *set & _POSIX_signals_Pending ) {                              
    signo = _POSIX_signals_Get_lowest( _POSIX_signals_Pending );      
    _POSIX_signals_Clear_signals( api, signo, the_info, true, false );
    _ISR_Enable( level );                                             
                                                                      
    the_info->si_signo = signo;                                       
3000aae8:	e5845000 	str	r5, [r4]                                      <== NOT EXECUTED
    the_info->si_code = SI_USER;                                      
    the_info->si_value.sival_int = 0;                                 
3000aaec:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
    return signo;                                                     
3000aaf0:	eaffffed 	b	3000aaac <sigtimedwait+0x114>                   <== NOT EXECUTED
                                                                      
  /*  NOTE: This is very specifically a RELATIVE not ABSOLUTE time    
   *        in the Open Group specification.                          
   */                                                                 
                                                                      
  interval = 0;                                                       
3000aaf4:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
3000aaf8:	eaffffb6 	b	3000a9d8 <sigtimedwait+0x40>                    <== NOT EXECUTED
  /* 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 );
3000aafc:	ebffff92 	bl	3000a94c <_POSIX_signals_Get_lowest>           <== NOT EXECUTED
    _POSIX_signals_Clear_signals(                                     
3000ab00:	e3a0c000 	mov	ip, #0                                        <== NOT EXECUTED
  /* 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 );
3000ab04:	e5840000 	str	r0, [r4]                                      <== NOT EXECUTED
3000ab08:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
    _POSIX_signals_Clear_signals(                                     
3000ab0c:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
3000ab10:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
3000ab14:	e1a0300c 	mov	r3, ip                                        <== NOT EXECUTED
3000ab18:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
3000ab1c:	eb0017fe 	bl	30010b1c <_POSIX_signals_Clear_signals>        <== NOT EXECUTED
3000ab20:	e129f008 	msr	CPSR_fc, r8                                   <== NOT EXECUTED
      false,                                                          
      false                                                           
    );                                                                
    _ISR_Enable( level );                                             
                                                                      
    the_info->si_code = SI_USER;                                      
3000ab24:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000ab28:	e5843004 	str	r3, [r4, #4]                                  <== NOT EXECUTED
    the_info->si_value.sival_int = 0;                                 
3000ab2c:	e3a03000 	mov	r3, #0                                        <== NOT EXECUTED
3000ab30:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
    return the_info->si_signo;                                        
3000ab34:	e5945000 	ldr	r5, [r4]                                      <== NOT EXECUTED
3000ab38:	eaffffdb 	b	3000aaac <sigtimedwait+0x114>                   <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EINVAL );                 
                                                                      
    interval = _Timespec_To_ticks( timeout );                         
                                                                      
    if ( !interval )                                                  
      rtems_set_errno_and_return_minus_one( EINVAL );                 
3000ab3c:	eb0023e8 	bl	30013ae4 <__errno>                             <== NOT EXECUTED
3000ab40:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000ab44:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000ab48:	e3e05000 	mvn	r5, #0                                        <== NOT EXECUTED
3000ab4c:	eaffffd6 	b	3000aaac <sigtimedwait+0x114>                   <== NOT EXECUTED
   * 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;                      
3000ab50:	eb0023e3 	bl	30013ae4 <__errno>                             <== NOT EXECUTED
3000ab54:	e5973004 	ldr	r3, [r7, #4]                                  <== NOT EXECUTED
    return -1;                                                        
3000ab58:	e3e05000 	mvn	r5, #0                                        <== NOT EXECUTED
   * 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;                      
3000ab5c:	e5933034 	ldr	r3, [r3, #52]	; 0x34                          <== NOT EXECUTED
3000ab60:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    return -1;                                                        
3000ab64:	eaffffd0 	b	3000aaac <sigtimedwait+0x114>                   <== NOT EXECUTED
                                                                      

3000cd48 <sigwait>: int sigwait( const sigset_t *set, int *sig ) {
3000cd48:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000cd4c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  int status;                                                         
                                                                      
  status = sigtimedwait( set, NULL, NULL );                           
3000cd50:	e3a01000 	mov	r1, #0                                        <== NOT EXECUTED
3000cd54:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
3000cd58:	ebffff7f 	bl	3000cb5c <sigtimedwait>                        <== NOT EXECUTED
                                                                      
  if ( status != -1 ) {                                               
3000cd5c:	e3700001 	cmn	r0, #1                                        <== NOT EXECUTED
3000cd60:	0a000005 	beq	3000cd7c <sigwait+0x34>                       <== NOT EXECUTED
    if ( sig )                                                        
3000cd64:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
      *sig = status;                                                  
3000cd68:	15840000 	strne	r0, [r4]                                    <== NOT EXECUTED
    return 0;                                                         
3000cd6c:	13a00000 	movne	r0, #0                                      <== NOT EXECUTED
  int status;                                                         
                                                                      
  status = sigtimedwait( set, NULL, NULL );                           
                                                                      
  if ( status != -1 ) {                                               
    if ( sig )                                                        
3000cd70:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
      *sig = status;                                                  
    return 0;                                                         
3000cd74:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  return errno;                                                       
}                                                                     
3000cd78:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    if ( sig )                                                        
      *sig = status;                                                  
    return 0;                                                         
  }                                                                   
                                                                      
  return errno;                                                       
3000cd7c:	eb0022e1 	bl	30015908 <__errno>                             <== NOT EXECUTED
3000cd80:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
3000cd84:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

3000cd40 <sigwaitinfo>: int sigwaitinfo( const sigset_t *set, siginfo_t *info ) { return sigtimedwait( set, info, NULL );
3000cd40:	e3a02000 	mov	r2, #0                                        <== NOT EXECUTED
3000cd44:	eaffff84 	b	3000cb5c <sigtimedwait>                         <== NOT EXECUTED
                                                                      

300096f4 <sysconf>: long sysconf( int name ) { if ( name == _SC_CLK_TCK )
300096f4:	e3500002 	cmp	r0, #2                                        <== NOT EXECUTED
 */                                                                   
                                                                      
long sysconf(                                                         
  int name                                                            
)                                                                     
{                                                                     
300096f8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  if ( name == _SC_CLK_TCK )                                          
300096fc:	0a000008 	beq	30009724 <sysconf+0x30>                       <== NOT EXECUTED
    return (TOD_MICROSECONDS_PER_SECOND /                             
      rtems_configuration_get_microseconds_per_tick());               
                                                                      
  if ( name == _SC_OPEN_MAX )                                         
30009700:	e3500004 	cmp	r0, #4                                        <== NOT EXECUTED
30009704:	0a00000b 	beq	30009738 <sysconf+0x44>                       <== NOT EXECUTED
    return rtems_libio_number_iops;                                   
                                                                      
  if ( name == _SC_GETPW_R_SIZE_MAX )                                 
30009708:	e3500033 	cmp	r0, #51	; 0x33                                <== NOT EXECUTED
    return 1024;                                                      
3000970c:	03a00b01 	moveq	r0, #1024	; 0x400                           <== NOT EXECUTED
      rtems_configuration_get_microseconds_per_tick());               
                                                                      
  if ( name == _SC_OPEN_MAX )                                         
    return rtems_libio_number_iops;                                   
                                                                      
  if ( name == _SC_GETPW_R_SIZE_MAX )                                 
30009710:	049df004 	popeq	{pc}		; (ldreq pc, [sp], #4)                <== NOT EXECUTED
    return 1024;                                                      
                                                                      
  if ( name == _SC_PAGESIZE )                                         
30009714:	e3500008 	cmp	r0, #8                                        <== NOT EXECUTED
30009718:	1a000009 	bne	30009744 <sysconf+0x50>                       <== NOT EXECUTED
    return PAGE_SIZE;                                                 
3000971c:	e3a00a01 	mov	r0, #4096	; 0x1000                            <== NOT EXECUTED
  if ( name == 515 ) /* Solaris _SC_STACK_PROT */                     
   return 0;                                                          
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
30009720:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
long sysconf(                                                         
  int name                                                            
)                                                                     
{                                                                     
  if ( name == _SC_CLK_TCK )                                          
    return (TOD_MICROSECONDS_PER_SECOND /                             
30009724:	e59f302c 	ldr	r3, [pc, #44]	; 30009758 <sysconf+0x64>       <== NOT EXECUTED
30009728:	e59f002c 	ldr	r0, [pc, #44]	; 3000975c <sysconf+0x68>       <== NOT EXECUTED
3000972c:	e593100c 	ldr	r1, [r3, #12]                                 <== NOT EXECUTED
30009730:	eb0032cd 	bl	3001626c <__aeabi_uidiv>                       <== NOT EXECUTED
30009734:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
      rtems_configuration_get_microseconds_per_tick());               
                                                                      
  if ( name == _SC_OPEN_MAX )                                         
    return rtems_libio_number_iops;                                   
30009738:	e59f3020 	ldr	r3, [pc, #32]	; 30009760 <sysconf+0x6c>       <== NOT EXECUTED
3000973c:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
30009740:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
#if defined(__sparc__)                                                
  if ( name == 515 ) /* Solaris _SC_STACK_PROT */                     
   return 0;                                                          
#endif                                                                
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
30009744:	eb0023ba 	bl	30012634 <__errno>                             <== NOT EXECUTED
30009748:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000974c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009750:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009754:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009a84 <timer_create>: timer_t *timerid ) { POSIX_Timer_Control *ptimer; if ( clock_id != CLOCK_REALTIME )
30009a84:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
int timer_create(                                                     
  clockid_t        clock_id,                                          
  struct sigevent *evp,                                               
  timer_t         *timerid                                            
)                                                                     
{                                                                     
30009a88:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
30009a8c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
30009a90:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
  POSIX_Timer_Control *ptimer;                                        
                                                                      
  if ( clock_id != CLOCK_REALTIME )                                   
30009a94:	1a000035 	bne	30009b70 <timer_create+0xec>                  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  if ( !timerid )                                                     
30009a98:	e3520000 	cmp	r2, #0                                        <== NOT EXECUTED
30009a9c:	0a000033 	beq	30009b70 <timer_create+0xec>                  <== NOT EXECUTED
 /*                                                                   
  *  The data of the structure evp are checked in order to verify if they
  *  are coherent.                                                    
  */                                                                  
                                                                      
  if (evp != NULL) {                                                  
30009aa0:	e3510000 	cmp	r1, #0                                        <== NOT EXECUTED
30009aa4:	0a000009 	beq	30009ad0 <timer_create+0x4c>                  <== NOT EXECUTED
    /* The structure has data */                                      
    if ( ( evp->sigev_notify != SIGEV_NONE ) &&                       
30009aa8:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
30009aac:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
30009ab0:	e3530001 	cmp	r3, #1                                        <== NOT EXECUTED
30009ab4:	8a00002d 	bhi	30009b70 <timer_create+0xec>                  <== NOT EXECUTED
         ( 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 )                                         
30009ab8:	e5913004 	ldr	r3, [r1, #4]                                  <== NOT EXECUTED
30009abc:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009ac0:	0a00002a 	beq	30009b70 <timer_create+0xec>                  <== NOT EXECUTED
                                                                      
static inline bool is_valid_signo(                                    
  int signo                                                           
)                                                                     
{                                                                     
  return ((signo) >= 1 && (signo) <= 32 );                            
30009ac4:	e2433001 	sub	r3, r3, #1                                    <== NOT EXECUTED
       rtems_set_errno_and_return_minus_one( EINVAL );                
                                                                      
     if ( !is_valid_signo(evp->sigev_signo) )                         
30009ac8:	e353001f 	cmp	r3, #31                                       <== NOT EXECUTED
30009acc:	8a000027 	bhi	30009b70 <timer_create+0xec>                  <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
30009ad0:	e59f30c4 	ldr	r3, [pc, #196]	; 30009b9c <timer_create+0x118><== NOT EXECUTED
30009ad4:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
30009ad8:	e2822001 	add	r2, r2, #1                                    <== NOT EXECUTED
30009adc:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
 *  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 );
30009ae0:	e59f00b8 	ldr	r0, [pc, #184]	; 30009ba0 <timer_create+0x11c><== NOT EXECUTED
30009ae4:	eb00079b 	bl	3000b958 <_Objects_Allocate>                   <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
30009ae8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009aec:	0a000024 	beq	30009b84 <timer_create+0x100>                 <== NOT EXECUTED
    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;                   
30009af0:	e3a03002 	mov	r3, #2                                        <== NOT EXECUTED
30009af4:	e5c0303c 	strb	r3, [r0, #60]	; 0x3c                         <== NOT EXECUTED
  ptimer->thread_id = _Thread_Executing->Object.id;                   
30009af8:	e59f30a4 	ldr	r3, [pc, #164]	; 30009ba4 <timer_create+0x120><== NOT EXECUTED
                                                                      
  if ( evp != NULL ) {                                                
30009afc:	e3540000 	cmp	r4, #0                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  /* The data of the created timer are stored to use them later */    
                                                                      
  ptimer->state     = POSIX_TIMER_STATE_CREATE_NEW;                   
  ptimer->thread_id = _Thread_Executing->Object.id;                   
30009b00:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
30009b04:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
30009b08:	e5803038 	str	r3, [r0, #56]	; 0x38                          <== NOT EXECUTED
                                                                      
  if ( evp != NULL ) {                                                
30009b0c:	0a000003 	beq	30009b20 <timer_create+0x9c>                  <== NOT EXECUTED
    ptimer->inf.sigev_notify = evp->sigev_notify;                     
30009b10:	e894000e 	ldm	r4, {r1, r2, r3}                              <== NOT EXECUTED
30009b14:	e5801040 	str	r1, [r0, #64]	; 0x40                          <== NOT EXECUTED
    ptimer->inf.sigev_signo  = evp->sigev_signo;                      
30009b18:	e5802044 	str	r2, [r0, #68]	; 0x44                          <== NOT EXECUTED
    ptimer->inf.sigev_value  = evp->sigev_value;                      
30009b1c:	e5803048 	str	r3, [r0, #72]	; 0x48                          <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009b20:	e59f2078 	ldr	r2, [pc, #120]	; 30009ba0 <timer_create+0x11c><== NOT EXECUTED
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
30009b24:	e5903008 	ldr	r3, [r0, #8]                                  <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009b28:	e592201c 	ldr	r2, [r2, #28]                                 <== NOT EXECUTED
  }                                                                   
                                                                      
  ptimer->overrun  = 0;                                               
30009b2c:	e3a04000 	mov	r4, #0                                        <== NOT EXECUTED
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  uint32_t             name                                           
)                                                                     
{                                                                     
  _Objects_Set_local_object(                                          
30009b30:	e1a01803 	lsl	r1, r3, #16                                   <== NOT EXECUTED
30009b34:	e5804068 	str	r4, [r0, #104]	; 0x68                         <== NOT EXECUTED
  ptimer->timer_data.it_value.tv_sec     = 0;                         
30009b38:	e580405c 	str	r4, [r0, #92]	; 0x5c                          <== NOT EXECUTED
  ptimer->timer_data.it_value.tv_nsec    = 0;                         
30009b3c:	e5804060 	str	r4, [r0, #96]	; 0x60                          <== NOT EXECUTED
  ptimer->timer_data.it_interval.tv_sec  = 0;                         
30009b40:	e5804054 	str	r4, [r0, #84]	; 0x54                          <== NOT EXECUTED
  ptimer->timer_data.it_interval.tv_nsec = 0;                         
30009b44:	e5804058 	str	r4, [r0, #88]	; 0x58                          <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
30009b48:	e5804018 	str	r4, [r0, #24]                                 <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
30009b4c:	e580402c 	str	r4, [r0, #44]	; 0x2c                          <== NOT EXECUTED
  the_watchdog->id        = id;                                       
30009b50:	e5804030 	str	r4, [r0, #48]	; 0x30                          <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
30009b54:	e5804034 	str	r4, [r0, #52]	; 0x34                          <== NOT EXECUTED
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
30009b58:	e7820721 	str	r0, [r2, r1, lsr #14]                         <== NOT EXECUTED
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  /* ASSERT: information->is_string == false */                       
  the_object->name.name_u32 = name;                                   
30009b5c:	e580400c 	str	r4, [r0, #12]                                 <== NOT EXECUTED
                                                                      
  _Watchdog_Initialize( &ptimer->Timer, NULL, 0, NULL );              
  _Objects_Open_u32(&_POSIX_Timer_Information, &ptimer->Object, 0);   
                                                                      
  *timerid  = ptimer->Object.id;                                      
30009b60:	e5853000 	str	r3, [r5]                                      <== NOT EXECUTED
  _Thread_Enable_dispatch();                                          
30009b64:	eb000be6 	bl	3000cb04 <_Thread_Enable_dispatch>             <== NOT EXECUTED
  return 0;                                                           
30009b68:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
}                                                                     
30009b6c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
     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 );                
30009b70:	eb0024ad 	bl	30012e2c <__errno>                             <== NOT EXECUTED
30009b74:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009b78:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009b7c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009b80:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
  /*                                                                  
   *  Allocate a timer                                                
   */                                                                 
  ptimer = _POSIX_Timer_Allocate();                                   
  if ( !ptimer ) {                                                    
    _Thread_Enable_dispatch();                                        
30009b84:	eb000bde 	bl	3000cb04 <_Thread_Enable_dispatch>             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EAGAIN );                   
30009b88:	eb0024a7 	bl	30012e2c <__errno>                             <== NOT EXECUTED
30009b8c:	e3a0300b 	mov	r3, #11                                       <== NOT EXECUTED
30009b90:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009b94:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009b98:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

3000a31c <timer_delete>: int timer_delete( timer_t timerid ) {
3000a31c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
3000a320:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000a324:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
3000a328:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000a32c:	e59f005c 	ldr	r0, [pc, #92]	; 3000a390 <timer_delete+0x74>  <== NOT EXECUTED
3000a330:	eb000868 	bl	3000c4d8 <_Objects_Get>                        <== NOT EXECUTED
  */                                                                  
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
3000a334:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
3000a338:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
3000a33c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
3000a340:	0a000005 	beq	3000a35c <timer_delete+0x40>                  <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000a344:	eb002567 	bl	300138e8 <__errno>                             <== NOT EXECUTED
3000a348:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000a34c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000a350:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
}                                                                     
3000a354:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000a358:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object );   
3000a35c:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
3000a360:	e59f0028 	ldr	r0, [pc, #40]	; 3000a390 <timer_delete+0x74>  <== NOT EXECUTED
3000a364:	eb00074f 	bl	3000c0a8 <_Objects_Close>                      <== NOT EXECUTED
      ptimer->state = POSIX_TIMER_STATE_FREE;                         
3000a368:	e3a03001 	mov	r3, #1                                        <== NOT EXECUTED
3000a36c:	e5c4303c 	strb	r3, [r4, #60]	; 0x3c                         <== NOT EXECUTED
      (void) _Watchdog_Remove( &ptimer->Timer );                      
3000a370:	e2840010 	add	r0, r4, #16                                   <== NOT EXECUTED
3000a374:	eb000fdf 	bl	3000e2f8 <_Watchdog_Remove>                    <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _POSIX_Timer_Free (                         
  POSIX_Timer_Control *the_timer                                      
)                                                                     
{                                                                     
  _Objects_Free( &_POSIX_Timer_Information, &the_timer->Object );     
3000a378:	e59f0010 	ldr	r0, [pc, #16]	; 3000a390 <timer_delete+0x74>  <== NOT EXECUTED
3000a37c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
3000a380:	eb0007fd 	bl	3000c37c <_Objects_Free>                       <== NOT EXECUTED
      _POSIX_Timer_Free( ptimer );                                    
      _Thread_Enable_dispatch();                                      
3000a384:	eb000b8d 	bl	3000d1c0 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000a388:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
3000a38c:	eafffff0 	b	3000a354 <timer_delete+0x38>                    <== NOT EXECUTED
                                                                      

3000af38 <timer_getoverrun>: * its execution, _POSIX_Timer_TSR will have to set this counter to 0. */ int timer_getoverrun( timer_t timerid ) {
3000af38:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
3000af3c:	e24dd004 	sub	sp, sp, #4                                    <== NOT EXECUTED
3000af40:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
3000af44:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
3000af48:	e59f0038 	ldr	r0, [pc, #56]	; 3000af88 <timer_getoverrun+0x50><== NOT EXECUTED
3000af4c:	eb00084a 	bl	3000d07c <_Objects_Get>                        <== NOT EXECUTED
  int                  overrun;                                       
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
3000af50:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
3000af54:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
3000af58:	0a000006 	beq	3000af78 <timer_getoverrun+0x40>              <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000af5c:	eb00245b 	bl	300140d0 <__errno>                             <== NOT EXECUTED
3000af60:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000af64:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000af68:	e3e04000 	mvn	r4, #0                                        <== NOT EXECUTED
}                                                                     
3000af6c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
3000af70:	e28dd004 	add	sp, sp, #4                                    <== NOT EXECUTED
3000af74:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      overrun = ptimer->overrun;                                      
3000af78:	e5904068 	ldr	r4, [r0, #104]	; 0x68                         <== NOT EXECUTED
      ptimer->overrun = 0;                                            
3000af7c:	e5803068 	str	r3, [r0, #104]	; 0x68                         <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
3000af80:	eb000b77 	bl	3000dd64 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return overrun;                                                 
3000af84:	eafffff8 	b	3000af6c <timer_getoverrun+0x34>                <== NOT EXECUTED
                                                                      

3000af8c <timer_gettime>: int timer_gettime( timer_t timerid, struct itimerspec *value ) {
3000af8c:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
  struct timespec      current_time;                                  
  Watchdog_Interval    left;                                          
                                                                      
  if ( !value )                                                       
3000af90:	e2514000 	subs	r4, r1, #0                                   <== NOT EXECUTED
                                                                      
int timer_gettime(                                                    
  timer_t            timerid,                                         
  struct itimerspec *value                                            
)                                                                     
{                                                                     
3000af94:	e24dd00c 	sub	sp, sp, #12                                   <== NOT EXECUTED
3000af98:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  POSIX_Timer_Control *ptimer;                                        
  Objects_Locations    location;                                      
  struct timespec      current_time;                                  
  Watchdog_Interval    left;                                          
                                                                      
  if ( !value )                                                       
3000af9c:	0a000018 	beq	3000b004 <timer_gettime+0x78>                 <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
                                                                      
  /* Reads the current time */                                        
  _TOD_Get( ¤t_time );                                          
3000afa0:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
3000afa4:	eb000598 	bl	3000c60c <_TOD_Get>                            <== NOT EXECUTED
3000afa8:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
3000afac:	e59f0064 	ldr	r0, [pc, #100]	; 3000b018 <timer_gettime+0x8c><== NOT EXECUTED
3000afb0:	e28d2008 	add	r2, sp, #8                                    <== NOT EXECUTED
3000afb4:	eb000830 	bl	3000d07c <_Objects_Get>                        <== NOT EXECUTED
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
3000afb8:	e59d6008 	ldr	r6, [sp, #8]                                  <== NOT EXECUTED
3000afbc:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
3000afc0:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
3000afc4:	1a00000e 	bne	3000b004 <timer_gettime+0x78>                 <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
                                                                      
      /* Calculates the time left before the timer finishes */        
                                                                      
      left =                                                          
        (ptimer->Timer.start_time + ptimer->Timer.initial) - /* expire */
3000afc8:	e59f304c 	ldr	r3, [pc, #76]	; 3000b01c <timer_gettime+0x90> <== NOT EXECUTED
3000afcc:	e5952024 	ldr	r2, [r5, #36]	; 0x24                          <== NOT EXECUTED
3000afd0:	e590001c 	ldr	r0, [r0, #28]                                 <== NOT EXECUTED
3000afd4:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
3000afd8:	e0800002 	add	r0, r0, r2                                    <== NOT EXECUTED
        _Watchdog_Ticks_since_boot;                          /* now */
                                                                      
      _Timespec_From_ticks( left, &value->it_value );                 
3000afdc:	e0630000 	rsb	r0, r3, r0                                    <== NOT EXECUTED
3000afe0:	e2841008 	add	r1, r4, #8                                    <== NOT EXECUTED
3000afe4:	eb000e34 	bl	3000e8bc <_Timespec_From_ticks>                <== NOT EXECUTED
                                                                      
      value->it_interval  = ptimer->timer_data.it_interval;           
3000afe8:	e2853054 	add	r3, r5, #84	; 0x54                            <== NOT EXECUTED
3000afec:	e893000c 	ldm	r3, {r2, r3}                                  <== NOT EXECUTED
3000aff0:	e884000c 	stm	r4, {r2, r3}                                  <== NOT EXECUTED
                                                                      
      _Thread_Enable_dispatch();                                      
3000aff4:	eb000b5a 	bl	3000dd64 <_Thread_Enable_dispatch>             <== NOT EXECUTED
      return 0;                                                       
3000aff8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
3000affc:	e28dd00c 	add	sp, sp, #12                                   <== NOT EXECUTED
3000b000:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
3000b004:	eb002431 	bl	300140d0 <__errno>                             <== NOT EXECUTED
3000b008:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
3000b00c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
3000b010:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
3000b014:	eafffff8 	b	3000affc <timer_gettime+0x70>                   <== NOT EXECUTED
                                                                      

30009ba8 <timer_settime>: timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue ) {
30009ba8:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
  Objects_Locations    location;                                      
  bool                 activated;                                     
  uint32_t             initial_period;                                
  struct itimerspec    normalize;                                     
                                                                      
  if ( !value )                                                       
30009bac:	e2525000 	subs	r5, r2, #0                                   <== NOT EXECUTED
  timer_t                  timerid,                                   
  int                      flags,                                     
  const struct itimerspec *value,                                     
  struct itimerspec       *ovalue                                     
)                                                                     
{                                                                     
30009bb0:	e24dd020 	sub	sp, sp, #32                                   <== NOT EXECUTED
30009bb4:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30009bb8:	e1a08001 	mov	r8, r1                                        <== NOT EXECUTED
30009bbc:	e1a07003 	mov	r7, r3                                        <== NOT EXECUTED
  Objects_Locations    location;                                      
  bool                 activated;                                     
  uint32_t             initial_period;                                
  struct itimerspec    normalize;                                     
                                                                      
  if ( !value )                                                       
30009bc0:	0a00004e 	beq	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
                                                                      
  /*                                                                  
   * 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) ) ) {                  
30009bc4:	e2850008 	add	r0, r5, #8                                    <== NOT EXECUTED
30009bc8:	eb000eb1 	bl	3000d694 <_Timespec_Is_valid>                  <== NOT EXECUTED
30009bcc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009bd0:	0a00004a 	beq	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
  if ( !_Timespec_Is_valid( &(value->it_interval) ) ) {               
30009bd4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30009bd8:	eb000ead 	bl	3000d694 <_Timespec_Is_valid>                  <== NOT EXECUTED
30009bdc:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009be0:	0a000046 	beq	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
30009be4:	e3580000 	cmp	r8, #0                                        <== NOT EXECUTED
30009be8:	13580004 	cmpne	r8, #4                                      <== NOT EXECUTED
30009bec:	1a000043 	bne	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
30009bf0:	e28d4004 	add	r4, sp, #4                                    <== NOT EXECUTED
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
30009bf4:	e3580004 	cmp	r8, #4                                        <== NOT EXECUTED
                                                                      
  if ( flags != TIMER_ABSTIME && flags != POSIX_TIMER_RELATIVE ) {    
    rtems_set_errno_and_return_minus_one( EINVAL );                   
  }                                                                   
                                                                      
  normalize = *value;                                                 
30009bf8:	e895000f 	ldm	r5, {r0, r1, r2, r3}                          <== NOT EXECUTED
30009bfc:	e884000f 	stm	r4, {r0, r1, r2, r3}                          <== NOT EXECUTED
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
30009c00:	0a000029 	beq	30009cac <timer_settime+0x104>                <== NOT EXECUTED
  timer_t            id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (POSIX_Timer_Control *)                                      
    _Objects_Get( &_POSIX_Timer_Information, (Objects_Id) id, location );
30009c04:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30009c08:	e59f0148 	ldr	r0, [pc, #328]	; 30009d58 <timer_settime+0x1b0><== NOT EXECUTED
30009c0c:	e28d201c 	add	r2, sp, #28                                   <== NOT EXECUTED
30009c10:	eb000881 	bl	3000be1c <_Objects_Get>                        <== NOT EXECUTED
   * something with the structure of times of the timer: to stop, start
   * or start it again                                                
   */                                                                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
30009c14:	e59d301c 	ldr	r3, [sp, #28]                                 <== NOT EXECUTED
30009c18:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30009c1c:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009c20:	1a000036 	bne	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
                                                                      
    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 ) {
30009c24:	e59d300c 	ldr	r3, [sp, #12]                                 <== NOT EXECUTED
30009c28:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009c2c:	1a000002 	bne	30009c3c <timer_settime+0x94>                 <== NOT EXECUTED
30009c30:	e59d3010 	ldr	r3, [sp, #16]                                 <== NOT EXECUTED
30009c34:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009c38:	0a000035 	beq	30009d14 <timer_settime+0x16c>                <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
       }                                                              
                                                                      
       /* Convert from seconds and nanoseconds to ticks */            
       ptimer->ticks  = _Timespec_To_ticks( &value->it_interval );    
30009c3c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30009c40:	eb000eba 	bl	3000d730 <_Timespec_To_ticks>                  <== NOT EXECUTED
30009c44:	e5860064 	str	r0, [r6, #100]	; 0x64                         <== NOT EXECUTED
       initial_period = _Timespec_To_ticks( &normalize.it_value );    
30009c48:	e2840008 	add	r0, r4, #8                                    <== NOT EXECUTED
30009c4c:	eb000eb7 	bl	3000d730 <_Timespec_To_ticks>                  <== NOT EXECUTED
                                                                      
                                                                      
       activated = _POSIX_Timer_Insert_helper(                        
30009c50:	e5962008 	ldr	r2, [r6, #8]                                  <== NOT EXECUTED
        return 0;                                                     
       }                                                              
                                                                      
       /* Convert from seconds and nanoseconds to ticks */            
       ptimer->ticks  = _Timespec_To_ticks( &value->it_interval );    
       initial_period = _Timespec_To_ticks( &normalize.it_value );    
30009c54:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
                                                                      
                                                                      
       activated = _POSIX_Timer_Insert_helper(                        
30009c58:	e59f30fc 	ldr	r3, [pc, #252]	; 30009d5c <timer_settime+0x1b4><== NOT EXECUTED
30009c5c:	e2860010 	add	r0, r6, #16                                   <== NOT EXECUTED
30009c60:	e58d6000 	str	r6, [sp]                                      <== NOT EXECUTED
30009c64:	eb001979 	bl	30010250 <_POSIX_Timer_Insert_helper>          <== NOT EXECUTED
         initial_period,                                              
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
30009c68:	e2505000 	subs	r5, r0, #0                                   <== NOT EXECUTED
30009c6c:	0a000036 	beq	30009d4c <timer_settime+0x1a4>                <== NOT EXECUTED
                                                                      
       /*                                                             
        * The timer has been started and is running.  So we return the
        * old ones in "ovalue"                                        
        */                                                            
       if ( ovalue )                                                  
30009c70:	e3570000 	cmp	r7, #0                                        <== NOT EXECUTED
         *ovalue = ptimer->timer_data;                                
30009c74:	1286c054 	addne	ip, r6, #84	; 0x54                          <== NOT EXECUTED
30009c78:	189c000f 	ldmne	ip, {r0, r1, r2, r3}                        <== NOT EXECUTED
30009c7c:	1887000f 	stmne	r7, {r0, r1, r2, r3}                        <== NOT EXECUTED
30009c80:	0286c054 	addeq	ip, r6, #84	; 0x54                          <== NOT EXECUTED
       ptimer->timer_data = normalize;                                
                                                                      
       /* Indicate that the time is running */                        
       ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                  
30009c84:	e3a0e003 	mov	lr, #3                                        <== NOT EXECUTED
        * The timer has been started and is running.  So we return the
        * old ones in "ovalue"                                        
        */                                                            
       if ( ovalue )                                                  
         *ovalue = ptimer->timer_data;                                
       ptimer->timer_data = normalize;                                
30009c88:	e894000f 	ldm	r4, {r0, r1, r2, r3}                          <== NOT EXECUTED
                                                                      
       /* Indicate that the time is running */                        
       ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                  
30009c8c:	e5c6e03c 	strb	lr, [r6, #60]	; 0x3c                         <== NOT EXECUTED
        * The timer has been started and is running.  So we return the
        * old ones in "ovalue"                                        
        */                                                            
       if ( ovalue )                                                  
         *ovalue = ptimer->timer_data;                                
       ptimer->timer_data = normalize;                                
30009c90:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          <== NOT EXECUTED
                                                                      
       /* Indicate that the time is running */                        
       ptimer->state = POSIX_TIMER_STATE_CREATE_RUN;                  
       _TOD_Get( &ptimer->time );                                     
30009c94:	e286006c 	add	r0, r6, #108	; 0x6c                           <== NOT EXECUTED
30009c98:	eb0005cc 	bl	3000b3d0 <_TOD_Get>                            <== NOT EXECUTED
       _Thread_Enable_dispatch();                                     
30009c9c:	eb000b98 	bl	3000cb04 <_Thread_Enable_dispatch>             <== NOT EXECUTED
       return 0;                                                      
30009ca0:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
}                                                                     
30009ca4:	e28dd020 	add	sp, sp, #32                                   <== NOT EXECUTED
30009ca8:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
  normalize = *value;                                                 
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
    struct timespec now;                                              
    _TOD_Get( &now );                                                 
30009cac:	e28d8014 	add	r8, sp, #20                                   <== NOT EXECUTED
30009cb0:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
    /* Check for seconds in the past */                               
    if ( _Timespec_Greater_than( &now, &normalize.it_value ) )        
30009cb4:	e284a008 	add	sl, r4, #8                                    <== NOT EXECUTED
  normalize = *value;                                                 
                                                                      
  /* Convert absolute to relative time */                             
  if (flags == TIMER_ABSTIME) {                                       
    struct timespec now;                                              
    _TOD_Get( &now );                                                 
30009cb8:	eb0005c4 	bl	3000b3d0 <_TOD_Get>                            <== NOT EXECUTED
    /* Check for seconds in the past */                               
    if ( _Timespec_Greater_than( &now, &normalize.it_value ) )        
30009cbc:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
30009cc0:	e1a0100a 	mov	r1, sl                                        <== NOT EXECUTED
30009cc4:	eb000e64 	bl	3000d65c <_Timespec_Greater_than>              <== NOT EXECUTED
30009cc8:	e3500000 	cmp	r0, #0                                        <== NOT EXECUTED
30009ccc:	1a00000b 	bne	30009d00 <timer_settime+0x158>                <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    _Timespec_Subtract( &now, &normalize.it_value, &normalize.it_value );
30009cd0:	e1a0100a 	mov	r1, sl                                        <== NOT EXECUTED
30009cd4:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
30009cd8:	e1a0200a 	mov	r2, sl                                        <== NOT EXECUTED
30009cdc:	eb000e7d 	bl	3000d6d8 <_Timespec_Subtract>                  <== NOT EXECUTED
30009ce0:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
30009ce4:	e59f006c 	ldr	r0, [pc, #108]	; 30009d58 <timer_settime+0x1b0><== NOT EXECUTED
30009ce8:	e28d201c 	add	r2, sp, #28                                   <== NOT EXECUTED
30009cec:	eb00084a 	bl	3000be1c <_Objects_Get>                        <== NOT EXECUTED
   * something with the structure of times of the timer: to stop, start
   * or start it again                                                
   */                                                                 
                                                                      
  ptimer = _POSIX_Timer_Get( timerid, &location );                    
  switch ( location ) {                                               
30009cf0:	e59d301c 	ldr	r3, [sp, #28]                                 <== NOT EXECUTED
30009cf4:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
30009cf8:	e3530000 	cmp	r3, #0                                        <== NOT EXECUTED
30009cfc:	0affffc8 	beq	30009c24 <timer_settime+0x7c>                 <== NOT EXECUTED
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  rtems_set_errno_and_return_minus_one( EINVAL );                     
30009d00:	eb002449 	bl	30012e2c <__errno>                             <== NOT EXECUTED
30009d04:	e3a03016 	mov	r3, #22                                       <== NOT EXECUTED
30009d08:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
30009d0c:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009d10:	eaffffe3 	b	30009ca4 <timer_settime+0xfc>                   <== NOT EXECUTED
                                                                      
    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 );                   
30009d14:	e2800010 	add	r0, r0, #16                                   <== NOT EXECUTED
30009d18:	eb000fb6 	bl	3000dbf8 <_Watchdog_Remove>                    <== NOT EXECUTED
         /* The old data of the timer are returned */                 
         if ( ovalue )                                                
30009d1c:	e3570000 	cmp	r7, #0                                        <== NOT EXECUTED
           *ovalue = ptimer->timer_data;                              
30009d20:	1286c054 	addne	ip, r6, #84	; 0x54                          <== NOT EXECUTED
30009d24:	189c000f 	ldmne	ip, {r0, r1, r2, r3}                        <== NOT EXECUTED
30009d28:	1887000f 	stmne	r7, {r0, r1, r2, r3}                        <== NOT EXECUTED
30009d2c:	0286c054 	addeq	ip, r6, #84	; 0x54                          <== NOT EXECUTED
         /* The new data are set */                                   
         ptimer->timer_data = normalize;                              
         /* Indicates that the timer is created and stopped */        
         ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;               
30009d30:	e3a0e004 	mov	lr, #4                                        <== NOT EXECUTED
         (void) _Watchdog_Remove( &ptimer->Timer );                   
         /* The old data of the timer are returned */                 
         if ( ovalue )                                                
           *ovalue = ptimer->timer_data;                              
         /* The new data are set */                                   
         ptimer->timer_data = normalize;                              
30009d34:	e894000f 	ldm	r4, {r0, r1, r2, r3}                          <== NOT EXECUTED
         /* Indicates that the timer is created and stopped */        
         ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;               
30009d38:	e5c6e03c 	strb	lr, [r6, #60]	; 0x3c                         <== NOT EXECUTED
         (void) _Watchdog_Remove( &ptimer->Timer );                   
         /* The old data of the timer are returned */                 
         if ( ovalue )                                                
           *ovalue = ptimer->timer_data;                              
         /* The new data are set */                                   
         ptimer->timer_data = normalize;                              
30009d3c:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          <== NOT EXECUTED
         /* Indicates that the timer is created and stopped */        
         ptimer->state = POSIX_TIMER_STATE_CREATE_STOP;               
         /* Returns with success */                                   
        _Thread_Enable_dispatch();                                    
30009d40:	eb000b6f 	bl	3000cb04 <_Thread_Enable_dispatch>             <== NOT EXECUTED
        return 0;                                                     
30009d44:	e3a00000 	mov	r0, #0                                        <== NOT EXECUTED
30009d48:	eaffffd5 	b	30009ca4 <timer_settime+0xfc>                   <== NOT EXECUTED
         ptimer->Object.id,                                           
         _POSIX_Timer_TSR,                                            
         ptimer                                                       
       );                                                             
       if ( !activated ) {                                            
         _Thread_Enable_dispatch();                                   
30009d4c:	eb000b6c 	bl	3000cb04 <_Thread_Enable_dispatch>             <== NOT EXECUTED
         return 0;                                                    
30009d50:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
30009d54:	eaffffd2 	b	30009ca4 <timer_settime+0xfc>                   <== NOT EXECUTED
                                                                      

300099d8 <ualarm>: useconds_t ualarm( useconds_t useconds, useconds_t interval ) {
300099d8:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
300099dc:	e59f40ec 	ldr	r4, [pc, #236]	; 30009ad0 <ualarm+0xf8>       <== NOT EXECUTED
                                                                      
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
300099e0:	e24dd008 	sub	sp, sp, #8                                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
300099e4:	e594601c 	ldr	r6, [r4, #28]                                 <== NOT EXECUTED
                                                                      
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
300099e8:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Initialize the timer used to implement alarm().                 
   */                                                                 
                                                                      
  if ( !the_timer->routine ) {                                        
300099ec:	e3560000 	cmp	r6, #0                                        <== NOT EXECUTED
300099f0:	0a00001e 	beq	30009a70 <ualarm+0x98>                        <== NOT EXECUTED
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
300099f4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
300099f8:	eb000f70 	bl	3000d7c0 <_Watchdog_Remove>                    <== NOT EXECUTED
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
300099fc:	e2400002 	sub	r0, r0, #2                                    <== NOT EXECUTED
30009a00:	e3500001 	cmp	r0, #1                                        <== NOT EXECUTED
useconds_t ualarm(                                                    
  useconds_t useconds,                                                
  useconds_t interval                                                 
)                                                                     
{                                                                     
  useconds_t        remaining = 0;                                    
30009a04:	83a06000 	movhi	r6, #0                                      <== NOT EXECUTED
    _Watchdog_Initialize( the_timer, _POSIX_signals_Ualarm_TSR, 0, NULL );
  } else {                                                            
    Watchdog_States state;                                            
                                                                      
    state = _Watchdog_Remove( the_timer );                            
    if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) {
30009a08:	9a00001e 	bls	30009a88 <ualarm+0xb0>                        <== NOT EXECUTED
  /*                                                                  
   *  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 ) {                                                   
30009a0c:	e3550000 	cmp	r5, #0                                        <== NOT EXECUTED
30009a10:	0a000013 	beq	30009a64 <ualarm+0x8c>                        <== NOT EXECUTED
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
30009a14:	e59f30b8 	ldr	r3, [pc, #184]	; 30009ad4 <ualarm+0xfc>       <== NOT EXECUTED
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
30009a18:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
30009a1c:	e0832395 	umull	r2, r3, r5, r3                              <== NOT EXECUTED
30009a20:	e1a03923 	lsr	r3, r3, #18                                   <== NOT EXECUTED
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
30009a24:	e0632283 	rsb	r2, r3, r3, lsl #5                            <== NOT EXECUTED
30009a28:	e0622302 	rsb	r2, r2, r2, lsl #6                            <== NOT EXECUTED
30009a2c:	e0832182 	add	r2, r3, r2, lsl #3                            <== NOT EXECUTED
30009a30:	e0455302 	sub	r5, r5, r2, lsl #6                            <== NOT EXECUTED
30009a34:	e0652285 	rsb	r2, r5, r5, lsl #5                            <== NOT EXECUTED
30009a38:	e0855102 	add	r5, r5, r2, lsl #2                            <== NOT EXECUTED
30009a3c:	e1a05185 	lsl	r5, r5, #3                                    <== NOT EXECUTED
   *  less than a single clock tick, then fudge it to a clock tick.   
   */                                                                 
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
30009a40:	e88d0028 	stm	sp, {r3, r5}                                  <== NOT EXECUTED
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
30009a44:	eb000dfa 	bl	3000d234 <_Timespec_To_ticks>                  <== NOT EXECUTED
    if ( ticks == 0 )                                                 
      ticks = 1;                                                      
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
30009a48:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
30009a4c:	eb000df8 	bl	3000d234 <_Timespec_To_ticks>                  <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
30009a50:	e59f1078 	ldr	r1, [pc, #120]	; 30009ad0 <ualarm+0xf8>       <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
30009a54:	e584000c 	str	r0, [r4, #12]                                 <== NOT EXECUTED
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
30009a58:	e59f0078 	ldr	r0, [pc, #120]	; 30009ad8 <ualarm+0x100>      <== NOT EXECUTED
  if ( useconds ) {                                                   
    Watchdog_Interval ticks;                                          
                                                                      
    tp.tv_sec = useconds / TOD_MICROSECONDS_PER_SECOND;               
    tp.tv_nsec = (useconds % TOD_MICROSECONDS_PER_SECOND) * 1000;     
    ticks = _Timespec_To_ticks( &tp );                                
30009a5c:	e1a0700d 	mov	r7, sp                                        <== NOT EXECUTED
30009a60:	eb000ee7 	bl	3000d604 <_Watchdog_Insert>                    <== NOT EXECUTED
                                                                      
    _Watchdog_Insert_ticks( the_timer, _Timespec_To_ticks( &tp ) );   
  }                                                                   
                                                                      
  return remaining;                                                   
}                                                                     
30009a64:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
30009a68:	e28dd008 	add	sp, sp, #8                                    <== NOT EXECUTED
30009a6c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
30009a70:	e59f3064 	ldr	r3, [pc, #100]	; 30009adc <ualarm+0x104>      <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
30009a74:	e5846008 	str	r6, [r4, #8]                                  <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
30009a78:	e584301c 	str	r3, [r4, #28]                                 <== NOT EXECUTED
  the_watchdog->id        = id;                                       
30009a7c:	e5846020 	str	r6, [r4, #32]                                 <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
30009a80:	e5846024 	str	r6, [r4, #36]	; 0x24                          <== NOT EXECUTED
30009a84:	eaffffe0 	b	30009a0c <ualarm+0x34>                          <== NOT EXECUTED
       *  boot.  Since alarm() is dealing in seconds, we must account for
       *  this.                                                       
       */                                                             
                                                                      
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
30009a88:	e594200c 	ldr	r2, [r4, #12]                                 <== NOT EXECUTED
30009a8c:	e5940014 	ldr	r0, [r4, #20]                                 <== NOT EXECUTED
30009a90:	e5943018 	ldr	r3, [r4, #24]                                 <== NOT EXECUTED
30009a94:	e0800002 	add	r0, r0, r2                                    <== NOT EXECUTED
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
30009a98:	e0630000 	rsb	r0, r3, r0                                    <== NOT EXECUTED
30009a9c:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
30009aa0:	eb000dbc 	bl	3000d198 <_Timespec_From_ticks>                <== NOT EXECUTED
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
      remaining += tp.tv_nsec / 1000;                                 
30009aa4:	e59d2004 	ldr	r2, [sp, #4]                                  <== NOT EXECUTED
30009aa8:	e59f0030 	ldr	r0, [pc, #48]	; 30009ae0 <ualarm+0x108>       <== NOT EXECUTED
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
30009aac:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
      remaining += tp.tv_nsec / 1000;                                 
30009ab0:	e0c01092 	smull	r1, r0, r2, r0                              <== NOT EXECUTED
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
30009ab4:	e0631283 	rsb	r1, r3, r3, lsl #5                            <== NOT EXECUTED
30009ab8:	e0611301 	rsb	r1, r1, r1, lsl #6                            <== NOT EXECUTED
      remaining += tp.tv_nsec / 1000;                                 
30009abc:	e1a02fc2 	asr	r2, r2, #31                                   <== NOT EXECUTED
      ticks = the_timer->initial;                                     
      ticks -= (the_timer->stop_time - the_timer->start_time);        
      /* remaining is now in ticks */                                 
                                                                      
      _Timespec_From_ticks( ticks, &tp );                             
      remaining  = tp.tv_sec * TOD_MICROSECONDS_PER_SECOND;           
30009ac0:	e0833181 	add	r3, r3, r1, lsl #3                            <== NOT EXECUTED
      remaining += tp.tv_nsec / 1000;                                 
30009ac4:	e0622340 	rsb	r2, r2, r0, asr #6                            <== NOT EXECUTED
30009ac8:	e0826303 	add	r6, r2, r3, lsl #6                            <== NOT EXECUTED
30009acc:	eaffffce 	b	30009a0c <ualarm+0x34>                          <== NOT EXECUTED
                                                                      

30009ad4 <vfork>: #include <unistd.h> pid_t vfork(void) { return -1; }
30009ad4:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009ad8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

30009adc <wait>: #include <rtems/seterr.h> int wait( int *stat_loc ) {
30009adc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009ae0:	eb0023bd 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009ae4:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009ae8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009aec:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009af0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

30009af4 <waitpid>: int waitpid( pid_t pid, int *stat_loc, int options ) {
30009af4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  rtems_set_errno_and_return_minus_one( ENOSYS );                     
30009af8:	eb0023b7 	bl	300129dc <__errno>                             <== NOT EXECUTED
30009afc:	e3a03058 	mov	r3, #88	; 0x58                                <== NOT EXECUTED
30009b00:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
}                                                                     
30009b04:	e3e00000 	mvn	r0, #0                                        <== NOT EXECUTED
30009b08:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED