RTEMS 4.9.6
Annotated Report
Sun Jul 24 17:38:19 2011

000078fc <IMFS_Set_handlers>: { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) {
    78fc:	e5903000 	ldr	r3, [r0]                                      
    7900:	e593304c 	ldr	r3, [r3, #76]                                 
)                                                                     
{                                                                     
  IMFS_jnode_t    *node = loc->node_access;                           
  IMFS_fs_info_t  *fs_info;                                           
                                                                      
  fs_info = loc->mt_entry->fs_info;                                   
    7904:	e590200c 	ldr	r2, [r0, #12]                                 
  switch( node->type ) {                                              
    7908:	e2433001 	sub	r3, r3, #1	; 0x1                              
)                                                                     
{                                                                     
  IMFS_jnode_t    *node = loc->node_access;                           
  IMFS_fs_info_t  *fs_info;                                           
                                                                      
  fs_info = loc->mt_entry->fs_info;                                   
    790c:	e592202c 	ldr	r2, [r2, #44]                                 
  switch( node->type ) {                                              
    7910:	e3530005 	cmp	r3, #5	; 0x5                                  
    7914:	979ff103 	ldrls	pc, [pc, r3, lsl #2]                        
    7918:	ea00000d 	b	7954 <IMFS_Set_handlers+0x58>                   <== NOT EXECUTED
    791c:	00007934 	.word	0x00007934                                  <== NOT EXECUTED
    7920:	0000793c 	.word	0x0000793c                                  <== NOT EXECUTED
    7924:	00007944 	.word	0x00007944                                  <== NOT EXECUTED
    7928:	00007944 	.word	0x00007944                                  <== NOT EXECUTED
    792c:	0000794c 	.word	0x0000794c                                  <== NOT EXECUTED
    7930:	0000794c 	.word	0x0000794c                                  <== NOT EXECUTED
    case IMFS_DIRECTORY:                                              
      loc->handlers = fs_info->directory_handlers;                    
    7934:	e5923008 	ldr	r3, [r2, #8]                                  
    7938:	ea000004 	b	7950 <IMFS_Set_handlers+0x54>                   
      break;                                                          
    case IMFS_DEVICE:                                                 
      loc->handlers = &IMFS_device_handlers;                          
    793c:	e59f3018 	ldr	r3, [pc, #24]	; 795c <IMFS_Set_handlers+0x60> 
    7940:	ea000002 	b	7950 <IMFS_Set_handlers+0x54>                   
      break;                                                          
    case IMFS_SYM_LINK:                                               
    case IMFS_HARD_LINK:                                              
      loc->handlers = &IMFS_link_handlers;                            
    7944:	e59f3014 	ldr	r3, [pc, #20]	; 7960 <IMFS_Set_handlers+0x64> <== NOT EXECUTED
    7948:	ea000000 	b	7950 <IMFS_Set_handlers+0x54>                   <== NOT EXECUTED
      break;                                                          
    case IMFS_LINEAR_FILE:                                            
      loc->handlers = fs_info->memfile_handlers;                      
      break;                                                          
    case IMFS_MEMORY_FILE:                                            
      loc->handlers = fs_info->memfile_handlers;                      
    794c:	e5923004 	ldr	r3, [r2, #4]                                  <== NOT EXECUTED
    7950:	e5803004 	str	r3, [r0, #4]                                  
      break;                                                          
  }                                                                   
                                                                      
  return 0;                                                           
}                                                                     
    7954:	e3a00000 	mov	r0, #0	; 0x0                                  
    7958:	e12fff1e 	bx	lr                                             
                                                                      

0000a06c <IMFS_create_node>: IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) {
    a06c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  IMFS_jnode_t        *node;                                          
  struct timeval       tv;                                            
  IMFS_jnode_t        *parent = NULL;                                 
  IMFS_fs_info_t      *fs_info;                                       
                                                                      
  if ( parent_loc != NULL )                                           
    a070:	e2508000 	subs	r8, r0, #0	; 0x0                             
  IMFS_jnode_types_t                type,                             
  const char                       *name,                             
  mode_t                            mode,                             
  const IMFS_types_union           *info                              
)                                                                     
{                                                                     
    a074:	e24dd008 	sub	sp, sp, #8	; 0x8                              
    a078:	e1a0a001 	mov	sl, r1                                        
                                                                      
  /*                                                                  
   *  Allocate an IMFS jnode                                          
   */                                                                 
                                                                      
  node = calloc( 1, sizeof( IMFS_jnode_t ) );                         
    a07c:	e3a00001 	mov	r0, #1	; 0x1                                  
    a080:	e3a01060 	mov	r1, #96	; 0x60                                
  IMFS_jnode_t        *node;                                          
  struct timeval       tv;                                            
  IMFS_jnode_t        *parent = NULL;                                 
  IMFS_fs_info_t      *fs_info;                                       
                                                                      
  if ( parent_loc != NULL )                                           
    a084:	01a06008 	moveq	r6, r8                                      
    parent = parent_loc->node_access;                                 
    a088:	15986000 	ldrne	r6, [r8]                                    
  IMFS_jnode_types_t                type,                             
  const char                       *name,                             
  mode_t                            mode,                             
  const IMFS_types_union           *info                              
)                                                                     
{                                                                     
    a08c:	e1a05002 	mov	r5, r2                                        
    a090:	e1a09003 	mov	r9, r3                                        
    a094:	e59d7028 	ldr	r7, [sp, #40]                                 
                                                                      
  /*                                                                  
   *  Allocate an IMFS jnode                                          
   */                                                                 
                                                                      
  node = calloc( 1, sizeof( IMFS_jnode_t ) );                         
    a098:	ebfff94f 	bl	85dc <calloc>                                  
  if ( !node )                                                        
    a09c:	e2504000 	subs	r4, r0, #0	; 0x0                             
    a0a0:	0a000047 	beq	a1c4 <IMFS_create_node+0x158>                 
                                                                      
  /*                                                                  
   *  Fill in the basic information                                   
   */                                                                 
                                                                      
  node->st_nlink = 1;                                                 
    a0a4:	e3a03001 	mov	r3, #1	; 0x1                                  
  node->type     = type;                                              
  strncpy( node->name, name, IMFS_NAME_MAX );                         
    a0a8:	e3a02020 	mov	r2, #32	; 0x20                                
    a0ac:	e1a01005 	mov	r1, r5                                        
                                                                      
  /*                                                                  
   *  Fill in the basic information                                   
   */                                                                 
                                                                      
  node->st_nlink = 1;                                                 
    a0b0:	e1c433b4 	strh	r3, [r4, #52]                                
  node->type     = type;                                              
    a0b4:	e584a04c 	str	sl, [r4, #76]                                 
  strncpy( node->name, name, IMFS_NAME_MAX );                         
    a0b8:	e284000c 	add	r0, r4, #12	; 0xc                             
    a0bc:	eb000731 	bl	bd88 <strncpy>                                 
                                                                      
  /*                                                                  
   *  Fill in the mode and permission information for the jnode structure.
   */                                                                 
                                                                      
  node->st_mode = mode & ~rtems_filesystem_umask;                     
    a0c0:	e59f3108 	ldr	r3, [pc, #264]	; a1d0 <IMFS_create_node+0x164>
    a0c4:	e5933000 	ldr	r3, [r3]                                      
    a0c8:	e5933024 	ldr	r3, [r3, #36]                                 
    a0cc:	e1c93003 	bic	r3, r9, r3                                    
    a0d0:	e5843030 	str	r3, [r4, #48]                                 
                                                                      
#if defined(RTEMS_POSIX_API)                                          
  node->st_uid = geteuid();                                           
  node->st_gid = getegid();                                           
#else                                                                 
  node->st_uid = 0;                                                   
    a0d4:	e3a03000 	mov	r3, #0	; 0x0                                  
    a0d8:	e1c433bc 	strh	r3, [r4, #60]                                
  node->st_gid = 0;                                                   
    a0dc:	e1c433be 	strh	r3, [r4, #62]                                
                                                                      
  /*                                                                  
   *  Now set all the times.                                          
   */                                                                 
                                                                      
  gettimeofday( &tv, 0 );                                             
    a0e0:	e1a0000d 	mov	r0, sp                                        
    a0e4:	e3a01000 	mov	r1, #0	; 0x0                                  
    a0e8:	ebfff9d6 	bl	8848 <gettimeofday>                            
                                                                      
  node->stat_atime  = (time_t) tv.tv_sec;                             
    a0ec:	e59d3000 	ldr	r3, [sp]                                      
                                                                      
  /*                                                                  
   *  Set the type specific information                               
   */                                                                 
                                                                      
  switch (type) {                                                     
    a0f0:	e24a2001 	sub	r2, sl, #1	; 0x1                              
                                                                      
  gettimeofday( &tv, 0 );                                             
                                                                      
  node->stat_atime  = (time_t) tv.tv_sec;                             
  node->stat_mtime  = (time_t) tv.tv_sec;                             
  node->stat_ctime  = (time_t) tv.tv_sec;                             
    a0f4:	e5843048 	str	r3, [r4, #72]                                 
   *  Now set all the times.                                          
   */                                                                 
                                                                      
  gettimeofday( &tv, 0 );                                             
                                                                      
  node->stat_atime  = (time_t) tv.tv_sec;                             
    a0f8:	e5843040 	str	r3, [r4, #64]                                 
  node->stat_mtime  = (time_t) tv.tv_sec;                             
    a0fc:	e5843044 	str	r3, [r4, #68]                                 
                                                                      
  /*                                                                  
   *  Set the type specific information                               
   */                                                                 
                                                                      
  switch (type) {                                                     
    a100:	e3520005 	cmp	r2, #5	; 0x5                                  
    a104:	979ff102 	ldrls	pc, [pc, r2, lsl #2]                        
    a108:	ea00001c 	b	a180 <IMFS_create_node+0x114>                   <== NOT EXECUTED
    a10c:	0000a124 	.word	0x0000a124                                  <== NOT EXECUTED
    a110:	0000a14c 	.word	0x0000a14c                                  <== NOT EXECUTED
    a114:	0000a140 	.word	0x0000a140                                  <== NOT EXECUTED
    a118:	0000a140 	.word	0x0000a140                                  <== NOT EXECUTED
    a11c:	0000a168 	.word	0x0000a168                                  <== NOT EXECUTED
    a120:	0000a15c 	.word	0x0000a15c                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
    a124:	e2843054 	add	r3, r4, #84	; 0x54                            
  the_chain->permanent_null = NULL;                                   
  the_chain->last           = _Chain_Head(the_chain);                 
    a128:	e2842050 	add	r2, r4, #80	; 0x50                            
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
    a12c:	e5843050 	str	r3, [r4, #80]                                 
  the_chain->permanent_null = NULL;                                   
    a130:	e3a03000 	mov	r3, #0	; 0x0                                  
    a134:	e5843054 	str	r3, [r4, #84]                                 
  the_chain->last           = _Chain_Head(the_chain);                 
    a138:	e5842058 	str	r2, [r4, #88]                                 
    a13c:	ea000014 	b	a194 <IMFS_create_node+0x128>                   
    case IMFS_HARD_LINK:                                              
      node->info.hard_link.link_node = info->hard_link.link_node;     
      break;                                                          
                                                                      
    case IMFS_SYM_LINK:                                               
      node->info.sym_link.name = info->sym_link.name;                 
    a140:	e5973000 	ldr	r3, [r7]                                      <== NOT EXECUTED
    a144:	e5843050 	str	r3, [r4, #80]                                 <== NOT EXECUTED
    a148:	ea000011 	b	a194 <IMFS_create_node+0x128>                   <== NOT EXECUTED
      break;                                                          
                                                                      
    case IMFS_DEVICE:                                                 
      node->info.device.major = info->device.major;                   
      node->info.device.minor = info->device.minor;                   
    a14c:	e897000c 	ldm	r7, {r2, r3}                                  
    a150:	e5843054 	str	r3, [r4, #84]                                 
    case IMFS_SYM_LINK:                                               
      node->info.sym_link.name = info->sym_link.name;                 
      break;                                                          
                                                                      
    case IMFS_DEVICE:                                                 
      node->info.device.major = info->device.major;                   
    a154:	e5842050 	str	r2, [r4, #80]                                 
    a158:	ea00000d 	b	a194 <IMFS_create_node+0x128>                   
      node->info.device.minor = info->device.minor;                   
      break;                                                          
                                                                      
    case IMFS_LINEAR_FILE:                                            
      node->info.linearfile.size      = 0;                            
    a15c:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
      node->info.linearfile.direct    = 0;                            
    a160:	e5843054 	str	r3, [r4, #84]                                 <== NOT EXECUTED
      node->info.device.major = info->device.major;                   
      node->info.device.minor = info->device.minor;                   
      break;                                                          
                                                                      
    case IMFS_LINEAR_FILE:                                            
      node->info.linearfile.size      = 0;                            
    a164:	e5843050 	str	r3, [r4, #80]                                 <== NOT EXECUTED
      node->info.linearfile.direct    = 0;                            
                                                                      
    case IMFS_MEMORY_FILE:                                            
      node->info.file.size            = 0;                            
    a168:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
      node->info.file.indirect        = 0;                            
      node->info.file.doubly_indirect = 0;                            
      node->info.file.triply_indirect = 0;                            
    a16c:	e584305c 	str	r3, [r4, #92]                                 <== NOT EXECUTED
    case IMFS_LINEAR_FILE:                                            
      node->info.linearfile.size      = 0;                            
      node->info.linearfile.direct    = 0;                            
                                                                      
    case IMFS_MEMORY_FILE:                                            
      node->info.file.size            = 0;                            
    a170:	e5843050 	str	r3, [r4, #80]                                 <== NOT EXECUTED
      node->info.file.indirect        = 0;                            
    a174:	e5843054 	str	r3, [r4, #84]                                 <== NOT EXECUTED
      node->info.file.doubly_indirect = 0;                            
    a178:	e5843058 	str	r3, [r4, #88]                                 <== NOT EXECUTED
    a17c:	ea000004 	b	a194 <IMFS_create_node+0x128>                   <== NOT EXECUTED
      node->info.file.triply_indirect = 0;                            
      break;                                                          
                                                                      
    default:                                                          
      assert(0);                                                      
    a180:	e59f004c 	ldr	r0, [pc, #76]	; a1d4 <IMFS_create_node+0x168> <== NOT EXECUTED
    a184:	e3a01074 	mov	r1, #116	; 0x74                               <== NOT EXECUTED
    a188:	e59f2048 	ldr	r2, [pc, #72]	; a1d8 <IMFS_create_node+0x16c> <== NOT EXECUTED
    a18c:	e59f3048 	ldr	r3, [pc, #72]	; a1dc <IMFS_create_node+0x170> <== NOT EXECUTED
    a190:	ebfff8b8 	bl	8478 <__assert_func>                           <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If this node has a parent, then put it in that directory list.  
   */                                                                 
                                                                      
  if ( parent ) {                                                     
    a194:	e3560000 	cmp	r6, #0	; 0x0                                  
    a198:	0a000009 	beq	a1c4 <IMFS_create_node+0x158>                 
RTEMS_INLINE_ROUTINE void rtems_chain_append(                         
  rtems_chain_control *the_chain,                                     
  rtems_chain_node    *the_node                                       
)                                                                     
{                                                                     
  _Chain_Append( the_chain, the_node );                               
    a19c:	e2860050 	add	r0, r6, #80	; 0x50                            
    a1a0:	e1a01004 	mov	r1, r4                                        
    a1a4:	ebffeae6 	bl	4d44 <_Chain_Append>                           
    rtems_chain_append( &parent->info.directory.Entries, &node->Node );
    node->Parent = parent;                                            
                                                                      
    fs_info = parent_loc->mt_entry->fs_info;                          
    a1a8:	e598300c 	ldr	r3, [r8, #12]                                 
    a1ac:	e593202c 	ldr	r2, [r3, #44]                                 
    node->st_ino = ++fs_info->ino_count;                              
    a1b0:	e5923000 	ldr	r3, [r2]                                      
    a1b4:	e2833001 	add	r3, r3, #1	; 0x1                              
    a1b8:	e5823000 	str	r3, [r2]                                      
   *  If this node has a parent, then put it in that directory list.  
   */                                                                 
                                                                      
  if ( parent ) {                                                     
    rtems_chain_append( &parent->info.directory.Entries, &node->Node );
    node->Parent = parent;                                            
    a1bc:	e5846008 	str	r6, [r4, #8]                                  
                                                                      
    fs_info = parent_loc->mt_entry->fs_info;                          
    node->st_ino = ++fs_info->ino_count;                              
    a1c0:	e5843038 	str	r3, [r4, #56]                                 
  }                                                                   
                                                                      
                                                                      
  return node;                                                        
}                                                                     
    a1c4:	e1a00004 	mov	r0, r4                                        
    a1c8:	e28dd008 	add	sp, sp, #8	; 0x8                              
    a1cc:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      

00007acc <IMFS_eval_path>: int IMFS_eval_path( const char *pathname, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) {
    7acc:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  char                                token[ IMFS_NAME_MAX + 1 ];     
  rtems_filesystem_location_info_t    newloc;                         
  IMFS_jnode_t                       *node;                           
  int                                 result;                         
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) ) {                       
    7ad0:	e3d1c007 	bics	ip, r1, #7	; 0x7                             
int IMFS_eval_path(                                                   
  const char                        *pathname,     /* IN     */       
  int                                flags,        /* IN     */       
  rtems_filesystem_location_info_t  *pathloc       /* IN/OUT */       
)                                                                     
{                                                                     
    7ad4:	e24dd038 	sub	sp, sp, #56	; 0x38                            
    7ad8:	e1a0a001 	mov	sl, r1                                        
    7adc:	e1a09000 	mov	r9, r0                                        
    7ae0:	e1a05002 	mov	r5, r2                                        
  rtems_filesystem_location_info_t    newloc;                         
  IMFS_jnode_t                       *node;                           
  int                                 result;                         
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) ) {                       
    assert( 0 );                                                      
    7ae4:	159f0210 	ldrne	r0, [pc, #528]	; 7cfc <IMFS_eval_path+0x230>
    7ae8:	159f1210 	ldrne	r1, [pc, #528]	; 7d00 <IMFS_eval_path+0x234>
    7aec:	159f2210 	ldrne	r2, [pc, #528]	; 7d04 <IMFS_eval_path+0x238>
    7af0:	159f3210 	ldrne	r3, [pc, #528]	; 7d08 <IMFS_eval_path+0x23c>
    7af4:	1b00025f 	blne	8478 <__assert_func>                         
  /*                                                                  
   *  This was filled in by the caller and is valid in the            
   *  mount table.                                                    
   */                                                                 
                                                                      
  node = pathloc->node_access;                                        
    7af8:	e1a0800c 	mov	r8, ip                                        
    7afc:	e5924000 	ldr	r4, [r2]                                      
    7b00:	e3a06001 	mov	r6, #1	; 0x1                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], token, &len );               
    7b04:	e28db003 	add	fp, sp, #3	; 0x3                              
    7b08:	ea000054 	b	7c60 <IMFS_eval_path+0x194>                     
    7b0c:	e0890008 	add	r0, r9, r8                                    
    7b10:	e1a0100b 	mov	r1, fp                                        
    7b14:	e28d2034 	add	r2, sp, #52	; 0x34                            
    7b18:	eb00015a 	bl	8088 <IMFS_get_token>                          
    i +=  len;                                                        
                                                                      
    if ( !pathloc->node_access )                                      
    7b1c:	e5953000 	ldr	r3, [r5]                                      
    7b20:	e3530000 	cmp	r3, #0	; 0x0                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], token, &len );               
    7b24:	e1a06000 	mov	r6, r0                                        
    i +=  len;                                                        
    7b28:	e59d7034 	ldr	r7, [sp, #52]                                 
                                                                      
    if ( !pathloc->node_access )                                      
    7b2c:	0a000043 	beq	7c40 <IMFS_eval_path+0x174>                   
      rtems_set_errno_and_return_minus_one( ENOENT );                 
                                                                      
    /*                                                                
     * I cannot move out of this directory without execute permission.
     */                                                               
    if ( type != IMFS_NO_MORE_PATH )                                  
    7b30:	e3500000 	cmp	r0, #0	; 0x0                                  
    7b34:	0a000006 	beq	7b54 <IMFS_eval_path+0x88>                    
      if ( node->type == IMFS_DIRECTORY )                             
    7b38:	e594104c 	ldr	r1, [r4, #76]                                 
    7b3c:	e3510001 	cmp	r1, #1	; 0x1                                  
    7b40:	1a000003 	bne	7b54 <IMFS_eval_path+0x88>                    
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
    7b44:	e1a00005 	mov	r0, r5                                        
    7b48:	ebffff85 	bl	7964 <IMFS_evaluate_permission>                
    7b4c:	e3500000 	cmp	r0, #0	; 0x0                                  
    7b50:	0a000062 	beq	7ce0 <IMFS_eval_path+0x214>                   
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
                                                                      
    switch( type ) {                                                  
    7b54:	e3560003 	cmp	r6, #3	; 0x3                                  
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
                                                                      
    type = IMFS_get_token( &pathname[i], token, &len );               
    i +=  len;                                                        
    7b58:	e0888007 	add	r8, r8, r7                                    
    if ( type != IMFS_NO_MORE_PATH )                                  
      if ( node->type == IMFS_DIRECTORY )                             
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
    7b5c:	e5954000 	ldr	r4, [r5]                                      
                                                                      
    switch( type ) {                                                  
    7b60:	0a000013 	beq	7bb4 <IMFS_eval_path+0xe8>                    
    7b64:	e3560004 	cmp	r6, #4	; 0x4                                  
    7b68:	0a000039 	beq	7c54 <IMFS_eval_path+0x188>                   
    7b6c:	e3560002 	cmp	r6, #2	; 0x2                                  
    7b70:	1a00003a 	bne	7c60 <IMFS_eval_path+0x194>                   
      case IMFS_UP_DIR:                                               
       /*                                                             
        *  Am I at the root of all filesystems? (chroot'ed?)          
	*/                                                                   
                                                                      
       if ( pathloc->node_access == rtems_filesystem_root.node_access )
    7b74:	e59f2190 	ldr	r2, [pc, #400]	; 7d0c <IMFS_eval_path+0x240>  <== NOT EXECUTED
    7b78:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    7b7c:	e5933014 	ldr	r3, [r3, #20]                                 <== NOT EXECUTED
    7b80:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
    7b84:	0a000035 	beq	7c60 <IMFS_eval_path+0x194>                   <== NOT EXECUTED
                                                                      
	/*                                                                   
	 *  Am I at the root of this mounted filesystem?                     
	 */                                                                  
                                                                      
        if (pathloc->node_access ==                                   
    7b88:	e595200c 	ldr	r2, [r5, #12]                                 <== NOT EXECUTED
    7b8c:	e5923018 	ldr	r3, [r2, #24]                                 <== NOT EXECUTED
    7b90:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
	   */                                                                
                                                                      
          if ( pathloc->node_access == rtems_filesystem_root.node_access ) {
            break;       /* Throw out the .. in this case */          
	  } else {                                                           
            newloc = pathloc->mt_entry->mt_point_node;                
    7b94:	02823008 	addeq	r3, r2, #8	; 0x8                            <== NOT EXECUTED
    7b98:	0a00003a 	beq	7c88 <IMFS_eval_path+0x1bc>                   <== NOT EXECUTED
            *pathloc = newloc;                                        
            return (*pathloc->ops->evalpath_h)(&(pathname[i-len]),flags,pathloc);
	  }                                                                  
	} else {                                                             
                                                                      
          if ( !node->Parent )                                        
    7b9c:	e5944008 	ldr	r4, [r4, #8]                                  <== NOT EXECUTED
    7ba0:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    7ba4:	1a000028 	bne	7c4c <IMFS_eval_path+0x180>                   <== NOT EXECUTED
            rtems_set_errno_and_return_minus_one( ENOENT );           
    7ba8:	eb000b19 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7bac:	e5806000 	str	r6, [r0]                                      <== NOT EXECUTED
    7bb0:	ea00004d 	b	7cec <IMFS_eval_path+0x220>                     <== NOT EXECUTED
      case IMFS_NAME:                                                 
	/*                                                                   
	 *  If we are at a link follow it.                                   
	 */                                                                  
                                                                      
	if ( node->type == IMFS_HARD_LINK ) {                                
    7bb4:	e594304c 	ldr	r3, [r4, #76]                                 
    7bb8:	e3530003 	cmp	r3, #3	; 0x3                                  
    7bbc:	1a000006 	bne	7bdc <IMFS_eval_path+0x110>                   
                                                                      
          IMFS_evaluate_hard_link( pathloc, 0 );                      
    7bc0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    7bc4:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    7bc8:	ebffff75 	bl	79a4 <IMFS_evaluate_hard_link>                 <== NOT EXECUTED
                                                                      
          node = pathloc->node_access;                                
    7bcc:	e5954000 	ldr	r4, [r5]                                      <== NOT EXECUTED
          if ( !node )                                                
    7bd0:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    7bd4:	1a00000a 	bne	7c04 <IMFS_eval_path+0x138>                   <== NOT EXECUTED
    7bd8:	ea00000c 	b	7c10 <IMFS_eval_path+0x144>                     <== NOT EXECUTED
            rtems_set_errno_and_return_minus_one( ENOTDIR );          
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
    7bdc:	e3530004 	cmp	r3, #4	; 0x4                                  
    7be0:	1a000007 	bne	7c04 <IMFS_eval_path+0x138>                   
                                                                      
          result = IMFS_evaluate_sym_link( pathloc, 0 );              
    7be4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    7be8:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    7bec:	ebffff83 	bl	7a00 <IMFS_evaluate_sym_link>                  <== NOT EXECUTED
                                                                      
          node = pathloc->node_access;                                
          if ( result == -1 )                                         
    7bf0:	e3700001 	cmn	r0, #1	; 0x1                                  <== NOT EXECUTED
          if ( !node )                                                
            rtems_set_errno_and_return_minus_one( ENOTDIR );          
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
                                                                      
          result = IMFS_evaluate_sym_link( pathloc, 0 );              
    7bf4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
          node = pathloc->node_access;                                
    7bf8:	e5950000 	ldr	r0, [r5]                                      <== NOT EXECUTED
          if ( result == -1 )                                         
    7bfc:	0a00003b 	beq	7cf0 <IMFS_eval_path+0x224>                   <== NOT EXECUTED
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
                                                                      
          result = IMFS_evaluate_sym_link( pathloc, 0 );              
                                                                      
          node = pathloc->node_access;                                
    7c00:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
       /*                                                             
        *  Only a directory can be decended into.                     
        */                                                            
                                                                      
       if ( node->type != IMFS_DIRECTORY )                            
    7c04:	e594304c 	ldr	r3, [r4, #76]                                 
    7c08:	e3530001 	cmp	r3, #1	; 0x1                                  
    7c0c:	0a000002 	beq	7c1c <IMFS_eval_path+0x150>                   
          rtems_set_errno_and_return_minus_one( ENOTDIR );            
    7c10:	eb000aff 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7c14:	e3a03014 	mov	r3, #20	; 0x14                                <== NOT EXECUTED
    7c18:	ea000032 	b	7ce8 <IMFS_eval_path+0x21c>                     <== NOT EXECUTED
	/*                                                                   
	 *  If we are at a node that is a mount point. Set loc to the        
	 *  new fs root node and let them finish evaluating the path.        
	 */                                                                  
                                                                      
        if ( node->info.directory.mt_fs != NULL ) {                   
    7c1c:	e594305c 	ldr	r3, [r4, #92]                                 
    7c20:	e3530000 	cmp	r3, #0	; 0x0                                  
          newloc   = node->info.directory.mt_fs->mt_fs_root;          
    7c24:	12833018 	addne	r3, r3, #24	; 0x18                          
    7c28:	1a000016 	bne	7c88 <IMFS_eval_path+0x1bc>                   
                                                                      
	/*                                                                   
	 *  Otherwise find the token name in the present location.           
	 */                                                                  
                                                                      
        node = IMFS_find_match_in_dir( node, token );                 
    7c2c:	e1a00004 	mov	r0, r4                                        
    7c30:	e1a0100b 	mov	r1, fp                                        
    7c34:	eb0000eb 	bl	7fe8 <IMFS_find_match_in_dir>                  
        if ( !node )                                                  
    7c38:	e2504000 	subs	r4, r0, #0	; 0x0                             
    7c3c:	1a000002 	bne	7c4c <IMFS_eval_path+0x180>                   
          rtems_set_errno_and_return_minus_one( ENOENT );             
    7c40:	eb000af3 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7c44:	e3a03002 	mov	r3, #2	; 0x2                                  <== NOT EXECUTED
    7c48:	ea000026 	b	7ce8 <IMFS_eval_path+0x21c>                     <== NOT EXECUTED
                                                                      
	/*                                                                   
	 *  Set the node access to the point we have found.                  
	 */                                                                  
                                                                      
        pathloc->node_access = node;                                  
    7c4c:	e5854000 	str	r4, [r5]                                      
    7c50:	ea000002 	b	7c60 <IMFS_eval_path+0x194>                     
      case IMFS_NO_MORE_PATH:                                         
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
                                                                      
      case IMFS_INVALID_TOKEN:                                        
        rtems_set_errno_and_return_minus_one( ENAMETOOLONG );         
    7c54:	eb000aee 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7c58:	e3a0305b 	mov	r3, #91	; 0x5b                                <== NOT EXECUTED
    7c5c:	ea000021 	b	7ce8 <IMFS_eval_path+0x21c>                     <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) {
    7c60:	e3560000 	cmp	r6, #0	; 0x0                                  
    7c64:	13560004 	cmpne	r6, #4	; 0x4                                
    7c68:	1affffa7 	bne	7b0c <IMFS_eval_path+0x40>                    
   *  new fs root node and let let the mounted filesystem set the handlers.
   *                                                                  
   *  NOTE: The behavior of stat() on a mount point appears to be questionable.
   */                                                                 
                                                                      
  if ( node->type == IMFS_DIRECTORY ) {                               
    7c6c:	e594304c 	ldr	r3, [r4, #76]                                 
    7c70:	e3530001 	cmp	r3, #1	; 0x1                                  
    7c74:	1a000011 	bne	7cc0 <IMFS_eval_path+0x1f4>                   
    if ( node->info.directory.mt_fs != NULL ) {                       
    7c78:	e594005c 	ldr	r0, [r4, #92]                                 
    7c7c:	e3500000 	cmp	r0, #0	; 0x0                                  
    7c80:	0a00000e 	beq	7cc0 <IMFS_eval_path+0x1f4>                   
      newloc   = node->info.directory.mt_fs->mt_fs_root;              
    7c84:	e2803018 	add	r3, r0, #24	; 0x18                            <== NOT EXECUTED
    7c88:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    7c8c:	e28dc024 	add	ip, sp, #36	; 0x24                            <== NOT EXECUTED
    7c90:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          <== NOT EXECUTED
      *pathloc = newloc;                                              
      return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc );
    7c94:	e59dc034 	ldr	ip, [sp, #52]                                 <== NOT EXECUTED
    7c98:	e06cc008 	rsb	ip, ip, r8                                    <== NOT EXECUTED
   */                                                                 
                                                                      
  if ( node->type == IMFS_DIRECTORY ) {                               
    if ( node->info.directory.mt_fs != NULL ) {                       
      newloc   = node->info.directory.mt_fs->mt_fs_root;              
      *pathloc = newloc;                                              
    7c9c:	e885000f 	stm	r5, {r0, r1, r2, r3}                          <== NOT EXECUTED
      return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc );
    7ca0:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    7ca4:	e089000c 	add	r0, r9, ip                                    <== NOT EXECUTED
    7ca8:	e1a0100a 	mov	r1, sl                                        <== NOT EXECUTED
    7cac:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    7cb0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    7cb4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    7cb8:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    7cbc:	ea00000b 	b	7cf0 <IMFS_eval_path+0x224>                     <== NOT EXECUTED
    } else {                                                          
      result = IMFS_Set_handlers( pathloc );                          
    }                                                                 
  } else {                                                            
    result = IMFS_Set_handlers( pathloc );                            
    7cc0:	e1a00005 	mov	r0, r5                                        
    7cc4:	ebffff0c 	bl	78fc <IMFS_Set_handlers>                       
                                                                      
  /*                                                                  
   * Verify we have the correct permissions for this node.            
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( pathloc, flags ) )                  
    7cc8:	e1a0100a 	mov	r1, sl                                        
      return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc );
    } else {                                                          
      result = IMFS_Set_handlers( pathloc );                          
    }                                                                 
  } else {                                                            
    result = IMFS_Set_handlers( pathloc );                            
    7ccc:	e1a04000 	mov	r4, r0                                        
                                                                      
  /*                                                                  
   * Verify we have the correct permissions for this node.            
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( pathloc, flags ) )                  
    7cd0:	e1a00005 	mov	r0, r5                                        
    7cd4:	ebffff22 	bl	7964 <IMFS_evaluate_permission>                
    7cd8:	e3500000 	cmp	r0, #0	; 0x0                                  
    7cdc:	1a000003 	bne	7cf0 <IMFS_eval_path+0x224>                   
    rtems_set_errno_and_return_minus_one( EACCES );                   
    7ce0:	eb000acb 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7ce4:	e3a0300d 	mov	r3, #13	; 0xd                                 <== NOT EXECUTED
    7ce8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    7cec:	e3e04000 	mvn	r4, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    7cf0:	e1a00004 	mov	r0, r4                                        
    7cf4:	e28dd038 	add	sp, sp, #56	; 0x38                            
    7cf8:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

00007dc4 <IMFS_evaluate_for_make>: int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) {
    7dc4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
                                                                      
  /*                                                                  
   * This was filled in by the caller and is valid in the             
   * mount table.                                                     
   */                                                                 
  node = pathloc->node_access;                                        
    7dc8:	e5914000 	ldr	r4, [r1]                                      
int IMFS_evaluate_for_make(                                           
   const char                         *path,       /* IN     */       
   rtems_filesystem_location_info_t   *pathloc,    /* IN/OUT */       
   const char                        **name        /* OUT    */       
)                                                                     
{                                                                     
    7dcc:	e24dd038 	sub	sp, sp, #56	; 0x38                            
    7dd0:	e1a05001 	mov	r5, r1                                        
    7dd4:	e1a0a000 	mov	sl, r0                                        
    7dd8:	e1a09002 	mov	r9, r2                                        
                                                                      
  /*                                                                  
   * This was filled in by the caller and is valid in the             
   * mount table.                                                     
   */                                                                 
  node = pathloc->node_access;                                        
    7ddc:	e3a07000 	mov	r7, #0	; 0x0                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], token, &len );                   
    7de0:	e28db003 	add	fp, sp, #3	; 0x3                              
    7de4:	e08a0007 	add	r0, sl, r7                                    
    7de8:	e1a0100b 	mov	r1, fp                                        
    7dec:	e28d2034 	add	r2, sp, #52	; 0x34                            
    7df0:	eb0000a4 	bl	8088 <IMFS_get_token>                          
    i +=  len;                                                        
                                                                      
    if ( !pathloc->node_access )                                      
    7df4:	e5953000 	ldr	r3, [r5]                                      
    7df8:	e3530000 	cmp	r3, #0	; 0x0                                  
   *  Evaluate all tokens until we are done or an error occurs.       
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], token, &len );                   
    7dfc:	e1a06000 	mov	r6, r0                                        
    i +=  len;                                                        
    7e00:	e59d8034 	ldr	r8, [sp, #52]                                 
                                                                      
    if ( !pathloc->node_access )                                      
    7e04:	0a000059 	beq	7f70 <IMFS_evaluate_for_make+0x1ac>           
                                                                      
    /*                                                                
     * I cannot move out of this directory without execute permission.
     */                                                               
                                                                      
    if ( type != IMFS_NO_MORE_PATH )                                  
    7e08:	e3500000 	cmp	r0, #0	; 0x0                                  
    7e0c:	0a000006 	beq	7e2c <IMFS_evaluate_for_make+0x68>            
      if ( node->type == IMFS_DIRECTORY )                             
    7e10:	e594104c 	ldr	r1, [r4, #76]                                 
    7e14:	e3510001 	cmp	r1, #1	; 0x1                                  
    7e18:	1a000003 	bne	7e2c <IMFS_evaluate_for_make+0x68>            
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
    7e1c:	e1a00005 	mov	r0, r5                                        
    7e20:	ebfffecf 	bl	7964 <IMFS_evaluate_permission>                
    7e24:	e3500000 	cmp	r0, #0	; 0x0                                  
    7e28:	0a000066 	beq	7fc8 <IMFS_evaluate_for_make+0x204>           
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
    7e2c:	e5952000 	ldr	r2, [r5]                                      
   */                                                                 
                                                                      
  while( !done ) {                                                    
                                                                      
    type = IMFS_get_token( &path[i], token, &len );                   
    i +=  len;                                                        
    7e30:	e0877008 	add	r7, r7, r8                                    
    if ( type != IMFS_NO_MORE_PATH )                                  
      if ( node->type == IMFS_DIRECTORY )                             
        if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) )
           rtems_set_errno_and_return_minus_one( EACCES );            
                                                                      
    node = pathloc->node_access;                                      
    7e34:	e1a04002 	mov	r4, r2                                        
                                                                      
    switch( type ) {                                                  
    7e38:	e3560004 	cmp	r6, #4	; 0x4                                  
    7e3c:	979ff106 	ldrls	pc, [pc, r6, lsl #2]                        
    7e40:	eaffffe7 	b	7de4 <IMFS_evaluate_for_make+0x20>              <== NOT EXECUTED
    7e44:	00007f34 	.word	0x00007f34                                  <== NOT EXECUTED
    7e48:	00007de4 	.word	0x00007de4                                  <== NOT EXECUTED
    7e4c:	00007e58 	.word	0x00007e58                                  <== NOT EXECUTED
    7e50:	00007e90 	.word	0x00007e90                                  <== NOT EXECUTED
    7e54:	00007f40 	.word	0x00007f40                                  <== NOT EXECUTED
      case IMFS_UP_DIR:                                               
       /*                                                             
        *  Am I at the root of all filesystems? (chroot'ed?)          
	*/                                                                   
                                                                      
       if ( pathloc->node_access == rtems_filesystem_root.node_access )
    7e58:	e59f1184 	ldr	r1, [pc, #388]	; 7fe4 <IMFS_evaluate_for_make+0x220><== NOT EXECUTED
    7e5c:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
    7e60:	e5933014 	ldr	r3, [r3, #20]                                 <== NOT EXECUTED
    7e64:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    7e68:	0affffdd 	beq	7de4 <IMFS_evaluate_for_make+0x20>            <== NOT EXECUTED
                                                                      
	/*                                                                   
	 * Am I at the root of this mounted filesystem?                      
	 */                                                                  
                                                                      
        if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){
    7e6c:	e595100c 	ldr	r1, [r5, #12]                                 <== NOT EXECUTED
    7e70:	e5913018 	ldr	r3, [r1, #24]                                 <== NOT EXECUTED
    7e74:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
                                                                      
          if ( pathloc->node_access == rtems_filesystem_root.node_access ) {
            break;                                                    
                                                                      
	  } else {                                                           
            newloc = pathloc->mt_entry->mt_point_node;                
    7e78:	02813008 	addeq	r3, r1, #8	; 0x8                            <== NOT EXECUTED
    7e7c:	0a000018 	beq	7ee4 <IMFS_evaluate_for_make+0x120>           <== NOT EXECUTED
            *pathloc = newloc;                                        
            return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name );
	  }                                                                  
	} else {                                                             
                                                                      
          if ( !node->Parent )                                        
    7e80:	e5924008 	ldr	r4, [r2, #8]                                  <== NOT EXECUTED
    7e84:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    7e88:	1a000027 	bne	7f2c <IMFS_evaluate_for_make+0x168>           <== NOT EXECUTED
    7e8c:	ea000037 	b	7f70 <IMFS_evaluate_for_make+0x1ac>             <== NOT EXECUTED
        pathloc->node_access = node;                                  
        break;                                                        
                                                                      
      case IMFS_NAME:                                                 
                                                                      
	if ( node->type == IMFS_HARD_LINK ) {                                
    7e90:	e592304c 	ldr	r3, [r2, #76]                                 
    7e94:	e3530003 	cmp	r3, #3	; 0x3                                  
    7e98:	0a000001 	beq	7ea4 <IMFS_evaluate_for_make+0xe0>            
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
          if ( result == -1 )                                         
            return -1;                                                
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
    7e9c:	e3530004 	cmp	r3, #4	; 0x4                                  
    7ea0:	1a000005 	bne	7ebc <IMFS_evaluate_for_make+0xf8>            
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
    7ea4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    7ea8:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    7eac:	ebffff97 	bl	7d10 <IMFS_evaluate_link>                      <== NOT EXECUTED
                                                                      
          if ( result == -1 )                                         
    7eb0:	e3700001 	cmn	r0, #1	; 0x1                                  <== NOT EXECUTED
          if ( result == -1 )                                         
            return -1;                                                
                                                                      
	} else if ( node->type == IMFS_SYM_LINK ) {                          
                                                                      
          result = IMFS_evaluate_link( pathloc, 0 );                  
    7eb4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
          if ( result == -1 )                                         
    7eb8:	0a000046 	beq	7fd8 <IMFS_evaluate_for_make+0x214>           <== NOT EXECUTED
            return -1;                                                
	}                                                                    
                                                                      
        node = pathloc->node_access;                                  
    7ebc:	e5950000 	ldr	r0, [r5]                                      
        if ( !node )                                                  
    7ec0:	e3500000 	cmp	r0, #0	; 0x0                                  
    7ec4:	0a000037 	beq	7fa8 <IMFS_evaluate_for_make+0x1e4>           
                                                                      
        /*                                                            
         * Only a directory can be decended into.                     
	 */                                                                  
                                                                      
        if ( node->type != IMFS_DIRECTORY )                           
    7ec8:	e590304c 	ldr	r3, [r0, #76]                                 
    7ecc:	e3530001 	cmp	r3, #1	; 0x1                                  
    7ed0:	1a000034 	bne	7fa8 <IMFS_evaluate_for_make+0x1e4>           
	/*                                                                   
	 * If we are at a node that is a mount point. Set loc to the         
	 * new fs root node and let them finish evaluating the path.         
	 */                                                                  
                                                                      
        if ( node->info.directory.mt_fs != NULL ) {                   
    7ed4:	e590305c 	ldr	r3, [r0, #92]                                 
    7ed8:	e3530000 	cmp	r3, #0	; 0x0                                  
    7edc:	0a00000e 	beq	7f1c <IMFS_evaluate_for_make+0x158>           
          newloc  = node->info.directory.mt_fs->mt_fs_root;           
    7ee0:	e2833018 	add	r3, r3, #24	; 0x18                            <== NOT EXECUTED
    7ee4:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    7ee8:	e28dc024 	add	ip, sp, #36	; 0x24                            <== NOT EXECUTED
    7eec:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          <== NOT EXECUTED
          *pathloc = newloc;                                          
          return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name );
    7ef0:	e59dc034 	ldr	ip, [sp, #52]                                 <== NOT EXECUTED
    7ef4:	e06cc007 	rsb	ip, ip, r7                                    <== NOT EXECUTED
	 * new fs root node and let them finish evaluating the path.         
	 */                                                                  
                                                                      
        if ( node->info.directory.mt_fs != NULL ) {                   
          newloc  = node->info.directory.mt_fs->mt_fs_root;           
          *pathloc = newloc;                                          
    7ef8:	e885000f 	stm	r5, {r0, r1, r2, r3}                          <== NOT EXECUTED
          return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name );
    7efc:	e5923004 	ldr	r3, [r2, #4]                                  <== NOT EXECUTED
    7f00:	e08a000c 	add	r0, sl, ip                                    <== NOT EXECUTED
    7f04:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    7f08:	e1a02009 	mov	r2, r9                                        <== NOT EXECUTED
    7f0c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    7f10:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    7f14:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    7f18:	ea00002e 	b	7fd8 <IMFS_evaluate_for_make+0x214>             <== NOT EXECUTED
                                                                      
	/*                                                                   
	 * Otherwise find the token name in the present location.            
	 */                                                                  
                                                                      
        node = IMFS_find_match_in_dir( node, token );                 
    7f1c:	e1a0100b 	mov	r1, fp                                        
    7f20:	eb000030 	bl	7fe8 <IMFS_find_match_in_dir>                  
	/*                                                                   
	 * If there is no node we have found the name of the node we         
         * wish to create.                                            
	 */                                                                  
                                                                      
        if ( ! node )                                                 
    7f24:	e2504000 	subs	r4, r0, #0	; 0x0                             
    7f28:	0a000007 	beq	7f4c <IMFS_evaluate_for_make+0x188>           
          done = true;                                                
        else                                                          
          pathloc->node_access = node;                                
    7f2c:	e5854000 	str	r4, [r5]                                      
    7f30:	eaffffab 	b	7de4 <IMFS_evaluate_for_make+0x20>              
                                                                      
        break;                                                        
                                                                      
      case IMFS_NO_MORE_PATH:                                         
        rtems_set_errno_and_return_minus_one( EEXIST );               
    7f34:	eb000a36 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7f38:	e3a03011 	mov	r3, #17	; 0x11                                <== NOT EXECUTED
    7f3c:	ea000023 	b	7fd0 <IMFS_evaluate_for_make+0x20c>             <== NOT EXECUTED
        break;                                                        
                                                                      
      case IMFS_INVALID_TOKEN:                                        
        rtems_set_errno_and_return_minus_one( ENAMETOOLONG );         
    7f40:	eb000a33 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7f44:	e3a0305b 	mov	r3, #91	; 0x5b                                <== NOT EXECUTED
    7f48:	ea000020 	b	7fd0 <IMFS_evaluate_for_make+0x20c>             <== NOT EXECUTED
      case IMFS_CURRENT_DIR:                                          
        break;                                                        
    }                                                                 
  }                                                                   
                                                                      
  *name = &path[ i - len ];                                           
    7f4c:	e59d3034 	ldr	r3, [sp, #52]                                 
    7f50:	e0633007 	rsb	r3, r3, r7                                    
    7f54:	e08a3003 	add	r3, sl, r3                                    
    7f58:	e5893000 	str	r3, [r9]                                      
    7f5c:	e08a0007 	add	r0, sl, r7                                    
    7f60:	ea000005 	b	7f7c <IMFS_evaluate_for_make+0x1b8>             
   * We have evaluated the path as far as we can.                     
   * Verify there is not any invalid stuff at the end of the name.    
   */                                                                 
                                                                      
  for( ; path[i] != '\0'; i++) {                                      
    if ( !IMFS_is_separator( path[ i ] ) )                            
    7f64:	e352002f 	cmp	r2, #47	; 0x2f                                <== NOT EXECUTED
    7f68:	1352005c 	cmpne	r2, #92	; 0x5c                              <== NOT EXECUTED
    7f6c:	0a000002 	beq	7f7c <IMFS_evaluate_for_make+0x1b8>           <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( ENOENT );                 
    7f70:	eb000a27 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7f74:	e3a03002 	mov	r3, #2	; 0x2                                  <== NOT EXECUTED
    7f78:	ea000014 	b	7fd0 <IMFS_evaluate_for_make+0x20c>             <== NOT EXECUTED
  /*                                                                  
   * We have evaluated the path as far as we can.                     
   * Verify there is not any invalid stuff at the end of the name.    
   */                                                                 
                                                                      
  for( ; path[i] != '\0'; i++) {                                      
    7f7c:	e5d02000 	ldrb	r2, [r0]                                     
    7f80:	e3520000 	cmp	r2, #0	; 0x0                                  
    7f84:	e2800001 	add	r0, r0, #1	; 0x1                              
    7f88:	1afffff5 	bne	7f64 <IMFS_evaluate_for_make+0x1a0>           
                                                                      
  /*                                                                  
   * Verify we can execute and write to this directory.               
   */                                                                 
                                                                      
  result = IMFS_Set_handlers( pathloc );                              
    7f8c:	e1a00005 	mov	r0, r5                                        
    7f90:	ebfffe59 	bl	78fc <IMFS_Set_handlers>                       
                                                                      
  /*                                                                  
   * The returned node must be a directory                            
   */                                                                 
  node = pathloc->node_access;                                        
  if ( node->type != IMFS_DIRECTORY )                                 
    7f94:	e5953000 	ldr	r3, [r5]                                      
    7f98:	e593304c 	ldr	r3, [r3, #76]                                 
    7f9c:	e3530001 	cmp	r3, #1	; 0x1                                  
                                                                      
  /*                                                                  
   * Verify we can execute and write to this directory.               
   */                                                                 
                                                                      
  result = IMFS_Set_handlers( pathloc );                              
    7fa0:	e1a04000 	mov	r4, r0                                        
                                                                      
  /*                                                                  
   * The returned node must be a directory                            
   */                                                                 
  node = pathloc->node_access;                                        
  if ( node->type != IMFS_DIRECTORY )                                 
    7fa4:	0a000002 	beq	7fb4 <IMFS_evaluate_for_make+0x1f0>           
    rtems_set_errno_and_return_minus_one( ENOTDIR );                  
    7fa8:	eb000a19 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7fac:	e3a03014 	mov	r3, #20	; 0x14                                <== NOT EXECUTED
    7fb0:	ea000006 	b	7fd0 <IMFS_evaluate_for_make+0x20c>             <== NOT EXECUTED
                                                                      
  /*                                                                  
   * We must have Write and execute permission on the returned node.  
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) )   
    7fb4:	e1a00005 	mov	r0, r5                                        
    7fb8:	e3a01003 	mov	r1, #3	; 0x3                                  
    7fbc:	ebfffe68 	bl	7964 <IMFS_evaluate_permission>                
    7fc0:	e3500000 	cmp	r0, #0	; 0x0                                  
    7fc4:	1a000003 	bne	7fd8 <IMFS_evaluate_for_make+0x214>           
    rtems_set_errno_and_return_minus_one( EACCES );                   
    7fc8:	eb000a11 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7fcc:	e3a0300d 	mov	r3, #13	; 0xd                                 <== NOT EXECUTED
    7fd0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    7fd4:	e3e04000 	mvn	r4, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    7fd8:	e1a00004 	mov	r0, r4                                        
    7fdc:	e28dd038 	add	sp, sp, #56	; 0x38                            
    7fe0:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

000079a4 <IMFS_evaluate_hard_link>: int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { IMFS_jnode_t *jnode = node->node_access;
    79a4:	e5902000 	ldr	r2, [r0]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Check for things that should never happen.                       
   */                                                                 
                                                                      
  if ( jnode->type != IMFS_HARD_LINK )                                
    79a8:	e592304c 	ldr	r3, [r2, #76]                                 <== NOT EXECUTED
    79ac:	e3530003 	cmp	r3, #3	; 0x3                                  <== NOT EXECUTED
                                                                      
int IMFS_evaluate_hard_link(                                          
  rtems_filesystem_location_info_t  *node,   /* IN/OUT */             
  int                                flags   /* IN     */             
)                                                                     
{                                                                     
    79b0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
    79b4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    79b8:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  /*                                                                  
   * Check for things that should never happen.                       
   */                                                                 
                                                                      
  if ( jnode->type != IMFS_HARD_LINK )                                
    rtems_fatal_error_occurred (0xABCD0000);                          
    79bc:	159f0038 	ldrne	r0, [pc, #56]	; 79fc <IMFS_evaluate_hard_link+0x58><== NOT EXECUTED
    79c0:	1bfff416 	blne	4a20 <rtems_fatal_error_occurred>            <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Set the hard link value and the handlers.                        
   */                                                                 
                                                                      
  node->node_access = jnode->info.hard_link.link_node;                
    79c4:	e5923050 	ldr	r3, [r2, #80]                                 <== NOT EXECUTED
    79c8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
                                                                      
  IMFS_Set_handlers( node );                                          
    79cc:	ebffffca 	bl	78fc <IMFS_Set_handlers>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Verify we have the correct permissions for this node.            
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( node, flags ) )                     
    79d0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    79d4:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    79d8:	ebffffe1 	bl	7964 <IMFS_evaluate_permission>                <== NOT EXECUTED
    79dc:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    79e0:	13a00000 	movne	r0, #0	; 0x0                                <== NOT EXECUTED
    79e4:	18bd8030 	popne	{r4, r5, pc}                                <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EACCES );                   
    79e8:	eb000b89 	bl	a814 <__errno>                                 <== NOT EXECUTED
    79ec:	e3a0300d 	mov	r3, #13	; 0xd                                 <== NOT EXECUTED
    79f0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    79f4:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    79f8:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00007d10 <IMFS_evaluate_link>: int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) {
    7d10:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
                                                                      
    /*                                                                
     * Increment and check the link counter.                          
     */                                                               
                                                                      
    rtems_filesystem_link_counts ++;                                  
    7d14:	e59f70a4 	ldr	r7, [pc, #164]	; 7dc0 <IMFS_evaluate_link+0xb0><== NOT EXECUTED
                                                                      
int IMFS_evaluate_link(                                               
  rtems_filesystem_location_info_t  *node,   /* IN/OUT */             
  int                                flags   /* IN     */             
)                                                                     
{                                                                     
    7d18:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    7d1c:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
                                                                      
    /*                                                                
     * Increment and check the link counter.                          
     */                                                               
                                                                      
    rtems_filesystem_link_counts ++;                                  
    7d20:	e5972000 	ldr	r2, [r7]                                      <== NOT EXECUTED
    7d24:	e1d232b8 	ldrh	r3, [r2, #40]                                <== NOT EXECUTED
    7d28:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    7d2c:	e1a03803 	lsl	r3, r3, #16                                   <== NOT EXECUTED
    7d30:	e1a03823 	lsr	r3, r3, #16                                   <== NOT EXECUTED
    if ( rtems_filesystem_link_counts > MAXSYMLINK ) {                
    7d34:	e3530005 	cmp	r3, #5	; 0x5                                  <== NOT EXECUTED
                                                                      
    /*                                                                
     * Increment and check the link counter.                          
     */                                                               
                                                                      
    rtems_filesystem_link_counts ++;                                  
    7d38:	e1c232b8 	strh	r3, [r2, #40]                                <== NOT EXECUTED
{                                                                     
  IMFS_jnode_t                     *jnode;                            
  int                               result = 0;                       
                                                                      
  do {                                                                
    jnode  = node->node_access;                                       
    7d3c:	e5945000 	ldr	r5, [r4]                                      <== NOT EXECUTED
    /*                                                                
     * Increment and check the link counter.                          
     */                                                               
                                                                      
    rtems_filesystem_link_counts ++;                                  
    if ( rtems_filesystem_link_counts > MAXSYMLINK ) {                
    7d40:	9a000006 	bls	7d60 <IMFS_evaluate_link+0x50>                <== NOT EXECUTED
      rtems_filesystem_link_counts = 0;                               
    7d44:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    7d48:	e1c232b8 	strh	r3, [r2, #40]                                <== NOT EXECUTED
      rtems_set_errno_and_return_minus_one( ELOOP );                  
    7d4c:	eb000ab0 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7d50:	e3a0305c 	mov	r3, #92	; 0x5c                                <== NOT EXECUTED
    7d54:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    7d58:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    7d5c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      
    /*                                                                
     *  Follow the Link node.                                         
     */                                                               
                                                                      
    if ( jnode->type == IMFS_HARD_LINK )                              
    7d60:	e595304c 	ldr	r3, [r5, #76]                                 <== NOT EXECUTED
    7d64:	e3530003 	cmp	r3, #3	; 0x3                                  <== NOT EXECUTED
    7d68:	1a000003 	bne	7d7c <IMFS_evaluate_link+0x6c>                <== NOT EXECUTED
      result = IMFS_evaluate_hard_link( node, flags );                
    7d6c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    7d70:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    7d74:	ebffff0a 	bl	79a4 <IMFS_evaluate_hard_link>                 <== NOT EXECUTED
    7d78:	ea000004 	b	7d90 <IMFS_evaluate_link+0x80>                  <== NOT EXECUTED
                                                                      
    else if (jnode->type == IMFS_SYM_LINK )                           
    7d7c:	e3530004 	cmp	r3, #4	; 0x4                                  <== NOT EXECUTED
    7d80:	1a000004 	bne	7d98 <IMFS_evaluate_link+0x88>                <== NOT EXECUTED
      result = IMFS_evaluate_sym_link( node, flags );                 
    7d84:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    7d88:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    7d8c:	ebffff1b 	bl	7a00 <IMFS_evaluate_sym_link>                  <== NOT EXECUTED
                                                                      
  } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK  ) || 
                                 ( jnode->type == IMFS_HARD_LINK ) ) );
    7d90:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    7d94:	1a000004 	bne	7dac <IMFS_evaluate_link+0x9c>                <== NOT EXECUTED
    7d98:	e595304c 	ldr	r3, [r5, #76]                                 <== NOT EXECUTED
    7d9c:	e2433003 	sub	r3, r3, #3	; 0x3                              <== NOT EXECUTED
    7da0:	e3530001 	cmp	r3, #1	; 0x1                                  <== NOT EXECUTED
    7da4:	9affffdd 	bls	7d20 <IMFS_evaluate_link+0x10>                <== NOT EXECUTED
    7da8:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Clear link counter.                                              
   */                                                                 
                                                                      
  rtems_filesystem_link_counts = 0;                                   
    7dac:	e59f300c 	ldr	r3, [pc, #12]	; 7dc0 <IMFS_evaluate_link+0xb0><== NOT EXECUTED
    7db0:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    7db4:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    7db8:	e1c322b8 	strh	r2, [r3, #40]                                <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    7dbc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

00007964 <IMFS_evaluate_permission>: uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) )
    7964:	e3d13007 	bics	r3, r1, #7	; 0x7                             
                                                                      
int IMFS_evaluate_permission(                                         
  rtems_filesystem_location_info_t  *node,                            
  int                                flags                            
)                                                                     
{                                                                     
    7968:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  uid_t         st_uid;                                               
  gid_t         st_gid;                                               
  IMFS_jnode_t *jnode;                                                
  int           flags_to_test;                                        
                                                                      
  if ( !rtems_libio_is_valid_perms( flags ) )                         
    796c:	0a000004 	beq	7984 <IMFS_evaluate_permission+0x20>          
    rtems_set_errno_and_return_minus_one( EPERM );                    
    7970:	eb000ba7 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7974:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    7978:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    797c:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    7980:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      
  /*                                                                  
   * If all of the flags are set we have permission                   
   * to do this.                                                      
   */                                                                 
  if ( ( flags_to_test & jnode->st_mode) == flags_to_test )           
    7984:	e5903000 	ldr	r3, [r0]                                      
    7988:	e5933030 	ldr	r3, [r3, #48]                                 
    798c:	e1a02301 	lsl	r2, r1, #6                                    
    7990:	e0023003 	and	r3, r2, r3                                    
    7994:	e1530002 	cmp	r3, r2                                        
    7998:	13a00000 	movne	r0, #0	; 0x0                                
    799c:	03a00001 	moveq	r0, #1	; 0x1                                
    return 1;                                                         
                                                                      
  return 0;                                                           
}                                                                     
    79a0:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
                                                                      

00007a00 <IMFS_evaluate_sym_link>: int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) {
    7a00:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
    7a04:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  IMFS_jnode_t                     *jnode  = node->node_access;       
    7a08:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Check for things that should never happen.                       
   */                                                                 
                                                                      
  if ( jnode->type != IMFS_SYM_LINK )                                 
    7a0c:	e590304c 	ldr	r3, [r0, #76]                                 <== NOT EXECUTED
    7a10:	e3530004 	cmp	r3, #4	; 0x4                                  <== NOT EXECUTED
                                                                      
int IMFS_evaluate_sym_link(                                           
  rtems_filesystem_location_info_t  *node,   /* IN/OUT */             
  int                                flags   /* IN     */             
)                                                                     
{                                                                     
    7a14:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
  /*                                                                  
   * Check for things that should never happen.                       
   */                                                                 
                                                                      
  if ( jnode->type != IMFS_SYM_LINK )                                 
    rtems_fatal_error_occurred (0xABCD0000);                          
    7a18:	159f00a0 	ldrne	r0, [pc, #160]	; 7ac0 <IMFS_evaluate_sym_link+0xc0><== NOT EXECUTED
                                                                      
  /*                                                                  
   * Check for things that should never happen.                       
   */                                                                 
                                                                      
  if ( jnode->type != IMFS_SYM_LINK )                                 
    7a1c:	1a000003 	bne	7a30 <IMFS_evaluate_sym_link+0x30>            <== NOT EXECUTED
    rtems_fatal_error_occurred (0xABCD0000);                          
                                                                      
  if ( !jnode->Parent )                                               
    7a20:	e5903008 	ldr	r3, [r0, #8]                                  <== NOT EXECUTED
    7a24:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    7a28:	1a000001 	bne	7a34 <IMFS_evaluate_sym_link+0x34>            <== NOT EXECUTED
    rtems_fatal_error_occurred( 0xBAD00000 );                         
    7a2c:	e59f0090 	ldr	r0, [pc, #144]	; 7ac4 <IMFS_evaluate_sym_link+0xc4><== NOT EXECUTED
    7a30:	ebfff3fa 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
  /*                                                                  
   * Move the node_access to either the symbolic links parent or      
   * root depending on the symbolic links path.                       
   */                                                                 
                                                                      
  node->node_access = jnode->Parent;                                  
    7a34:	e5843000 	str	r3, [r4]                                      <== NOT EXECUTED
                                                                      
  rtems_filesystem_get_sym_start_loc(                                 
    7a38:	e590c050 	ldr	ip, [r0, #80]                                 <== NOT EXECUTED
    7a3c:	e5dc3000 	ldrb	r3, [ip]                                     <== NOT EXECUTED
    7a40:	e353005c 	cmp	r3, #92	; 0x5c                                <== NOT EXECUTED
    7a44:	1353002f 	cmpne	r3, #47	; 0x2f                              <== NOT EXECUTED
    7a48:	13a02000 	movne	r2, #0	; 0x0                                <== NOT EXECUTED
    7a4c:	03a02001 	moveq	r2, #1	; 0x1                                <== NOT EXECUTED
    7a50:	0a000002 	beq	7a60 <IMFS_evaluate_sym_link+0x60>            <== NOT EXECUTED
    7a54:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    7a58:	11a03002 	movne	r3, r2                                      <== NOT EXECUTED
    7a5c:	1a000005 	bne	7a78 <IMFS_evaluate_sym_link+0x78>            <== NOT EXECUTED
    7a60:	e59f3060 	ldr	r3, [pc, #96]	; 7ac8 <IMFS_evaluate_sym_link+0xc8><== NOT EXECUTED
    7a64:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    7a68:	e2833014 	add	r3, r3, #20	; 0x14                            <== NOT EXECUTED
    7a6c:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    7a70:	e884000f 	stm	r4, {r0, r1, r2, r3}                          <== NOT EXECUTED
    7a74:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Use eval path to evaluate the path of the symbolic link.         
   */                                                                 
                                                                      
  result = IMFS_eval_path(                                            
    7a78:	e08c0003 	add	r0, ip, r3                                    <== NOT EXECUTED
    7a7c:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    7a80:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    7a84:	eb000010 	bl	7acc <IMFS_eval_path>                          <== NOT EXECUTED
    7a88:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
    &jnode->info.sym_link.name[i],                                    
    flags,                                                            
    node                                                              
  );                                                                  
                                                                      
  IMFS_Set_handlers( node );                                          
    7a8c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    7a90:	ebffff99 	bl	78fc <IMFS_Set_handlers>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Verify we have the correct permissions for this node.            
   */                                                                 
                                                                      
  if ( !IMFS_evaluate_permission( node, flags ) )                     
    7a94:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    7a98:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    7a9c:	ebffffb0 	bl	7964 <IMFS_evaluate_permission>                <== NOT EXECUTED
    7aa0:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    7aa4:	1a000003 	bne	7ab8 <IMFS_evaluate_sym_link+0xb8>            <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EACCES );                   
    7aa8:	eb000b59 	bl	a814 <__errno>                                 <== NOT EXECUTED
    7aac:	e3a0300d 	mov	r3, #13	; 0xd                                 <== NOT EXECUTED
    7ab0:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    7ab4:	e3e05000 	mvn	r5, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    7ab8:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    7abc:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

0000a1e0 <IMFS_fchmod>: int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) {
    a1e0:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
#endif                                                                
                                                                      
  /*                                                                  
   * Change only the RWX permissions on the jnode to mode.            
   */                                                                 
  if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) )                   
    a1e4:	e3c14f7f 	bic	r4, r1, #508	; 0x1fc                          <== NOT EXECUTED
    a1e8:	e3c44003 	bic	r4, r4, #3	; 0x3                              <== NOT EXECUTED
    a1ec:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
int IMFS_fchmod(                                                      
  rtems_filesystem_location_info_t *loc,                              
  mode_t                            mode                              
)                                                                     
{                                                                     
    a1f0:	e24dd008 	sub	sp, sp, #8	; 0x8                              <== NOT EXECUTED
  IMFS_jnode_t  *jnode;                                               
#if defined(RTEMS_POSIX_API)                                          
  uid_t          st_uid;                                              
#endif                                                                
                                                                      
  jnode = loc->node_access;                                           
    a1f4:	e5905000 	ldr	r5, [r0]                                      <== NOT EXECUTED
#endif                                                                
                                                                      
  /*                                                                  
   * Change only the RWX permissions on the jnode to mode.            
   */                                                                 
  if ( mode & (~ (S_IRWXU | S_IRWXG | S_IRWXO ) ) )                   
    a1f8:	0a000004 	beq	a210 <IMFS_fchmod+0x30>                       <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EPERM );                    
    a1fc:	eb000184 	bl	a814 <__errno>                                 <== NOT EXECUTED
    a200:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    a204:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    a208:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    a20c:	ea00000a 	b	a23c <IMFS_fchmod+0x5c>                         <== NOT EXECUTED
                                                                      
  jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO);                   
  jnode->st_mode |= mode;                                             
    a210:	e5953030 	ldr	r3, [r5, #48]                                 <== NOT EXECUTED
    a214:	e3c33f7f 	bic	r3, r3, #508	; 0x1fc                          <== NOT EXECUTED
    a218:	e3c33003 	bic	r3, r3, #3	; 0x3                              <== NOT EXECUTED
    a21c:	e1813003 	orr	r3, r1, r3                                    <== NOT EXECUTED
    a220:	e5853030 	str	r3, [r5, #48]                                 <== NOT EXECUTED
                                                                      
  IMFS_update_ctime( jnode );                                         
    a224:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    a228:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    a22c:	ebfff985 	bl	8848 <gettimeofday>                            <== NOT EXECUTED
    a230:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    a234:	e5853048 	str	r3, [r5, #72]                                 <== NOT EXECUTED
    a238:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
    a23c:	e28dd008 	add	sp, sp, #8	; 0x8                              <== NOT EXECUTED
    a240:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00008088 <IMFS_get_token>: IMFS_token_types IMFS_get_token( const char *path, char *token, int *token_len ) {
    8088:	e92d4010 	push	{r4, lr}                                     
  register char c;                                                    
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
    808c:	e3a0c000 	mov	ip, #0	; 0x0                                  
IMFS_token_types IMFS_get_token(                                      
  const char       *path,                                             
  char             *token,                                            
  int              *token_len                                         
)                                                                     
{                                                                     
    8090:	e1a04001 	mov	r4, r1                                        
  register char c;                                                    
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
    8094:	e5d01000 	ldrb	r1, [r0]                                     
    8098:	ea000006 	b	80b8 <IMFS_get_token+0x30>                      
  while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) {         
                                                                      
     token[i] = c;                                                    
                                                                      
     if ( i == IMFS_NAME_MAX )                                        
    809c:	e35c0020 	cmp	ip, #32	; 0x20                                
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
  while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) {         
                                                                      
     token[i] = c;                                                    
    80a0:	e7c4100c 	strb	r1, [r4, ip]                                 
       return IMFS_INVALID_TOKEN;                                     
                                                                      
     if ( !IMFS_is_valid_name_char(c) )                               
       type = IMFS_INVALID_TOKEN;                                     
                                                                      
     c = path [++i];                                                  
    80a4:	e28cc001 	add	ip, ip, #1	; 0x1                              
  c = path[i];                                                        
  while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) {         
                                                                      
     token[i] = c;                                                    
                                                                      
     if ( i == IMFS_NAME_MAX )                                        
    80a8:	1a000001 	bne	80b4 <IMFS_get_token+0x2c>                    
    80ac:	e3a00004 	mov	r0, #4	; 0x4                                  <== NOT EXECUTED
    80b0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
       return IMFS_INVALID_TOKEN;                                     
                                                                      
     if ( !IMFS_is_valid_name_char(c) )                               
       type = IMFS_INVALID_TOKEN;                                     
                                                                      
     c = path [++i];                                                  
    80b4:	e7d0100c 	ldrb	r1, [r0, ip]                                 
                                                                      
  /*                                                                  
   *  Copy a name into token.  (Remember NULL is a token.)            
   */                                                                 
  c = path[i];                                                        
  while ( (!IMFS_is_separator(c)) && (i <= IMFS_NAME_MAX) ) {         
    80b8:	e351002f 	cmp	r1, #47	; 0x2f                                
    80bc:	1351005c 	cmpne	r1, #92	; 0x5c                              
    80c0:	0a000005 	beq	80dc <IMFS_get_token+0x54>                    
    80c4:	e2513000 	subs	r3, r1, #0	; 0x0                             
    80c8:	13a03001 	movne	r3, #1	; 0x1                                
    80cc:	e35c0020 	cmp	ip, #32	; 0x20                                
    80d0:	c3a03000 	movgt	r3, #0	; 0x0                                
    80d4:	e3530000 	cmp	r3, #0	; 0x0                                  
    80d8:	1affffef 	bne	809c <IMFS_get_token+0x14>                    
                                                                      
  /*                                                                  
   *  Copy a seperator into token.                                    
   */                                                                 
                                                                      
  if ( i == 0 ) {                                                     
    80dc:	e35c0000 	cmp	ip, #0	; 0x0                                  
    80e0:	1a000004 	bne	80f8 <IMFS_get_token+0x70>                    
    token[i] = c;                                                     
                                                                      
    if ( token[i] != '\0' ) {                                         
    80e4:	e3510000 	cmp	r1, #0	; 0x0                                  
    80e8:	128cc001 	addne	ip, ip, #1	; 0x1                            
  /*                                                                  
   *  Copy a seperator into token.                                    
   */                                                                 
                                                                      
  if ( i == 0 ) {                                                     
    token[i] = c;                                                     
    80ec:	e5c41000 	strb	r1, [r4]                                     
                                                                      
    if ( token[i] != '\0' ) {                                         
    80f0:	e1a0000c 	mov	r0, ip                                        
    80f4:	ea000005 	b	8110 <IMFS_get_token+0x88>                      
      i++;                                                            
      type = IMFS_CURRENT_DIR;                                        
    } else {                                                          
      type = IMFS_NO_MORE_PATH;                                       
    }                                                                 
  } else if (token[ i-1 ] != '\0') {                                  
    80f8:	e084300c 	add	r3, r4, ip                                    
    80fc:	e5533001 	ldrb	r3, [r3, #-1]                                
    8100:	e3530000 	cmp	r3, #0	; 0x0                                  
    token[i] = '\0';                                                  
    8104:	13a03000 	movne	r3, #0	; 0x0                                
    8108:	17c4300c 	strbne	r3, [r4, ip]                               
    810c:	e3a00003 	mov	r0, #3	; 0x3                                  
  /*                                                                  
   *  If we copied something that was not a seperator see if          
   *  it was a special name.                                          
   */                                                                 
                                                                      
  if ( type == IMFS_NAME ) {                                          
    8110:	e3500003 	cmp	r0, #3	; 0x3                                  
                                                                      
  /*                                                                  
   *  Set token_len to the number of characters copied.               
   */                                                                 
                                                                      
  *token_len = i;                                                     
    8114:	e582c000 	str	ip, [r2]                                      
  /*                                                                  
   *  If we copied something that was not a seperator see if          
   *  it was a special name.                                          
   */                                                                 
                                                                      
  if ( type == IMFS_NAME ) {                                          
    8118:	18bd8010 	popne	{r4, pc}                                    
    if ( strcmp( token, "..") == 0 )                                  
    811c:	e1a00004 	mov	r0, r4                                        
    8120:	e59f1028 	ldr	r1, [pc, #40]	; 8150 <IMFS_get_token+0xc8>    
    8124:	eb000e88 	bl	bb4c <strcmp>                                  
    8128:	e3500000 	cmp	r0, #0	; 0x0                                  
    812c:	02800002 	addeq	r0, r0, #2	; 0x2                            
    8130:	08bd8010 	popeq	{r4, pc}                                    
      type = IMFS_UP_DIR;                                             
    else if ( strcmp( token, "." ) == 0 )                             
    8134:	e1a00004 	mov	r0, r4                                        
    8138:	e59f1014 	ldr	r1, [pc, #20]	; 8154 <IMFS_get_token+0xcc>    
    813c:	eb000e82 	bl	bb4c <strcmp>                                  
    8140:	e3500000 	cmp	r0, #0	; 0x0                                  
    8144:	13a00003 	movne	r0, #3	; 0x3                                
    8148:	03a00001 	moveq	r0, #1	; 0x1                                
      type = IMFS_CURRENT_DIR;                                        
  }                                                                   
                                                                      
  return type;                                                        
}                                                                     
    814c:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00008158 <IMFS_initialize_support>: rtems_filesystem_mount_table_entry_t *temp_mt_entry, const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, const rtems_filesystem_file_handlers_r *directory_handlers ) {
    8158:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  IMFS_jnode_t                          *jnode;                       
                                                                      
  /*                                                                  
   * determine/check value for imfs_memfile_bytes_per_block           
   */                                                                 
  IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block,       
    815c:	e59fc0e4 	ldr	ip, [pc, #228]	; 8248 <IMFS_initialize_support+0xf0>
    8160:	e59cc000 	ldr	ip, [ip]                                      
  rtems_filesystem_mount_table_entry_t        *temp_mt_entry,         
   const rtems_filesystem_operations_table    *op_table,              
   const rtems_filesystem_file_handlers_r     *memfile_handlers,      
   const rtems_filesystem_file_handlers_r     *directory_handlers     
)                                                                     
{                                                                     
    8164:	e1a07003 	mov	r7, r3                                        
    8168:	e24dd004 	sub	sp, sp, #4	; 0x4                              
    816c:	e1a05000 	mov	r5, r0                                        
    8170:	e1a08001 	mov	r8, r1                                        
    8174:	e1a0a002 	mov	sl, r2                                        
  IMFS_jnode_t                          *jnode;                       
                                                                      
  /*                                                                  
   * determine/check value for imfs_memfile_bytes_per_block           
   */                                                                 
  IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block,       
    8178:	e3a0e010 	mov	lr, #16	; 0x10                                
    817c:	e3a03000 	mov	r3, #0	; 0x0                                  
  int bit_mask;                                                       
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16;                                                 
       !is_valid && (bit_mask <= 512);                                
    8180:	e15e000c 	cmp	lr, ip                                        
       bit_mask <<= 1) {                                              
    8184:	e2833001 	add	r3, r3, #1	; 0x1                              
  int bit_mask;                                                       
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16;                                                 
       !is_valid && (bit_mask <= 512);                                
    8188:	0a000003 	beq	819c <IMFS_initialize_support+0x44>           
    818c:	e3530006 	cmp	r3, #6	; 0x6                                  
       bit_mask <<= 1) {                                              
    8190:	e1a0e08e 	lsl	lr, lr, #1                                    
  int bit_mask;                                                       
  /*                                                                  
   * check, whether requested bytes per block is valid                
   */                                                                 
  for (bit_mask = 16;                                                 
       !is_valid && (bit_mask <= 512);                                
    8194:	1afffff9 	bne	8180 <IMFS_initialize_support+0x28>           
    8198:	e3a0e080 	mov	lr, #128	; 0x80                               <== NOT EXECUTED
       bit_mask <<= 1) {                                              
    if (bit_mask == requested_bytes_per_block) {                      
      is_valid = true;                                                
    }                                                                 
  }                                                                   
  *dest_bytes_per_block = ((is_valid)                                 
    819c:	e59fc0a8 	ldr	ip, [pc, #168]	; 824c <IMFS_initialize_support+0xf4>
   *  Create the root node                                            
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).            
   */                                                                 
                                                                      
  temp_mt_entry->mt_fs_root.node_access = IMFS_create_node(           
    81a0:	e3a06000 	mov	r6, #0	; 0x0                                  
       bit_mask <<= 1) {                                              
    if (bit_mask == requested_bytes_per_block) {                      
      is_valid = true;                                                
    }                                                                 
  }                                                                   
  *dest_bytes_per_block = ((is_valid)                                 
    81a4:	e58ce000 	str	lr, [ip]                                      
   *  Create the root node                                            
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).            
   */                                                                 
                                                                      
  temp_mt_entry->mt_fs_root.node_access = IMFS_create_node(           
    81a8:	e3a01001 	mov	r1, #1	; 0x1                                  
    81ac:	e59f209c 	ldr	r2, [pc, #156]	; 8250 <IMFS_initialize_support+0xf8>
    81b0:	e59f309c 	ldr	r3, [pc, #156]	; 8254 <IMFS_initialize_support+0xfc>
    81b4:	e1a00006 	mov	r0, r6                                        
    81b8:	e58d6000 	str	r6, [sp]                                      
    81bc:	eb0007aa 	bl	a06c <IMFS_create_node>                        
    NULL                                                              
  );                                                                  
                                                                      
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
  temp_mt_entry->mt_fs_root.ops              = op_table;              
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
    81c0:	e59f3090 	ldr	r3, [pc, #144]	; 8258 <IMFS_initialize_support+0x100>
    81c4:	e1a04003 	mov	r4, r3                                        
   *  Create the root node                                            
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).            
   */                                                                 
                                                                      
  temp_mt_entry->mt_fs_root.node_access = IMFS_create_node(           
    81c8:	e5850018 	str	r0, [r5, #24]                                 
    NULL                                                              
  );                                                                  
                                                                      
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
  temp_mt_entry->mt_fs_root.ops              = op_table;              
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
    81cc:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         
    81d0:	e285c030 	add	ip, r5, #48	; 0x30                            
    81d4:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
    81d8:	e8b4000f 	ldm	r4!, {r0, r1, r2, r3}                         
    81dc:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       
    81e0:	e894000f 	ldm	r4, {r0, r1, r2, r3}                          
    ( S_IFDIR | 0755 ),                                               
    NULL                                                              
  );                                                                  
                                                                      
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
  temp_mt_entry->mt_fs_root.ops              = op_table;              
    81e4:	e5858020 	str	r8, [r5, #32]                                 
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
    81e8:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
    "",                                                               
    ( S_IFDIR | 0755 ),                                               
    NULL                                                              
  );                                                                  
                                                                      
  temp_mt_entry->mt_fs_root.handlers         = directory_handlers;    
    81ec:	e585701c 	str	r7, [r5, #28]                                 
  temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
                                                                      
  /*                                                                  
   * Create custom file system data.                                  
   */                                                                 
  fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) );                    
    81f0:	e3a00001 	mov	r0, #1	; 0x1                                  
    81f4:	e3a0100c 	mov	r1, #12	; 0xc                                 
    81f8:	eb0000f7 	bl	85dc <calloc>                                  
  if ( !fs_info ){                                                    
    81fc:	e3500000 	cmp	r0, #0	; 0x0                                  
    8200:	1a000006 	bne	8220 <IMFS_initialize_support+0xc8>           
    free(temp_mt_entry->mt_fs_root.node_access);                      
    8204:	e5950018 	ldr	r0, [r5, #24]                                 <== NOT EXECUTED
    8208:	eb000130 	bl	86d0 <free>                                    <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one(ENOMEM);                     
    820c:	eb000980 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8210:	e3a0300c 	mov	r3, #12	; 0xc                                 <== NOT EXECUTED
    8214:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8218:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    821c:	ea000007 	b	8240 <IMFS_initialize_support+0xe8>             <== NOT EXECUTED
  fs_info->ino_count             = 1;                                 
  fs_info->memfile_handlers      = memfile_handlers;                  
  fs_info->directory_handlers    = directory_handlers;                
                                                                      
  jnode = temp_mt_entry->mt_fs_root.node_access;                      
  jnode->st_ino = fs_info->ino_count;                                 
    8220:	e5952018 	ldr	r2, [r5, #24]                                 
                                                                      
  /*                                                                  
   * Set st_ino for the root to 1.                                    
   */                                                                 
                                                                      
  fs_info->ino_count             = 1;                                 
    8224:	e3a03001 	mov	r3, #1	; 0x1                                  
    8228:	e5803000 	str	r3, [r0]                                      
  fs_info->memfile_handlers      = memfile_handlers;                  
  fs_info->directory_handlers    = directory_handlers;                
                                                                      
  jnode = temp_mt_entry->mt_fs_root.node_access;                      
  jnode->st_ino = fs_info->ino_count;                                 
    822c:	e5823038 	str	r3, [r2, #56]                                 
   * Set st_ino for the root to 1.                                    
   */                                                                 
                                                                      
  fs_info->ino_count             = 1;                                 
  fs_info->memfile_handlers      = memfile_handlers;                  
  fs_info->directory_handlers    = directory_handlers;                
    8230:	e5807008 	str	r7, [r0, #8]                                  
  /*                                                                  
   * Set st_ino for the root to 1.                                    
   */                                                                 
                                                                      
  fs_info->ino_count             = 1;                                 
  fs_info->memfile_handlers      = memfile_handlers;                  
    8234:	e580a004 	str	sl, [r0, #4]                                  
  fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) );                    
  if ( !fs_info ){                                                    
    free(temp_mt_entry->mt_fs_root.node_access);                      
    rtems_set_errno_and_return_minus_one(ENOMEM);                     
  }                                                                   
  temp_mt_entry->fs_info = fs_info;                                   
    8238:	e585002c 	str	r0, [r5, #44]                                 
  fs_info->ino_count             = 1;                                 
  fs_info->memfile_handlers      = memfile_handlers;                  
  fs_info->directory_handlers    = directory_handlers;                
                                                                      
  jnode = temp_mt_entry->mt_fs_root.node_access;                      
  jnode->st_ino = fs_info->ino_count;                                 
    823c:	e1a00006 	mov	r0, r6                                        
                                                                      
  return 0;                                                           
}                                                                     
    8240:	e28dd004 	add	sp, sp, #4	; 0x4                              
    8244:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      

0000825c <IMFS_mknod>: const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) {
    825c:	e92d4070 	push	{r4, r5, r6, lr}                             
    8260:	e24dd03c 	sub	sp, sp, #60	; 0x3c                            
    8264:	e1a06001 	mov	r6, r1                                        
    8268:	e1a05002 	mov	r5, r2                                        
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, new_name, &result );                         
    826c:	e28d1007 	add	r1, sp, #7	; 0x7                              
    8270:	e28d2038 	add	r2, sp, #56	; 0x38                            
  const char                        *token,      /* IN */             
  mode_t                             mode,       /* IN */             
  dev_t                              dev,        /* IN */             
  rtems_filesystem_location_info_t  *pathloc     /* IN/OUT */         
)                                                                     
{                                                                     
    8274:	e1a04003 	mov	r4, r3                                        
  IMFS_jnode_t      *new_node;                                        
  int                result;                                          
  char               new_name[ IMFS_NAME_MAX + 1 ];                   
  IMFS_types_union   info;                                            
                                                                      
  IMFS_get_token( token, new_name, &result );                         
    8278:	ebffff82 	bl	8088 <IMFS_get_token>                          
                                                                      
  /*                                                                  
   *  Figure out what type of IMFS node this is.                      
   */                                                                 
                                                                      
  if ( S_ISDIR(mode) )                                                
    827c:	e2063a0f 	and	r3, r6, #61440	; 0xf000                       
    8280:	e3530901 	cmp	r3, #16384	; 0x4000                           
    8284:	0a00000b 	beq	82b8 <IMFS_mknod+0x5c>                        
    type = IMFS_DIRECTORY;                                            
  else if ( S_ISREG(mode) )                                           
    8288:	e3530902 	cmp	r3, #32768	; 0x8000                           
    828c:	03a01005 	moveq	r1, #5	; 0x5                                
    8290:	0a000009 	beq	82bc <IMFS_mknod+0x60>                        
    type = IMFS_MEMORY_FILE;                                          
  else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {                        
    8294:	e3530a02 	cmp	r3, #8192	; 0x2000                            
    8298:	13530a06 	cmpne	r3, #24576	; 0x6000                         
    type = IMFS_DEVICE;                                               
    rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
    829c:	058d5028 	streq	r5, [sp, #40]                               
    82a0:	058d402c 	streq	r4, [sp, #44]                               
    82a4:	03a01002 	moveq	r1, #2	; 0x2                                
                                                                      
  if ( S_ISDIR(mode) )                                                
    type = IMFS_DIRECTORY;                                            
  else if ( S_ISREG(mode) )                                           
    type = IMFS_MEMORY_FILE;                                          
  else if ( S_ISBLK(mode) || S_ISCHR(mode) ) {                        
    82a8:	0a000003 	beq	82bc <IMFS_mknod+0x60>                        
    type = IMFS_DEVICE;                                               
    rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor );
  } else  {                                                           
    rtems_set_errno_and_return_minus_one( EINVAL );                   
    82ac:	eb000958 	bl	a814 <__errno>                                 <== NOT EXECUTED
    82b0:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
    82b4:	ea00000b 	b	82e8 <IMFS_mknod+0x8c>                          <== NOT EXECUTED
    82b8:	e3a01001 	mov	r1, #1	; 0x1                                  
                                                                      
  /*                                                                  
   *  Allocate and fill in an IMFS jnode                              
   */                                                                 
                                                                      
  new_node = IMFS_create_node(                                        
    82bc:	e28dc028 	add	ip, sp, #40	; 0x28                            
    82c0:	e59d004c 	ldr	r0, [sp, #76]                                 
    82c4:	e1a03006 	mov	r3, r6                                        
    82c8:	e28d2007 	add	r2, sp, #7	; 0x7                              
    82cc:	e58dc000 	str	ip, [sp]                                      
    82d0:	eb000765 	bl	a06c <IMFS_create_node>                        
    new_name,                                                         
    mode,                                                             
    &info                                                             
  );                                                                  
                                                                      
  if ( !new_node )                                                    
    82d4:	e3500000 	cmp	r0, #0	; 0x0                                  
    82d8:	13a00000 	movne	r0, #0	; 0x0                                
    82dc:	1a000003 	bne	82f0 <IMFS_mknod+0x94>                        
    rtems_set_errno_and_return_minus_one( ENOMEM );                   
    82e0:	eb00094b 	bl	a814 <__errno>                                 <== NOT EXECUTED
    82e4:	e3a0300c 	mov	r3, #12	; 0xc                                 <== NOT EXECUTED
    82e8:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    82ec:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
    82f0:	e28dd03c 	add	sp, sp, #60	; 0x3c                            
    82f4:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

00008304 <IMFS_rmnod>: */ int IMFS_rmnod( rtems_filesystem_location_info_t *pathloc /* IN */ ) {
    8304:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  IMFS_jnode_t *the_jnode;                                            
                                                                      
  the_jnode = (IMFS_jnode_t *) pathloc->node_access;                  
    8308:	e5904000 	ldr	r4, [r0]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Take the node out of the parent's chain that contains this node  
   */                                                                 
                                                                      
  if ( the_jnode->Parent != NULL ) {                                  
    830c:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
    8310:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
 */                                                                   
                                                                      
int IMFS_rmnod(                                                       
  rtems_filesystem_location_info_t      *pathloc       /* IN */       
)                                                                     
{                                                                     
    8314:	e24dd008 	sub	sp, sp, #8	; 0x8                              <== NOT EXECUTED
    8318:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Take the node out of the parent's chain that contains this node  
   */                                                                 
                                                                      
  if ( the_jnode->Parent != NULL ) {                                  
    831c:	0a000003 	beq	8330 <IMFS_rmnod+0x2c>                        <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE void rtems_chain_extract(                        
  rtems_chain_node *the_node                                          
)                                                                     
{                                                                     
  _Chain_Extract( the_node );                                         
    8320:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    8324:	eb000461 	bl	94b0 <_Chain_Extract>                          <== NOT EXECUTED
    rtems_chain_extract( (rtems_chain_node *) the_jnode );            
    the_jnode->Parent = NULL;                                         
    8328:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    832c:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Decrement the link counter and see if we can free the space.     
   */                                                                 
                                                                      
  the_jnode->st_nlink--;                                              
    8330:	e1d433b4 	ldrh	r3, [r4, #52]                                <== NOT EXECUTED
    8334:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    8338:	e1c433b4 	strh	r3, [r4, #52]                                <== NOT EXECUTED
  IMFS_update_ctime( the_jnode );                                     
    833c:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    8340:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    8344:	eb00013f 	bl	8848 <gettimeofday>                            <== NOT EXECUTED
    8348:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   * The file cannot be open and the link must be less than 1 to free.
   */                                                                 
                                                                      
  if ( !rtems_libio_is_file_open( the_jnode ) && (the_jnode->st_nlink < 1) ) {
    834c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
  /*                                                                  
   * Decrement the link counter and see if we can free the space.     
   */                                                                 
                                                                      
  the_jnode->st_nlink--;                                              
  IMFS_update_ctime( the_jnode );                                     
    8350:	e5843048 	str	r3, [r4, #72]                                 <== NOT EXECUTED
                                                                      
  /*                                                                  
   * The file cannot be open and the link must be less than 1 to free.
   */                                                                 
                                                                      
  if ( !rtems_libio_is_file_open( the_jnode ) && (the_jnode->st_nlink < 1) ) {
    8354:	eb000167 	bl	88f8 <rtems_libio_is_file_open>                <== NOT EXECUTED
    8358:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    835c:	1a000010 	bne	83a4 <IMFS_rmnod+0xa0>                        <== NOT EXECUTED
    8360:	e1d403b4 	ldrh	r0, [r4, #52]                                <== NOT EXECUTED
    8364:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    8368:	1a00000d 	bne	83a4 <IMFS_rmnod+0xa0>                        <== NOT EXECUTED
                                                                      
    /*                                                                
     * Is rtems_filesystem_current this node?                         
     */                                                               
                                                                      
    if ( rtems_filesystem_current.node_access == pathloc->node_access )
    836c:	e59f303c 	ldr	r3, [pc, #60]	; 83b0 <IMFS_rmnod+0xac>        <== NOT EXECUTED
    8370:	e5931000 	ldr	r1, [r3]                                      <== NOT EXECUTED
    8374:	e5952000 	ldr	r2, [r5]                                      <== NOT EXECUTED
    8378:	e5913004 	ldr	r3, [r1, #4]                                  <== NOT EXECUTED
    837c:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
                                                                      
    /*                                                                
     * Free memory associated with a memory file.                     
     */                                                               
                                                                      
    if ( the_jnode->type == IMFS_SYM_LINK ) {                         
    8380:	e594304c 	ldr	r3, [r4, #76]                                 <== NOT EXECUTED
    /*                                                                
     * Is rtems_filesystem_current this node?                         
     */                                                               
                                                                      
    if ( rtems_filesystem_current.node_access == pathloc->node_access )
       rtems_filesystem_current.node_access = NULL;                   
    8384:	05810004 	streq	r0, [r1, #4]                                <== NOT EXECUTED
                                                                      
    /*                                                                
     * Free memory associated with a memory file.                     
     */                                                               
                                                                      
    if ( the_jnode->type == IMFS_SYM_LINK ) {                         
    8388:	e3530004 	cmp	r3, #4	; 0x4                                  <== NOT EXECUTED
    838c:	1a000002 	bne	839c <IMFS_rmnod+0x98>                        <== NOT EXECUTED
      if ( the_jnode->info.sym_link.name )                            
    8390:	e5940050 	ldr	r0, [r4, #80]                                 <== NOT EXECUTED
    8394:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
        free( (void*) the_jnode->info.sym_link.name );                
    8398:	1b0000cc 	blne	86d0 <free>                                  <== NOT EXECUTED
    }                                                                 
    free( the_jnode );                                                
    839c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    83a0:	eb0000ca 	bl	86d0 <free>                                    <== NOT EXECUTED
  }                                                                   
                                                                      
  return 0;                                                           
                                                                      
}                                                                     
    83a4:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    83a8:	e28dd008 	add	sp, sp, #8	; 0x8                              <== NOT EXECUTED
    83ac:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

000083b4 <IMFS_stat>: ) { IMFS_jnode_t *the_jnode; IMFS_device_t *io; the_jnode = loc->node_access;
    83b4:	e5900000 	ldr	r0, [r0]                                      
                                                                      
                                                                      
  switch ( the_jnode->type ) {                                        
    83b8:	e590304c 	ldr	r3, [r0, #76]                                 
    83bc:	e2433002 	sub	r3, r3, #2	; 0x2                              
                                                                      
int IMFS_stat(                                                        
  rtems_filesystem_location_info_t *loc,                              
  struct stat                      *buf                               
)                                                                     
{                                                                     
    83c0:	e92d4010 	push	{r4, lr}                                     
    83c4:	e1a0c001 	mov	ip, r1                                        
  IMFS_device_t  *io;                                                 
                                                                      
  the_jnode = loc->node_access;                                       
                                                                      
                                                                      
  switch ( the_jnode->type ) {                                        
    83c8:	e3530004 	cmp	r3, #4	; 0x4                                  
    83cc:	979ff103 	ldrls	pc, [pc, r3, lsl #2]                        
    83d0:	ea00000d 	b	840c <IMFS_stat+0x58>                           <== NOT EXECUTED
    83d4:	000083e8 	.word	0x000083e8                                  <== NOT EXECUTED
    83d8:	0000840c 	.word	0x0000840c                                  <== NOT EXECUTED
    83dc:	00008400 	.word	0x00008400                                  <== NOT EXECUTED
    83e0:	000083f8 	.word	0x000083f8                                  <== NOT EXECUTED
    83e4:	000083f8 	.word	0x000083f8                                  <== NOT EXECUTED
                                                                      
    case IMFS_DEVICE:                                                 
      io          = &the_jnode->info.device;                          
      buf->st_dev = rtems_filesystem_make_dev_t( io->major, io->minor );
    83e8:	e2802050 	add	r2, r0, #80	; 0x50                            
    83ec:	e892000c 	ldm	r2, {r2, r3}                                  
    83f0:	e881000c 	stm	r1, {r2, r3}                                  
    83f4:	ea000009 	b	8420 <IMFS_stat+0x6c>                           
      break;                                                          
                                                                      
    case IMFS_LINEAR_FILE:                                            
    case IMFS_MEMORY_FILE:                                            
      buf->st_size = the_jnode->info.file.size;                       
    83f8:	e5903050 	ldr	r3, [r0, #80]                                 <== NOT EXECUTED
    83fc:	ea000000 	b	8404 <IMFS_stat+0x50>                           <== NOT EXECUTED
      break;                                                          
                                                                      
    case IMFS_SYM_LINK:                                               
      buf->st_size = 0;                                               
    8400:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    8404:	e58c3020 	str	r3, [ip, #32]                                 <== NOT EXECUTED
    8408:	ea000004 	b	8420 <IMFS_stat+0x6c>                           <== NOT EXECUTED
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
    840c:	eb000900 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8410:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    8414:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8418:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    841c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
      break;                                                          
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
  buf->st_nlink = the_jnode->st_nlink;                                
  buf->st_ino   = the_jnode->st_ino;                                  
    8420:	e5903038 	ldr	r3, [r0, #56]                                 
    8424:	e58c3008 	str	r3, [ip, #8]                                  
  buf->st_uid   = the_jnode->st_uid;                                  
  buf->st_gid   = the_jnode->st_gid;                                  
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
    8428:	e5903040 	ldr	r3, [r0, #64]                                 
    842c:	e58c3024 	str	r3, [ip, #36]                                 
  buf->st_mtime = the_jnode->stat_mtime;                              
    8430:	e5903044 	ldr	r3, [r0, #68]                                 
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
      break;                                                          
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
  buf->st_nlink = the_jnode->st_nlink;                                
    8434:	e1d043b4 	ldrh	r4, [r0, #52]                                
  buf->st_ino   = the_jnode->st_ino;                                  
  buf->st_uid   = the_jnode->st_uid;                                  
  buf->st_gid   = the_jnode->st_gid;                                  
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
    8438:	e58c302c 	str	r3, [ip, #44]                                 
  buf->st_ctime = the_jnode->stat_ctime;                              
                                                                      
  buf->st_blksize = imfs_rq_memfile_bytes_per_block;                  
    843c:	e59f3030 	ldr	r3, [pc, #48]	; 8474 <IMFS_stat+0xc0>         
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
      break;                                                          
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
  buf->st_nlink = the_jnode->st_nlink;                                
    8440:	e1cc41b0 	strh	r4, [ip, #16]                                
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
  buf->st_ctime = the_jnode->stat_ctime;                              
                                                                      
  buf->st_blksize = imfs_rq_memfile_bytes_per_block;                  
    8444:	e5933000 	ldr	r3, [r3]                                      
  buf->st_uid   = the_jnode->st_uid;                                  
  buf->st_gid   = the_jnode->st_gid;                                  
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
  buf->st_ctime = the_jnode->stat_ctime;                              
    8448:	e5901048 	ldr	r1, [r0, #72]                                 
                                                                      
  buf->st_blksize = imfs_rq_memfile_bytes_per_block;                  
    844c:	e58c303c 	str	r3, [ip, #60]                                 
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
  buf->st_nlink = the_jnode->st_nlink;                                
  buf->st_ino   = the_jnode->st_ino;                                  
  buf->st_uid   = the_jnode->st_uid;                                  
    8450:	e1d033bc 	ldrh	r3, [r0, #60]                                
    8454:	e1cc31b2 	strh	r3, [ip, #18]                                
    default:                                                          
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
      break;                                                          
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
    8458:	e5902030 	ldr	r2, [r0, #48]                                 
  buf->st_nlink = the_jnode->st_nlink;                                
  buf->st_ino   = the_jnode->st_ino;                                  
  buf->st_uid   = the_jnode->st_uid;                                  
  buf->st_gid   = the_jnode->st_gid;                                  
    845c:	e1d003be 	ldrh	r0, [r0, #62]                                
    default:                                                          
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
      break;                                                          
  }                                                                   
                                                                      
  buf->st_mode  = the_jnode->st_mode;                                 
    8460:	e58c200c 	str	r2, [ip, #12]                                 
  buf->st_nlink = the_jnode->st_nlink;                                
  buf->st_ino   = the_jnode->st_ino;                                  
  buf->st_uid   = the_jnode->st_uid;                                  
  buf->st_gid   = the_jnode->st_gid;                                  
    8464:	e1cc01b4 	strh	r0, [ip, #20]                                
                                                                      
  buf->st_atime = the_jnode->stat_atime;                              
  buf->st_mtime = the_jnode->stat_mtime;                              
  buf->st_ctime = the_jnode->stat_ctime;                              
    8468:	e58c1034 	str	r1, [ip, #52]                                 
                                                                      
  buf->st_blksize = imfs_rq_memfile_bytes_per_block;                  
    846c:	e3a00000 	mov	r0, #0	; 0x0                                  
                                                                      
  return 0;                                                           
}                                                                     
    8470:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

000014f4 <RTEMS_Malloc_Initialize>: #endif /* * If configured, initialize the statistics support */ if ( rtems_malloc_statistics_helpers )
    14f4:	e59f3094 	ldr	r3, [pc, #148]	; 1590 <RTEMS_Malloc_Initialize+0x9c>
    14f8:	e5933000 	ldr	r3, [r3]                                      
    14fc:	e3530000 	cmp	r3, #0	; 0x0                                  
void RTEMS_Malloc_Initialize(                                         
  void   *start,                                                      
  size_t  length,                                                     
  size_t  sbrk_amount                                                 
)                                                                     
{                                                                     
    1500:	e92d4070 	push	{r4, r5, r6, lr}                             
    1504:	e1a04000 	mov	r4, r0                                        
    1508:	e1a05001 	mov	r5, r1                                        
    150c:	e1a06002 	mov	r6, r2                                        
                                                                      
  /*                                                                  
   *  If configured, initialize the statistics support                
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    (*rtems_malloc_statistics_helpers->initialize)();                 
    1510:	11a0e00f 	movne	lr, pc                                      
    1514:	1593f000 	ldrne	pc, [r3]                                    
                                                                      
  /*                                                                  
   *  Initialize the garbage collection list to start with nothing on it.
   */                                                                 
  malloc_deferred_frees_initialize();                                 
    1518:	eb001d9b 	bl	8b8c <malloc_deferred_frees_initialize>        
  starting_address = start;                                           
                                                                      
  /*                                                                  
   *  Initialize the optional sbrk support for extending the heap     
   */                                                                 
  if (rtems_malloc_sbrk_helpers) {                                    
    151c:	e59f3070 	ldr	r3, [pc, #112]	; 1594 <RTEMS_Malloc_Initialize+0xa0>
    1520:	e5933000 	ldr	r3, [r3]                                      
    1524:	e3530000 	cmp	r3, #0	; 0x0                                  
    1528:	0a000004 	beq	1540 <RTEMS_Malloc_Initialize+0x4c>           
    starting_address = (*rtems_malloc_sbrk_helpers->initialize)(      
    152c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    1530:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    1534:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1538:	e593f000 	ldr	pc, [r3]                                      <== NOT EXECUTED
    153c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
   *  of the time under UNIX because zero'ing memory when it is first 
   *  given to a process eliminates the chance of a process seeing data
   *  left over from another process.  This would be a security violation.
   */                                                                 
                                                                      
  if ( rtems_configuration_get_do_zero_of_workspace() )               
    1540:	e59f3050 	ldr	r3, [pc, #80]	; 1598 <RTEMS_Malloc_Initialize+0xa4>
    1544:	e5933000 	ldr	r3, [r3]                                      
    1548:	e5d33028 	ldrb	r3, [r3, #40]                                
    154c:	e3530000 	cmp	r3, #0	; 0x0                                  
     memset( starting_address, 0, length );                           
    1550:	11a00004 	movne	r0, r4                                      
    1554:	13a01000 	movne	r1, #0	; 0x0                                
    1558:	11a02005 	movne	r2, r5                                      
    155c:	1b0026b5 	blne	b038 <memset>                                
  void         *starting_address,                                     
  size_t        size,                                                 
  uint32_t      page_size                                             
)                                                                     
{                                                                     
  return _Heap_Initialize( the_heap, starting_address, size, page_size );
    1560:	e1a01004 	mov	r1, r4                                        
    1564:	e59f0030 	ldr	r0, [pc, #48]	; 159c <RTEMS_Malloc_Initialize+0xa8>
    1568:	e1a02005 	mov	r2, r5                                        
    156c:	e3a03004 	mov	r3, #4	; 0x4                                  
    1570:	eb000f37 	bl	5254 <_Heap_Initialize>                        
    &RTEMS_Malloc_Heap,                                               
    starting_address,                                                 
    length,                                                           
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
  if ( !status )                                                      
    1574:	e3500000 	cmp	r0, #0	; 0x0                                  
    rtems_fatal_error_occurred( status );                             
    1578:	0b000d28 	bleq	4a20 <rtems_fatal_error_occurred>            
      rtems_print_buffer( (start + length) - 48, 48 );                
      rtems_fatal_error_occurred( RTEMS_NO_MEMORY );                  
    }                                                                 
  #endif                                                              
                                                                      
  MSBUMP(space_available, length);                                    
    157c:	e59f201c 	ldr	r2, [pc, #28]	; 15a0 <RTEMS_Malloc_Initialize+0xac>
    1580:	e5923000 	ldr	r3, [r2]                                      
    1584:	e0853003 	add	r3, r5, r3                                    
    1588:	e5823000 	str	r3, [r2]                                      
}                                                                     
    158c:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

000019bc <Stack_check_Dump_threads_usage>: static rtems_printk_plugin_t print_handler; void Stack_check_Dump_threads_usage( Thread_Control *the_thread ) {
    19bc:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             <== NOT EXECUTED
  void           *high_water_mark;                                    
  void           *current;                                            
  Stack_Control  *stack;                                              
  char            name[5];                                            
                                                                      
  if ( !the_thread )                                                  
    19c0:	e2504000 	subs	r4, r0, #0	; 0x0                             <== NOT EXECUTED
static rtems_printk_plugin_t   print_handler;                         
                                                                      
void Stack_check_Dump_threads_usage(                                  
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
    19c4:	e24dd010 	sub	sp, sp, #16	; 0x10                            <== NOT EXECUTED
  void           *high_water_mark;                                    
  void           *current;                                            
  Stack_Control  *stack;                                              
  char            name[5];                                            
                                                                      
  if ( !the_thread )                                                  
    19c8:	0a000047 	beq	1aec <Stack_check_Dump_threads_usage+0x130>   <== NOT EXECUTED
    return;                                                           
                                                                      
  if ( !print_handler )                                               
    19cc:	e59f3120 	ldr	r3, [pc, #288]	; 1af4 <Stack_check_Dump_threads_usage+0x138><== NOT EXECUTED
    19d0:	e5938000 	ldr	r8, [r3]                                      <== NOT EXECUTED
    19d4:	e3580000 	cmp	r8, #0	; 0x0                                  <== NOT EXECUTED
    19d8:	0a000043 	beq	1aec <Stack_check_Dump_threads_usage+0x130>   <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Obtain interrupt stack information                              
   */                                                                 
                                                                      
  if (the_thread == (Thread_Control *) -1) {                          
    19dc:	e3740001 	cmn	r4, #1	; 0x1                                  <== NOT EXECUTED
    }                                                                 
    else                                                              
      return;                                                         
  } else {                                                            
    stack  = &the_thread->Start.Initial_stack;                        
    current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );  
    19e0:	159490f4 	ldrne	r9, [r4, #244]                              <== NOT EXECUTED
      current = 0;                                                    
    }                                                                 
    else                                                              
      return;                                                         
  } else {                                                            
    stack  = &the_thread->Start.Initial_stack;                        
    19e4:	128460c4 	addne	r6, r4, #196	; 0xc4                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Obtain interrupt stack information                              
   */                                                                 
                                                                      
  if (the_thread == (Thread_Control *) -1) {                          
    19e8:	1a000006 	bne	1a08 <Stack_check_Dump_threads_usage+0x4c>    <== NOT EXECUTED
    if (Stack_check_Interrupt_stack.area) {                           
    19ec:	e59f2104 	ldr	r2, [pc, #260]	; 1af8 <Stack_check_Dump_threads_usage+0x13c><== NOT EXECUTED
    19f0:	e5923004 	ldr	r3, [r2, #4]                                  <== NOT EXECUTED
    19f4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
      stack = &Stack_check_Interrupt_stack;                           
      the_thread = 0;                                                 
      current = 0;                                                    
    }                                                                 
    else                                                              
      return;                                                         
    19f8:	12844001 	addne	r4, r4, #1	; 0x1                            <== NOT EXECUTED
    19fc:	11a06002 	movne	r6, r2                                      <== NOT EXECUTED
    1a00:	11a09004 	movne	r9, r4                                      <== NOT EXECUTED
  /*                                                                  
   *  Obtain interrupt stack information                              
   */                                                                 
                                                                      
  if (the_thread == (Thread_Control *) -1) {                          
    if (Stack_check_Interrupt_stack.area) {                           
    1a04:	0a000038 	beq	1aec <Stack_check_Dump_threads_usage+0x130>   <== NOT EXECUTED
  } else {                                                            
    stack  = &the_thread->Start.Initial_stack;                        
    current = (void *)_CPU_Context_Get_SP( &the_thread->Registers );  
  }                                                                   
                                                                      
  low  = Stack_check_usable_stack_start(stack);                       
    1a08:	e896000c 	ldm	r6, {r2, r3}                                  <== NOT EXECUTED
    1a0c:	e2835010 	add	r5, r3, #16	; 0x10                            <== NOT EXECUTED
  size = Stack_check_usable_stack_size(stack);                        
    1a10:	e2427010 	sub	r7, r2, #16	; 0x10                            <== NOT EXECUTED
                                                                      
  high_water_mark = Stack_check_find_high_water_mark(low, size);      
    1a14:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    1a18:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
    1a1c:	ebffffd8 	bl	1984 <Stack_check_find_high_water_mark>        <== NOT EXECUTED
                                                                      
  if ( high_water_mark )                                              
    1a20:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    used = Stack_check_Calculate_used( low, size, high_water_mark );  
    1a24:	10853007 	addne	r3, r5, r7                                  <== NOT EXECUTED
  low  = Stack_check_usable_stack_start(stack);                       
  size = Stack_check_usable_stack_size(stack);                        
                                                                      
  high_water_mark = Stack_check_find_high_water_mark(low, size);      
                                                                      
  if ( high_water_mark )                                              
    1a28:	01a0a000 	moveq	sl, r0                                      <== NOT EXECUTED
    used = Stack_check_Calculate_used( low, size, high_water_mark );  
    1a2c:	1060a003 	rsbne	sl, r0, r3                                  <== NOT EXECUTED
  else                                                                
    used = 0;                                                         
                                                                      
  if ( the_thread ) {                                                 
    1a30:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    1a34:	e59f00c0 	ldr	r0, [pc, #192]	; 1afc <Stack_check_Dump_threads_usage+0x140><== NOT EXECUTED
    1a38:	0a00000c 	beq	1a70 <Stack_check_Dump_threads_usage+0xb4>    <== NOT EXECUTED
    (*print_handler)(                                                 
    1a3c:	e5944008 	ldr	r4, [r4, #8]                                  <== NOT EXECUTED
    1a40:	e5905000 	ldr	r5, [r0]                                      <== NOT EXECUTED
    1a44:	e28d200b 	add	r2, sp, #11	; 0xb                             <== NOT EXECUTED
    1a48:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    1a4c:	e3a01005 	mov	r1, #5	; 0x5                                  <== NOT EXECUTED
    1a50:	eb000dbd 	bl	514c <rtems_object_get_name>                   <== NOT EXECUTED
    1a54:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    1a58:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
    1a5c:	e59f109c 	ldr	r1, [pc, #156]	; 1b00 <Stack_check_Dump_threads_usage+0x144><== NOT EXECUTED
    1a60:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    1a64:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1a68:	e12fff18 	bx	r8                                             <== NOT EXECUTED
    1a6c:	ea000004 	b	1a84 <Stack_check_Dump_threads_usage+0xc8>      <== NOT EXECUTED
      "0x%08" PRIx32 "  %4s",                                         
      the_thread->Object.id,                                          
      rtems_object_get_name( the_thread->Object.id, sizeof(name), name )
    );                                                                
  } else {                                                            
    (*print_handler)( print_context, "0x%08" PRIx32 "  INTR", ~0 );   
    1a70:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
    1a74:	e59f1088 	ldr	r1, [pc, #136]	; 1b04 <Stack_check_Dump_threads_usage+0x148><== NOT EXECUTED
    1a78:	e3e02000 	mvn	r2, #0	; 0x0                                  <== NOT EXECUTED
    1a7c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1a80:	e12fff18 	bx	r8                                             <== NOT EXECUTED
  }                                                                   
                                                                      
  (*print_handler)(                                                   
    1a84:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
    1a88:	e5962004 	ldr	r2, [r6, #4]                                  <== NOT EXECUTED
    1a8c:	e59f5068 	ldr	r5, [pc, #104]	; 1afc <Stack_check_Dump_threads_usage+0x140><== NOT EXECUTED
    1a90:	e58d9000 	str	r9, [sp]                                      <== NOT EXECUTED
    1a94:	e58d7004 	str	r7, [sp, #4]                                  <== NOT EXECUTED
    1a98:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    1a9c:	e0823003 	add	r3, r2, r3                                    <== NOT EXECUTED
    1aa0:	e59f404c 	ldr	r4, [pc, #76]	; 1af4 <Stack_check_Dump_threads_usage+0x138><== NOT EXECUTED
    1aa4:	e5950000 	ldr	r0, [r5]                                      <== NOT EXECUTED
    1aa8:	e59f1058 	ldr	r1, [pc, #88]	; 1b08 <Stack_check_Dump_threads_usage+0x14c><== NOT EXECUTED
    1aac:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1ab0:	e594f000 	ldr	pc, [r4]                                      <== NOT EXECUTED
    stack->area + stack->size - 1,                                    
    current,                                                          
    size                                                              
  );                                                                  
                                                                      
  if (Stack_check_Initialized == 0) {                                 
    1ab4:	e59f3050 	ldr	r3, [pc, #80]	; 1b0c <Stack_check_Dump_threads_usage+0x150><== NOT EXECUTED
    1ab8:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    1abc:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1ac0:	1a000004 	bne	1ad8 <Stack_check_Dump_threads_usage+0x11c>   <== NOT EXECUTED
    (*print_handler)( print_context, "Unavailable\n" );               
    1ac4:	e5950000 	ldr	r0, [r5]                                      <== NOT EXECUTED
    1ac8:	e59f1040 	ldr	r1, [pc, #64]	; 1b10 <Stack_check_Dump_threads_usage+0x154><== NOT EXECUTED
    1acc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1ad0:	e594f000 	ldr	pc, [r4]                                      <== NOT EXECUTED
    1ad4:	ea000004 	b	1aec <Stack_check_Dump_threads_usage+0x130>     <== NOT EXECUTED
  } else {                                                            
    (*print_handler)( print_context, "%8" PRId32 "\n", used );        
    1ad8:	e5950000 	ldr	r0, [r5]                                      <== NOT EXECUTED
    1adc:	e1a0200a 	mov	r2, sl                                        <== NOT EXECUTED
    1ae0:	e59f102c 	ldr	r1, [pc, #44]	; 1b14 <Stack_check_Dump_threads_usage+0x158><== NOT EXECUTED
    1ae4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1ae8:	e594f000 	ldr	pc, [r4]                                      <== NOT EXECUTED
  }                                                                   
                                                                      
                                                                      
}                                                                     
    1aec:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    1af0:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      

00001984 <Stack_check_find_high_water_mark>: * start at lower memory and find first word that does not * match pattern */ base += PATTERN_SIZE_WORDS; for (ebase = base + length; base < ebase; base++)
    1984:	e3c11003 	bic	r1, r1, #3	; 0x3                              <== NOT EXECUTED
    /*                                                                
     * start at lower memory and find first word that does not        
     * match pattern                                                  
     */                                                               
                                                                      
    base += PATTERN_SIZE_WORDS;                                       
    1988:	e2800010 	add	r0, r0, #16	; 0x10                            <== NOT EXECUTED
    for (ebase = base + length; base < ebase; base++)                 
    198c:	e0802001 	add	r2, r0, r1                                    <== NOT EXECUTED
      if (*base != U32_PATTERN)                                       
    1990:	e59f1020 	ldr	r1, [pc, #32]	; 19b8 <Stack_check_find_high_water_mark+0x34><== NOT EXECUTED
    1994:	ea000003 	b	19a8 <Stack_check_find_high_water_mark+0x24>    <== NOT EXECUTED
    1998:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
    199c:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
    19a0:	112fff1e 	bxne	lr                                           <== NOT EXECUTED
     * start at lower memory and find first word that does not        
     * match pattern                                                  
     */                                                               
                                                                      
    base += PATTERN_SIZE_WORDS;                                       
    for (ebase = base + length; base < ebase; base++)                 
    19a4:	e2800004 	add	r0, r0, #4	; 0x4                              <== NOT EXECUTED
    19a8:	e1500002 	cmp	r0, r2                                        <== NOT EXECUTED
    19ac:	3afffff9 	bcc	1998 <Stack_check_find_high_water_mark+0x14>  <== NOT EXECUTED
    19b0:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
      if (*base != U32_PATTERN)                                       
        return (void *) base;                                         
  #endif                                                              
                                                                      
  return (void *)0;                                                   
}                                                                     
    19b4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00011ac0 <_CORE_message_queue_Broadcast>: { Thread_Control *the_thread; uint32_t number_broadcasted; Thread_Wait_information *waitp; if ( size > the_message_queue->maximum_message_size ) {
   11ac0:	e590304c 	ldr	r3, [r0, #76]                                 
  size_t                                     size,                    
  Objects_Id                                 id,                      
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  uint32_t                                  *count                    
)                                                                     
{                                                                     
   11ac4:	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 ) {             
   11ac8:	e1520003 	cmp	r2, r3                                        
  size_t                                     size,                    
  Objects_Id                                 id,                      
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  uint32_t                                  *count                    
)                                                                     
{                                                                     
   11acc:	e1a07000 	mov	r7, r0                                        
   11ad0:	e1a06002 	mov	r6, r2                                        
   11ad4:	e1a08001 	mov	r8, r1                                        
   11ad8:	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 ) {             
   11adc:	83a00001 	movhi	r0, #1	; 0x1                                
   11ae0:	88bd85f0 	pophi	{r4, r5, r6, r7, r8, sl, pc}                
   *  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 ) {         
   11ae4:	e5973048 	ldr	r3, [r7, #72]                                 
   11ae8:	e3530000 	cmp	r3, #0	; 0x0                                  
    *count = 0;                                                       
   11aec:	13a03000 	movne	r3, #0	; 0x0                                
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
                                                                      
  number_broadcasted = 0;                                             
  while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {
   11af0:	01a05003 	moveq	r5, r3                                      
   *        send and receive and this ensures that we are broadcasting
   *        the message to threads waiting to receive -- not to send. 
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages != 0 ) {         
    *count = 0;                                                       
   11af4:	158a3000 	strne	r3, [sl]                                    
   11af8:	11a00003 	movne	r0, r3                                      
   *  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 ) {         
   11afc:	0a000005 	beq	11b18 <_CORE_message_queue_Broadcast+0x58>    
   11b00:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   11b04:	e594002c 	ldr	r0, [r4, #44]                                 
   11b08:	eb001c55 	bl	18c64 <memcpy>                                 
      buffer,                                                         
      waitp->return_argument_second.mutable_object,                   
      size                                                            
    );                                                                
                                                                      
    *(size_t *) the_thread->Wait.return_argument = size;              
   11b0c:	e5943028 	ldr	r3, [r4, #40]                                 
   11b10:	e5836000 	str	r6, [r3]                                      
   */                                                                 
                                                                      
  number_broadcasted = 0;                                             
  while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {
    waitp = &the_thread->Wait;                                        
    number_broadcasted += 1;                                          
   11b14:	e2855001 	add	r5, r5, #1	; 0x1                              
   *  There must be no pending messages if there is a thread waiting to
   *  receive a message.                                              
   */                                                                 
                                                                      
  number_broadcasted = 0;                                             
  while ((the_thread = _Thread_queue_Dequeue(&the_message_queue->Wait_queue))) {
   11b18:	e1a00007 	mov	r0, r7                                        
   11b1c:	eb00092d 	bl	13fd8 <_Thread_queue_Dequeue>                  
   11b20:	e2504000 	subs	r4, r0, #0	; 0x0                             
   11b24:	e1a01008 	mov	r1, r8                                        
   11b28:	e1a02006 	mov	r2, r6                                        
   11b2c:	1afffff4 	bne	11b04 <_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;                                        
   11b30:	e58a5000 	str	r5, [sl]                                      
   11b34:	e1a00004 	mov	r0, r4                                        
  return CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL;                        
}                                                                     
   11b38:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      

00017458 <_CORE_message_queue_Insert_message>: ISR_Level level; bool notify = false; the_message->priority = submit_type; switch ( submit_type ) {
   17458:	e3520102 	cmp	r2, #-2147483648	; 0x80000000                 
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                      
)                                                                     
{                                                                     
   1745c:	e92d4030 	push	{r4, r5, lr}                                 
  ISR_Level  level;                                                   
  bool       notify = false;                                          
                                                                      
  the_message->priority = submit_type;                                
   17460:	e5812008 	str	r2, [r1, #8]                                  
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                      
)                                                                     
{                                                                     
   17464:	e1a05001 	mov	r5, r1                                        
   17468:	e1a04000 	mov	r4, r0                                        
  ISR_Level  level;                                                   
  bool       notify = false;                                          
                                                                      
  the_message->priority = submit_type;                                
                                                                      
  switch ( submit_type ) {                                            
   1746c:	0a000012 	beq	174bc <_CORE_message_queue_Insert_message+0x64>
   17470:	e3720106 	cmn	r2, #-2147483647	; 0x80000001                 
   17474:	e280c054 	add	ip, r0, #84	; 0x54                            
        CORE_message_queue_Buffer_control *this_message;              
        Chain_Node                        *the_node;                  
        Chain_Control                     *the_header;                
                                                                      
        the_header = &the_message_queue->Pending_messages;            
        the_node = the_header->first;                                 
   17478:	15901050 	ldrne	r1, [r0, #80]                               
  ISR_Level  level;                                                   
  bool       notify = false;                                          
                                                                      
  the_message->priority = submit_type;                                
                                                                      
  switch ( submit_type ) {                                            
   1747c:	1a000022 	bne	1750c <_CORE_message_queue_Insert_message+0xb4>
    case CORE_MESSAGE_QUEUE_SEND_REQUEST:                             
      _ISR_Disable( level );                                          
   17480:	e10f0000 	mrs	r0, CPSR                                      
   17484:	e38030c0 	orr	r3, r0, #192	; 0xc0                           
   17488:	e129f003 	msr	CPSR_fc, r3                                   
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
   1748c:	e585c000 	str	ip, [r5]                                      
        if ( the_message_queue->number_of_pending_messages++ == 0 )   
   17490:	e5942048 	ldr	r2, [r4, #72]                                 
  old_last_node       = the_chain->last;                              
   17494:	e5941058 	ldr	r1, [r4, #88]                                 
   17498:	e2823001 	add	r3, r2, #1	; 0x1                              
  the_chain->last     = the_node;                                     
   1749c:	e5845058 	str	r5, [r4, #88]                                 
   174a0:	e5843048 	str	r3, [r4, #72]                                 
   174a4:	e2722001 	rsbs	r2, r2, #1	; 0x1                             
   174a8:	33a02000 	movcc	r2, #0	; 0x0                                
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
   174ac:	e5851004 	str	r1, [r5, #4]                                  
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
   174b0:	e5815000 	str	r5, [r1]                                      
          notify = true;                                              
        _CORE_message_queue_Append_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
   174b4:	e129f000 	msr	CPSR_fc, r0                                   
   174b8:	ea000024 	b	17550 <_CORE_message_queue_Insert_message+0xf8> 
      break;                                                          
    case CORE_MESSAGE_QUEUE_URGENT_REQUEST:                           
      _ISR_Disable( level );                                          
   174bc:	e10fc000 	mrs	ip, CPSR                                      
   174c0:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           
   174c4:	e129f003 	msr	CPSR_fc, r3                                   
        if ( the_message_queue->number_of_pending_messages++ == 0 )   
   174c8:	e5901048 	ldr	r1, [r0, #72]                                 
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
   174cc:	e5900050 	ldr	r0, [r0, #80]                                 
   174d0:	e2812001 	add	r2, r1, #1	; 0x1                              
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Head(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) the_chain;                                   
   174d4:	e2843050 	add	r3, r4, #80	; 0x50                            
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
   174d8:	e5853004 	str	r3, [r5, #4]                                  
   174dc:	e5842048 	str	r2, [r4, #72]                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
   174e0:	e5845050 	str	r5, [r4, #80]                                 
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
   174e4:	e5805004 	str	r5, [r0, #4]                                  
   174e8:	e2712001 	rsbs	r2, r1, #1	; 0x1                             
   174ec:	33a02000 	movcc	r2, #0	; 0x0                                
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
   174f0:	e5850000 	str	r0, [r5]                                      
          notify = true;                                              
        _CORE_message_queue_Prepend_unprotected(the_message_queue, the_message);
      _ISR_Enable( level );                                           
   174f4:	e129f00c 	msr	CPSR_fc, ip                                   
   174f8:	ea000014 	b	17550 <_CORE_message_queue_Insert_message+0xf8> 
        the_node = the_header->first;                                 
        while ( !_Chain_Is_tail( the_header, the_node ) ) {           
                                                                      
          this_message = (CORE_message_queue_Buffer_control *) the_node;
                                                                      
          if ( this_message->priority <= the_message->priority ) {    
   174fc:	e5913008 	ldr	r3, [r1, #8]                                  <== NOT EXECUTED
   17500:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
   17504:	ca000002 	bgt	17514 <_CORE_message_queue_Insert_message+0xbc><== NOT EXECUTED
            the_node = the_node->next;                                
   17508:	e5911000 	ldr	r1, [r1]                                      <== NOT EXECUTED
        Chain_Node                        *the_node;                  
        Chain_Control                     *the_header;                
                                                                      
        the_header = &the_message_queue->Pending_messages;            
        the_node = the_header->first;                                 
        while ( !_Chain_Is_tail( the_header, the_node ) ) {           
   1750c:	e151000c 	cmp	r1, ip                                        <== NOT EXECUTED
   17510:	1afffff9 	bne	174fc <_CORE_message_queue_Insert_message+0xa4><== NOT EXECUTED
            continue;                                                 
          }                                                           
                                                                      
          break;                                                      
        }                                                             
        _ISR_Disable( level );                                        
   17514:	e10fc000 	mrs	ip, CPSR                                      <== NOT EXECUTED
   17518:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           <== NOT EXECUTED
   1751c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
          if ( the_message_queue->number_of_pending_messages++ == 0 ) 
            notify = true;                                            
          _Chain_Insert_unprotected( the_node->previous, &the_message->Node );
   17520:	e5913004 	ldr	r3, [r1, #4]                                  <== NOT EXECUTED
          }                                                           
                                                                      
          break;                                                      
        }                                                             
        _ISR_Disable( level );                                        
          if ( the_message_queue->number_of_pending_messages++ == 0 ) 
   17524:	e5941048 	ldr	r1, [r4, #72]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
   17528:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
   1752c:	e2812001 	add	r2, r1, #1	; 0x1                              <== NOT EXECUTED
  after_node->next      = the_node;                                   
   17530:	e5835000 	str	r5, [r3]                                      <== NOT EXECUTED
   17534:	e5842048 	str	r2, [r4, #72]                                 <== NOT EXECUTED
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
   17538:	e5853004 	str	r3, [r5, #4]                                  <== NOT EXECUTED
   1753c:	e2712001 	rsbs	r2, r1, #1	; 0x1                             <== NOT EXECUTED
   17540:	33a02000 	movcc	r2, #0	; 0x0                                <== NOT EXECUTED
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
   17544:	e5805004 	str	r5, [r0, #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;                                
   17548:	e5850000 	str	r0, [r5]                                      <== NOT EXECUTED
            notify = true;                                            
          _Chain_Insert_unprotected( the_node->previous, &the_message->Node );
        _ISR_Enable( level );                                         
   1754c:	e129f00c 	msr	CPSR_fc, ip                                   <== 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 )                  
   17550:	e3520000 	cmp	r2, #0	; 0x0                                  
   17554:	08bd8030 	popeq	{r4, r5, pc}                                
   17558:	e5943060 	ldr	r3, [r4, #96]                                 
   1755c:	e3530000 	cmp	r3, #0	; 0x0                                  
   17560:	08bd8030 	popeq	{r4, r5, pc}                                
    (*the_message_queue->notify_handler)( the_message_queue->notify_argument );
   17564:	e5940064 	ldr	r0, [r4, #100]                                <== NOT EXECUTED
   17568:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
   1756c:	e12fff13 	bx	r3                                             <== NOT EXECUTED
   17570:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00011c9c <_CORE_message_queue_Seize>: void *buffer, size_t *size_p, bool wait, Watchdog_Interval timeout ) {
   11c9c:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  ISR_Level                          level;                           
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
  Thread_Control                    *the_thread;                      
                                                                      
  executing = _Thread_Executing;                                      
   11ca0:	e59fc128 	ldr	ip, [pc, #296]	; 11dd0 <_CORE_message_queue_Seize+0x134>
   11ca4:	e59cc000 	ldr	ip, [ip]                                      
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   11ca8:	e1a05000 	mov	r5, r0                                        
   11cac:	e1a00003 	mov	r0, r3                                        
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
  Thread_Control                    *the_thread;                      
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
   11cb0:	e3a03000 	mov	r3, #0	; 0x0                                  
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   11cb4:	e59da020 	ldr	sl, [sp, #32]                                 
   11cb8:	e1a07001 	mov	r7, r1                                        
   11cbc:	e1a08002 	mov	r8, r2                                        
  CORE_message_queue_Buffer_control *the_message;                     
  Thread_Control                    *executing;                       
  Thread_Control                    *the_thread;                      
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
   11cc0:	e58c3034 	str	r3, [ip, #52]                                 
  void                            *buffer,                            
  size_t                          *size_p,                            
  bool                             wait,                              
  Watchdog_Interval                timeout                            
)                                                                     
{                                                                     
   11cc4:	e5dd601c 	ldrb	r6, [sp, #28]                                
  Thread_Control                    *executing;                       
  Thread_Control                    *the_thread;                      
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_SUCCESSFUL; 
  _ISR_Disable( level );                                              
   11cc8:	e10f1000 	mrs	r1, CPSR                                      
   11ccc:	e38130c0 	orr	r3, r1, #192	; 0xc0                           
   11cd0:	e129f003 	msr	CPSR_fc, r3                                   
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
   11cd4:	e5954050 	ldr	r4, [r5, #80]                                 
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Get_unprotected(              
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  if ( !_Chain_Is_empty(the_chain))                                   
   11cd8:	e2853054 	add	r3, r5, #84	; 0x54                            
   11cdc:	e1540003 	cmp	r4, r3                                        
   11ce0:	0a000028 	beq	11d88 <_CORE_message_queue_Seize+0xec>        
{                                                                     
  Chain_Node  *return_node;                                           
  Chain_Node  *new_first;                                             
                                                                      
  return_node         = the_chain->first;                             
  new_first           = return_node->next;                            
   11ce4:	e5942000 	ldr	r2, [r4]                                      
  the_chain->first    = new_first;                                    
   11ce8:	e1a03005 	mov	r3, r5                                        
   11cec:	e5a32050 	str	r2, [r3, #80]!                                
  the_message = _CORE_message_queue_Get_pending_message( the_message_queue );
  if ( the_message != NULL ) {                                        
   11cf0:	e3540000 	cmp	r4, #0	; 0x0                                  
  new_first->previous = _Chain_Head(the_chain);                       
   11cf4:	e5823004 	str	r3, [r2, #4]                                  
   11cf8:	0a000022 	beq	11d88 <_CORE_message_queue_Seize+0xec>        
    the_message_queue->number_of_pending_messages -= 1;               
   11cfc:	e5953048 	ldr	r3, [r5, #72]                                 
   11d00:	e2433001 	sub	r3, r3, #1	; 0x1                              
   11d04:	e5853048 	str	r3, [r5, #72]                                 
    _ISR_Enable( level );                                             
   11d08:	e129f001 	msr	CPSR_fc, r1                                   
                                                                      
    *size_p = the_message->Contents.size;                             
    _Thread_Executing->Wait.count = the_message->priority;            
   11d0c:	e59f30bc 	ldr	r3, [pc, #188]	; 11dd0 <_CORE_message_queue_Seize+0x134>
   11d10:	e5942008 	ldr	r2, [r4, #8]                                  
   11d14:	e5931000 	ldr	r1, [r3]                                      
  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;                             
   11d18:	e594300c 	ldr	r3, [r4, #12]                                 
   11d1c:	e5803000 	str	r3, [r0]                                      
    _Thread_Executing->Wait.count = the_message->priority;            
   11d20:	e5812024 	str	r2, [r1, #36]                                 
    _CORE_message_queue_Copy_buffer(the_message->Contents.buffer,buffer,*size_p);
   11d24:	e2846010 	add	r6, r4, #16	; 0x10                            
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   11d28:	e5902000 	ldr	r2, [r0]                                      
   11d2c:	e1a01006 	mov	r1, r6                                        
   11d30:	e1a00008 	mov	r0, r8                                        
   11d34:	eb001bca 	bl	18c64 <memcpy>                                 
     *                                                                
     *  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 );
   11d38:	e1a00005 	mov	r0, r5                                        
   11d3c:	eb0008a5 	bl	13fd8 <_Thread_queue_Dequeue>                  
    if ( !the_thread ) {                                              
   11d40:	e2501000 	subs	r1, r0, #0	; 0x0                             
   11d44:	1a000003 	bne	11d58 <_CORE_message_queue_Seize+0xbc>        
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 );
   11d48:	e2850068 	add	r0, r5, #104	; 0x68                           
   11d4c:	e1a01004 	mov	r1, r4                                        
  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 );   
}                                                                     
   11d50:	e8bd45f0 	pop	{r4, r5, r6, r7, r8, sl, lr}                  
   11d54:	eaffff31 	b	11a20 <_Chain_Append>                           
     *  There was a thread waiting to send a message.  This code      
     *  puts the messages in the message queue on behalf of the       
     *  waiting task.                                                 
     */                                                               
                                                                      
    the_message->priority  = the_thread->Wait.count;                  
   11d58:	e5913024 	ldr	r3, [r1, #36]                                 <== NOT EXECUTED
    the_message->Contents.size = (size_t) the_thread->Wait.option;    
   11d5c:	e5912030 	ldr	r2, [r1, #48]                                 <== NOT EXECUTED
     *  There was a thread waiting to send a message.  This code      
     *  puts the messages in the message queue on behalf of the       
     *  waiting task.                                                 
     */                                                               
                                                                      
    the_message->priority  = the_thread->Wait.count;                  
   11d60:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
    the_message->Contents.size = (size_t) the_thread->Wait.option;    
   11d64:	e584200c 	str	r2, [r4, #12]                                 <== NOT EXECUTED
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   11d68:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
   11d6c:	e591102c 	ldr	r1, [r1, #44]                                 <== NOT EXECUTED
   11d70:	eb001bbb 	bl	18c64 <memcpy>                                 <== NOT EXECUTED
      the_thread->Wait.return_argument_second.immutable_object,       
      the_message->Contents.buffer,                                   
      the_message->Contents.size                                      
    );                                                                
                                                                      
    _CORE_message_queue_Insert_message(                               
   11d74:	e5942008 	ldr	r2, [r4, #8]                                  <== NOT EXECUTED
   11d78:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
   11d7c:	e1a01004 	mov	r1, r4                                        <== 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 );   
}                                                                     
   11d80:	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(                               
   11d84:	ea0015b3 	b	17458 <_CORE_message_queue_Insert_message>      <== NOT EXECUTED
       the_message->priority                                          
    );                                                                
    return;                                                           
  }                                                                   
                                                                      
  if ( !wait ) {                                                      
   11d88:	e3560000 	cmp	r6, #0	; 0x0                                  
   11d8c:	1a000003 	bne	11da0 <_CORE_message_queue_Seize+0x104>       
    _ISR_Enable( level );                                             
   11d90:	e129f001 	msr	CPSR_fc, r1                                   
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
   11d94:	e3a03004 	mov	r3, #4	; 0x4                                  
   11d98:	e58c3034 	str	r3, [ip, #52]                                 
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
}                                                                     
   11d9c:	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;
   11da0:	e3a03001 	mov	r3, #1	; 0x1                                  
   11da4:	e5853030 	str	r3, [r5, #48]                                 
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
   11da8:	e58c0028 	str	r0, [ip, #40]                                 
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
  executing->Wait.id = id;                                            
   11dac:	e58c7020 	str	r7, [ip, #32]                                 
  executing->Wait.return_argument_second.mutable_object = buffer;     
   11db0:	e58c802c 	str	r8, [ip, #44]                                 
    executing->Wait.return_code = CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_NOWAIT;
    return;                                                           
  }                                                                   
                                                                      
  _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
  executing->Wait.queue = &the_message_queue->Wait_queue;             
   11db4:	e58c5044 	str	r5, [ip, #68]                                 
  executing->Wait.id = id;                                            
  executing->Wait.return_argument_second.mutable_object = buffer;     
  executing->Wait.return_argument = size_p;                           
  /* Wait.count will be filled in with the message priority */        
  _ISR_Enable( level );                                               
   11db8:	e129f001 	msr	CPSR_fc, r1                                   
                                                                      
  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );   
   11dbc:	e59f2010 	ldr	r2, [pc, #16]	; 11dd4 <_CORE_message_queue_Seize+0x138>
   11dc0:	e1a00005 	mov	r0, r5                                        
   11dc4:	e1a0100a 	mov	r1, sl                                        
}                                                                     
   11dc8:	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 );   
   11dcc:	ea0008da 	b	1413c <_Thread_queue_Enqueue_with_handler>      
                                                                      

00011dd8 <_CORE_message_queue_Submit>: CORE_message_queue_API_mp_support_callout api_message_queue_mp_support, CORE_message_queue_Submit_types submit_type, bool wait, Watchdog_Interval timeout ) {
   11dd8:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  ISR_Level                            level;                         
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
   11ddc:	e590c04c 	ldr	ip, [r0, #76]                                 
   11de0:	e152000c 	cmp	r2, ip                                        
  CORE_message_queue_API_mp_support_callout  api_message_queue_mp_support,
  CORE_message_queue_Submit_types            submit_type,             
  bool                                       wait,                    
  Watchdog_Interval                          timeout                  
)                                                                     
{                                                                     
   11de4:	e1a05000 	mov	r5, r0                                        
   11de8:	e1a06002 	mov	r6, r2                                        
   11dec:	e1a07001 	mov	r7, r1                                        
   11df0:	e1a0b003 	mov	fp, r3                                        
   11df4:	e59d9028 	ldr	r9, [sp, #40]                                 
   11df8:	e5dda02c 	ldrb	sl, [sp, #44]                                
  ISR_Level                            level;                         
  CORE_message_queue_Buffer_control   *the_message;                   
  Thread_Control                      *the_thread;                    
                                                                      
  if ( size > the_message_queue->maximum_message_size ) {             
   11dfc:	83a00001 	movhi	r0, #1	; 0x1                                
   11e00:	88bd8ff0 	pophi	{r4, r5, r6, r7, r8, r9, sl, fp, pc}        
                                                                      
  /*                                                                  
   *  Is there a thread currently waiting on this message queue?      
   */                                                                 
                                                                      
  if ( the_message_queue->number_of_pending_messages == 0 ) {         
   11e04:	e5958048 	ldr	r8, [r5, #72]                                 
   11e08:	e3580000 	cmp	r8, #0	; 0x0                                  
   11e0c:	1a00000b 	bne	11e40 <_CORE_message_queue_Submit+0x68>       
    the_thread = _Thread_queue_Dequeue( &the_message_queue->Wait_queue );
   11e10:	eb000870 	bl	13fd8 <_Thread_queue_Dequeue>                  
    if ( the_thread ) {                                               
   11e14:	e2504000 	subs	r4, r0, #0	; 0x0                             
   11e18:	0a000008 	beq	11e40 <_CORE_message_queue_Submit+0x68>       
   11e1c:	e1a01007 	mov	r1, r7                                        
   11e20:	e594002c 	ldr	r0, [r4, #44]                                 
   11e24:	e1a02006 	mov	r2, r6                                        
   11e28:	eb001b8d 	bl	18c64 <memcpy>                                 
      _CORE_message_queue_Copy_buffer(                                
        buffer,                                                       
        the_thread->Wait.return_argument_second.mutable_object,       
        size                                                          
      );                                                              
      *(size_t *) the_thread->Wait.return_argument = size;            
   11e2c:	e5943028 	ldr	r3, [r4, #40]                                 
      the_thread->Wait.count = submit_type;                           
   11e30:	e1a00008 	mov	r0, r8                                        
      _CORE_message_queue_Copy_buffer(                                
        buffer,                                                       
        the_thread->Wait.return_argument_second.mutable_object,       
        size                                                          
      );                                                              
      *(size_t *) the_thread->Wait.return_argument = size;            
   11e34:	e5836000 	str	r6, [r3]                                      
      the_thread->Wait.count = submit_type;                           
   11e38:	e5849024 	str	r9, [r4, #36]                                 
   11e3c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
  /*                                                                  
   *  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 <                
   11e40:	e5952048 	ldr	r2, [r5, #72]                                 
   11e44:	e5953044 	ldr	r3, [r5, #68]                                 
   11e48:	e1520003 	cmp	r2, r3                                        
   11e4c:	2a00000f 	bcs	11e90 <_CORE_message_queue_Submit+0xb8>       
RTEMS_INLINE_ROUTINE CORE_message_queue_Buffer_control *              
_CORE_message_queue_Allocate_message_buffer (                         
    CORE_message_queue_Control *the_message_queue                     
)                                                                     
{                                                                     
   return (CORE_message_queue_Buffer_control *)                       
   11e50:	e2850068 	add	r0, r5, #104	; 0x68                           
   11e54:	ebfffefc 	bl	11a4c <_Chain_Get>                             
                                                                      
    /*                                                                
     *  NOTE: If the system is consistent, this error should never occur.
     */                                                               
                                                                      
    if ( !the_message ) {                                             
   11e58:	e2504000 	subs	r4, r0, #0	; 0x0                             
   11e5c:	0a000025 	beq	11ef8 <_CORE_message_queue_Submit+0x120>      
  const void *source,                                                 
  void       *destination,                                            
  size_t      size                                                    
)                                                                     
{                                                                     
  memcpy(destination, source, size);                                  
   11e60:	e1a01007 	mov	r1, r7                                        
   11e64:	e1a02006 	mov	r2, r6                                        
   11e68:	e2840010 	add	r0, r4, #16	; 0x10                            
   11e6c:	eb001b7c 	bl	18c64 <memcpy>                                 
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
    the_message->priority  = submit_type;                             
                                                                      
    _CORE_message_queue_Insert_message(                               
   11e70:	e1a00005 	mov	r0, r5                                        
    _CORE_message_queue_Copy_buffer(                                  
      buffer,                                                         
      the_message->Contents.buffer,                                   
      size                                                            
    );                                                                
    the_message->Contents.size = size;                                
   11e74:	e584600c 	str	r6, [r4, #12]                                 
    the_message->priority  = submit_type;                             
   11e78:	e5849008 	str	r9, [r4, #8]                                  
                                                                      
    _CORE_message_queue_Insert_message(                               
   11e7c:	e1a01004 	mov	r1, r4                                        
   11e80:	e1a02009 	mov	r2, r9                                        
   11e84:	eb001573 	bl	17458 <_CORE_message_queue_Insert_message>     
   11e88:	e3a00000 	mov	r0, #0	; 0x0                                  
   11e8c:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
   *  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 ) {                                                      
   11e90:	e35a0000 	cmp	sl, #0	; 0x0                                  
   11e94:	03a00002 	moveq	r0, #2	; 0x2                                
   11e98:	08bd8ff0 	popeq	{r4, r5, r6, r7, r8, r9, sl, fp, pc}        
  /*                                                                  
   *  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() ) {                                      
   11e9c:	e59f305c 	ldr	r3, [pc, #92]	; 11f00 <_CORE_message_queue_Submit+0x128><== NOT EXECUTED
   11ea0:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
   11ea4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
   11ea8:	1a000012 	bne	11ef8 <_CORE_message_queue_Submit+0x120>      <== NOT EXECUTED
   *  it as a variable.  Doing this emphasizes how dangerous it       
   *  would be to use this variable prior to here.                    
   */                                                                 
                                                                      
  {                                                                   
    Thread_Control  *executing = _Thread_Executing;                   
   11eac:	e59f3050 	ldr	r3, [pc, #80]	; 11f04 <_CORE_message_queue_Submit+0x12c><== NOT EXECUTED
   11eb0:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
                                                                      
    _ISR_Disable( level );                                            
   11eb4:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
   11eb8:	e38130c0 	orr	r3, r1, #192	; 0xc0                           <== NOT EXECUTED
   11ebc:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
   11ec0:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
   11ec4:	e5853030 	str	r3, [r5, #48]                                 <== NOT EXECUTED
    _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
    executing->Wait.queue = &the_message_queue->Wait_queue;           
    executing->Wait.id = id;                                          
    executing->Wait.return_argument_second.immutable_object = buffer; 
    executing->Wait.option = (uint32_t) size;                         
    executing->Wait.count = submit_type;                              
   11ec8:	e5829024 	str	r9, [r2, #36]                                 <== NOT EXECUTED
    Thread_Control  *executing = _Thread_Executing;                   
                                                                      
    _ISR_Disable( level );                                            
    _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
    executing->Wait.queue = &the_message_queue->Wait_queue;           
    executing->Wait.id = id;                                          
   11ecc:	e582b020 	str	fp, [r2, #32]                                 <== NOT EXECUTED
    executing->Wait.return_argument_second.immutable_object = buffer; 
   11ed0:	e582702c 	str	r7, [r2, #44]                                 <== NOT EXECUTED
    executing->Wait.option = (uint32_t) size;                         
   11ed4:	e5826030 	str	r6, [r2, #48]                                 <== NOT EXECUTED
  {                                                                   
    Thread_Control  *executing = _Thread_Executing;                   
                                                                      
    _ISR_Disable( level );                                            
    _Thread_queue_Enter_critical_section( &the_message_queue->Wait_queue );
    executing->Wait.queue = &the_message_queue->Wait_queue;           
   11ed8:	e5825044 	str	r5, [r2, #68]                                 <== NOT EXECUTED
    executing->Wait.id = id;                                          
    executing->Wait.return_argument_second.immutable_object = buffer; 
    executing->Wait.option = (uint32_t) size;                         
    executing->Wait.count = submit_type;                              
    _ISR_Enable( level );                                             
   11edc:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
                                                                      
    _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout ); 
   11ee0:	e59f2020 	ldr	r2, [pc, #32]	; 11f08 <_CORE_message_queue_Submit+0x130><== NOT EXECUTED
   11ee4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
   11ee8:	e59d1030 	ldr	r1, [sp, #48]                                 <== NOT EXECUTED
   11eec:	eb000892 	bl	1413c <_Thread_queue_Enqueue_with_handler>     <== NOT EXECUTED
   11ef0:	e3a00007 	mov	r0, #7	; 0x7                                  <== NOT EXECUTED
   11ef4:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
  }                                                                   
                                                                      
  return CORE_MESSAGE_QUEUE_STATUS_UNSATISFIED_WAIT;                  
   11ef8:	e3a00003 	mov	r0, #3	; 0x3                                  <== NOT EXECUTED
}                                                                     
   11efc:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      

00004d74 <_CORE_mutex_Initialize>: CORE_mutex_Status _CORE_mutex_Initialize( CORE_mutex_Control *the_mutex, CORE_mutex_Attributes *the_mutex_attributes, uint32_t initial_lock ) {
    4d74:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
    4d78:	e1a05000 	mov	r5, r0                                        
    4d7c:	e1a04002 	mov	r4, r2                                        
    4d80:	e1a07001 	mov	r7, r1                                        
/* Add this to the RTEMS environment later ?????????                  
  rtems_assert( initial_lock == CORE_MUTEX_LOCKED ||                  
                initial_lock == CORE_MUTEX_UNLOCKED );                
 */                                                                   
                                                                      
  the_mutex->Attributes    = *the_mutex_attributes;                   
    4d84:	e891000f 	ldm	r1, {r0, r1, r2, r3}                          
  the_mutex->lock          = initial_lock;                            
  the_mutex->blocked_count = 0;                                       
    4d88:	e3a06000 	mov	r6, #0	; 0x0                                  
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
    4d8c:	e3540000 	cmp	r4, #0	; 0x0                                  
/* Add this to the RTEMS environment later ?????????                  
  rtems_assert( initial_lock == CORE_MUTEX_LOCKED ||                  
                initial_lock == CORE_MUTEX_UNLOCKED );                
 */                                                                   
                                                                      
  the_mutex->Attributes    = *the_mutex_attributes;                   
    4d90:	e285c040 	add	ip, r5, #64	; 0x40                            
    4d94:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
  the_mutex->lock          = initial_lock;                            
    4d98:	e5854050 	str	r4, [r5, #80]                                 
  the_mutex->blocked_count = 0;                                       
    4d9c:	e5856058 	str	r6, [r5, #88]                                 
      _Thread_Executing->resource_count++;                            
    }                                                                 
  } else {                                                            
    the_mutex->nest_count = 0;                                        
    the_mutex->holder     = NULL;                                     
    the_mutex->holder_id  = 0;                                        
    4da0:	15856060 	strne	r6, [r5, #96]                               
#endif                                                                
                                                                      
      _Thread_Executing->resource_count++;                            
    }                                                                 
  } else {                                                            
    the_mutex->nest_count = 0;                                        
    4da4:	15856054 	strne	r6, [r5, #84]                               
    the_mutex->holder     = NULL;                                     
    4da8:	1585605c 	strne	r6, [r5, #92]                               
                                                                      
  the_mutex->Attributes    = *the_mutex_attributes;                   
  the_mutex->lock          = initial_lock;                            
  the_mutex->blocked_count = 0;                                       
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
    4dac:	1a000013 	bne	4e00 <_CORE_mutex_Initialize+0x8c>            
    the_mutex->nest_count = 1;                                        
    4db0:	e3a03001 	mov	r3, #1	; 0x1                                  
    4db4:	e5853054 	str	r3, [r5, #84]                                 
    the_mutex->holder     = _Thread_Executing;                        
    4db8:	e59f3064 	ldr	r3, [pc, #100]	; 4e24 <_CORE_mutex_Initialize+0xb0>
    4dbc:	e5931000 	ldr	r1, [r3]                                      
 */                                                                   
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(            
  CORE_mutex_Attributes *the_attribute                                
)                                                                     
{                                                                     
  return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
    4dc0:	e5952048 	ldr	r2, [r5, #72]                                 
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    4dc4:	e5913008 	ldr	r3, [r1, #8]                                  
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
    4dc8:	e3520002 	cmp	r2, #2	; 0x2                                  
  the_mutex->blocked_count = 0;                                       
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
    the_mutex->nest_count = 1;                                        
    the_mutex->holder     = _Thread_Executing;                        
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    4dcc:	e5853060 	str	r3, [r5, #96]                                 
  the_mutex->lock          = initial_lock;                            
  the_mutex->blocked_count = 0;                                       
                                                                      
  if ( initial_lock == CORE_MUTEX_LOCKED ) {                          
    the_mutex->nest_count = 1;                                        
    the_mutex->holder     = _Thread_Executing;                        
    4dd0:	e585105c 	str	r1, [r5, #92]                                 
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
    4dd4:	0a000001 	beq	4de0 <_CORE_mutex_Initialize+0x6c>            
    4dd8:	e3520003 	cmp	r2, #3	; 0x3                                  
    4ddc:	1a000007 	bne	4e00 <_CORE_mutex_Initialize+0x8c>            
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
    4de0:	e595304c 	ldr	r3, [r5, #76]                                 <== NOT EXECUTED
    4de4:	e5912014 	ldr	r2, [r1, #20]                                 <== NOT EXECUTED
    4de8:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
       _Chain_Prepend_unprotected( &_Thread_Executing->lock_mutex,    
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = _Thread_Executing->current_priority;
#endif                                                                
                                                                      
      _Thread_Executing->resource_count++;                            
    4dec:	2591301c 	ldrcs	r3, [r1, #28]                               <== NOT EXECUTED
    4df0:	22833001 	addcs	r3, r3, #1	; 0x1                            <== NOT EXECUTED
    the_mutex->holder     = _Thread_Executing;                        
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
    4df4:	33a00006 	movcc	r0, #6	; 0x6                                <== NOT EXECUTED
       _Chain_Prepend_unprotected( &_Thread_Executing->lock_mutex,    
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = _Thread_Executing->current_priority;
#endif                                                                
                                                                      
      _Thread_Executing->resource_count++;                            
    4df8:	2581301c 	strcs	r3, [r1, #28]                               <== NOT EXECUTED
    the_mutex->holder     = _Thread_Executing;                        
    the_mutex->holder_id  = _Thread_Executing->Object.id;             
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
         _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
                                                                      
      if ( _Thread_Executing->current_priority <                      
    4dfc:	38bd80f0 	popcc	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
    the_mutex->nest_count = 0;                                        
    the_mutex->holder     = NULL;                                     
    the_mutex->holder_id  = 0;                                        
  }                                                                   
                                                                      
  _Thread_queue_Initialize(                                           
    4e00:	e5971008 	ldr	r1, [r7, #8]                                  
    4e04:	e1a00005 	mov	r0, r5                                        
    4e08:	e2511000 	subs	r1, r1, #0	; 0x0                             
    4e0c:	13a01001 	movne	r1, #1	; 0x1                                
    4e10:	e3a02b01 	mov	r2, #1024	; 0x400                             
    4e14:	e3a03005 	mov	r3, #5	; 0x5                                  
    4e18:	eb0006f0 	bl	69e0 <_Thread_queue_Initialize>                
    4e1c:	e3a00000 	mov	r0, #0	; 0x0                                  
    STATES_WAITING_FOR_MUTEX,                                         
    CORE_MUTEX_TIMEOUT                                                
  );                                                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
    4e20:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

00009548 <_CORE_mutex_Seize_interrupt_trylock>: Thread_Control *executing; ISR_Level level = *level_p; /* disabled when you get here */ executing = _Thread_Executing;
    9548:	e59f3130 	ldr	r3, [pc, #304]	; 9680 <_CORE_mutex_Seize_interrupt_trylock+0x138>
    954c:	e593c000 	ldr	ip, [r3]                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
    9550:	e3a02000 	mov	r2, #0	; 0x0                                  
  CORE_mutex_Control  *the_mutex,                                     
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
  Thread_Control   *executing;                                        
  ISR_Level         level = *level_p;                                 
    9554:	e5911000 	ldr	r1, [r1]                                      
                                                                      
  /* disabled when you get here */                                    
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
    9558:	e58c2034 	str	r2, [ip, #52]                                 
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    955c:	e5903050 	ldr	r3, [r0, #80]                                 
    9560:	e1530002 	cmp	r3, r2                                        
#if defined(__RTEMS_DO_NOT_INLINE_CORE_MUTEX_SEIZE__)                 
int _CORE_mutex_Seize_interrupt_trylock(                              
  CORE_mutex_Control  *the_mutex,                                     
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
    9564:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    9568:	0a00002f 	beq	962c <_CORE_mutex_Seize_interrupt_trylock+0xe4>
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    956c:	e5802050 	str	r2, [r0, #80]                                 
 */                                                                   
RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_inherit_priority(            
  CORE_mutex_Attributes *the_attribute                                
)                                                                     
{                                                                     
  return the_attribute->discipline == CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
    9570:	e5902048 	ldr	r2, [r0, #72]                                 
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    9574:	e59c3008 	ldr	r3, [ip, #8]                                  
    the_mutex->nest_count = 1;                                        
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
    9578:	e3520002 	cmp	r2, #2	; 0x2                                  
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    the_mutex->holder_id  = executing->Object.id;                     
    957c:	e5803060 	str	r3, [r0, #96]                                 
    the_mutex->nest_count = 1;                                        
    9580:	e3a03001 	mov	r3, #1	; 0x1                                  
    9584:	e5803054 	str	r3, [r0, #84]                                 
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = CORE_MUTEX_STATUS_SUCCESSFUL;         
  if ( !_CORE_mutex_Is_locked( the_mutex ) ) {                        
    the_mutex->lock       = CORE_MUTEX_LOCKED;                        
    the_mutex->holder     = executing;                                
    9588:	e580c05c 	str	ip, [r0, #92]                                 
    the_mutex->holder_id  = executing->Object.id;                     
    the_mutex->nest_count = 1;                                        
    if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) || 
    958c:	0a000001 	beq	9598 <_CORE_mutex_Seize_interrupt_trylock+0x50>
    9590:	e3520003 	cmp	r2, #3	; 0x3                                  <== NOT EXECUTED
    9594:	1a000002 	bne	95a4 <_CORE_mutex_Seize_interrupt_trylock+0x5c><== NOT EXECUTED
       _Chain_Prepend_unprotected( &executing->lock_mutex,            
                                   &the_mutex->queue.lock_queue );    
       the_mutex->queue.priority_before = executing->current_priority;
#endif                                                                
                                                                      
      executing->resource_count++;                                    
    9598:	e59c301c 	ldr	r3, [ip, #28]                                 
    959c:	e2833001 	add	r3, r3, #1	; 0x1                              
    95a0:	e58c301c 	str	r3, [ip, #28]                                 
    }                                                                 
                                                                      
    if ( !_CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {
    95a4:	e5903048 	ldr	r3, [r0, #72]                                 
    95a8:	e3530003 	cmp	r3, #3	; 0x3                                  
    95ac:	0a000001 	beq	95b8 <_CORE_mutex_Seize_interrupt_trylock+0x70>
        _ISR_Enable( level );                                         
    95b0:	e129f001 	msr	CPSR_fc, r1                                   
    95b4:	ea00002d 	b	9670 <_CORE_mutex_Seize_interrupt_trylock+0x128>
       */                                                             
    {                                                                 
      Priority_Control  ceiling;                                      
      Priority_Control  current;                                      
                                                                      
      ceiling = the_mutex->Attributes.priority_ceiling;               
    95b8:	e590204c 	ldr	r2, [r0, #76]                                 <== NOT EXECUTED
      current = executing->current_priority;                          
    95bc:	e59c3014 	ldr	r3, [ip, #20]                                 <== NOT EXECUTED
      if ( current == ceiling ) {                                     
    95c0:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
    95c4:	1a000001 	bne	95d0 <_CORE_mutex_Seize_interrupt_trylock+0x88><== NOT EXECUTED
        _ISR_Enable( level );                                         
    95c8:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    95cc:	ea000027 	b	9670 <_CORE_mutex_Seize_interrupt_trylock+0x128><== NOT EXECUTED
        return 0;                                                     
      }                                                               
                                                                      
      if ( current > ceiling ) {                                      
    95d0:	9a00000a 	bls	9600 <_CORE_mutex_Seize_interrupt_trylock+0xb8><== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
    95d4:	e59f20a8 	ldr	r2, [pc, #168]	; 9684 <_CORE_mutex_Seize_interrupt_trylock+0x13c><== NOT EXECUTED
    95d8:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    95dc:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    95e0:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
        _Thread_Disable_dispatch();                                   
        _ISR_Enable( level );                                         
    95e4:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
        _Thread_Change_priority(                                      
    95e8:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    95ec:	e590104c 	ldr	r1, [r0, #76]                                 <== NOT EXECUTED
    95f0:	e590005c 	ldr	r0, [r0, #92]                                 <== NOT EXECUTED
    95f4:	ebfff19b 	bl	5c68 <_Thread_Change_priority>                 <== NOT EXECUTED
          the_mutex->holder,                                          
          the_mutex->Attributes.priority_ceiling,                     
         FALSE                                                        
        );                                                            
        _Thread_Enable_dispatch();                                    
    95f8:	ebfff302 	bl	6208 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    95fc:	ea00001b 	b	9670 <_CORE_mutex_Seize_interrupt_trylock+0x128><== NOT EXECUTED
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
    9600:	e3a03006 	mov	r3, #6	; 0x6                                  <== NOT EXECUTED
    9604:	e58c3034 	str	r3, [ip, #52]                                 <== NOT EXECUTED
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
        the_mutex->nest_count = 0;     /* undo locking above */       
    9608:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    960c:	e5803054 	str	r3, [r0, #84]                                 <== NOT EXECUTED
        _Thread_Enable_dispatch();                                    
        return 0;                                                     
      }                                                               
      /* if ( current < ceiling ) */ {                                
        executing->Wait.return_code = CORE_MUTEX_STATUS_CEILING_VIOLATED;
        the_mutex->lock       = CORE_MUTEX_UNLOCKED;                  
    9610:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    9614:	e5803050 	str	r3, [r0, #80]                                 <== NOT EXECUTED
        the_mutex->nest_count = 0;     /* undo locking above */       
        executing->resource_count--;   /* undo locking above */       
    9618:	e59c301c 	ldr	r3, [ip, #28]                                 <== NOT EXECUTED
    961c:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    9620:	e58c301c 	str	r3, [ip, #28]                                 <== NOT EXECUTED
        _ISR_Enable( level );                                         
    9624:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    9628:	ea000010 	b	9670 <_CORE_mutex_Seize_interrupt_trylock+0x128><== NOT EXECUTED
  /*                                                                  
   *  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 ) ) {                  
    962c:	e590205c 	ldr	r2, [r0, #92]                                 
    9630:	e152000c 	cmp	r2, ip                                        
    9634:	1a00000f 	bne	9678 <_CORE_mutex_Seize_interrupt_trylock+0x130>
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
    9638:	e5903040 	ldr	r3, [r0, #64]                                 
    963c:	e3530000 	cmp	r3, #0	; 0x0                                  
    9640:	0a000002 	beq	9650 <_CORE_mutex_Seize_interrupt_trylock+0x108>
    9644:	e3530001 	cmp	r3, #1	; 0x1                                  
    9648:	1a00000a 	bne	9678 <_CORE_mutex_Seize_interrupt_trylock+0x130>
    964c:	ea000004 	b	9664 <_CORE_mutex_Seize_interrupt_trylock+0x11c>
      case CORE_MUTEX_NESTING_ACQUIRES:                               
        the_mutex->nest_count++;                                      
    9650:	e5903054 	ldr	r3, [r0, #84]                                 
    9654:	e2833001 	add	r3, r3, #1	; 0x1                              
    9658:	e5803054 	str	r3, [r0, #84]                                 
        _ISR_Enable( level );                                         
    965c:	e129f001 	msr	CPSR_fc, r1                                   
    9660:	ea000002 	b	9670 <_CORE_mutex_Seize_interrupt_trylock+0x128>
        return 0;                                                     
      case CORE_MUTEX_NESTING_IS_ERROR:                               
        executing->Wait.return_code = CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED;
    9664:	e3a03002 	mov	r3, #2	; 0x2                                  
    9668:	e5823034 	str	r3, [r2, #52]                                 
        _ISR_Enable( level );                                         
    966c:	e129f001 	msr	CPSR_fc, r1                                   
    9670:	e3a00000 	mov	r0, #0	; 0x0                                  
    9674:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
    9678:	e3a00001 	mov	r0, #1	; 0x1                                  
  return _CORE_mutex_Seize_interrupt_trylock_body( the_mutex, level_p );
}                                                                     
    967c:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
                                                                      

00004f54 <_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 ) {
    4f54:	e5d03044 	ldrb	r3, [r0, #68]                                
    4f58:	e3530000 	cmp	r3, #0	; 0x0                                  
CORE_mutex_Status _CORE_mutex_Surrender(                              
  CORE_mutex_Control                *the_mutex,                       
  Objects_Id                         id,                              
  CORE_mutex_API_mp_support_callout  api_mutex_mp_support             
)                                                                     
{                                                                     
    4f5c:	e92d4010 	push	{r4, lr}                                     
    4f60:	e1a04000 	mov	r4, r0                                        
  Thread_Control *the_thread;                                         
  Thread_Control *holder;                                             
#ifdef __RTEMS_STRICT_ORDER_MUTEX__                                   
  Chain_Node *first_node;                                             
#endif                                                                
  holder    = the_mutex->holder;                                      
    4f64:	e590005c 	ldr	r0, [r0, #92]                                 
   *  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 ) {                   
    4f68:	0a000004 	beq	4f80 <_CORE_mutex_Surrender+0x2c>             
    if ( !_Thread_Is_executing( holder ) )                            
    4f6c:	e59f312c 	ldr	r3, [pc, #300]	; 50a0 <_CORE_mutex_Surrender+0x14c>
    4f70:	e5933000 	ldr	r3, [r3]                                      
    4f74:	e1500003 	cmp	r0, r3                                        
    4f78:	13a00003 	movne	r0, #3	; 0x3                                
    4f7c:	18bd8010 	popne	{r4, pc}                                    
      return CORE_MUTEX_STATUS_NOT_OWNER_OF_RESOURCE;                 
  }                                                                   
                                                                      
  /* XXX already unlocked -- not right status */                      
                                                                      
  if ( !the_mutex->nest_count )                                       
    4f80:	e5943054 	ldr	r3, [r4, #84]                                 
    4f84:	e3530000 	cmp	r3, #0	; 0x0                                  
    4f88:	0a000042 	beq	5098 <_CORE_mutex_Surrender+0x144>            
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
    4f8c:	e2433001 	sub	r3, r3, #1	; 0x1                              
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
    4f90:	e3530000 	cmp	r3, #0	; 0x0                                  
  /* XXX already unlocked -- not right status */                      
                                                                      
  if ( !the_mutex->nest_count )                                       
    return CORE_MUTEX_STATUS_SUCCESSFUL;                              
                                                                      
  the_mutex->nest_count--;                                            
    4f94:	e5843054 	str	r3, [r4, #84]                                 
                                                                      
  if ( the_mutex->nest_count != 0 ) {                                 
    4f98:	0a000005 	beq	4fb4 <_CORE_mutex_Surrender+0x60>             
    switch ( the_mutex->Attributes.lock_nesting_behavior ) {          
    4f9c:	e5943040 	ldr	r3, [r4, #64]                                 
    4fa0:	e3530000 	cmp	r3, #0	; 0x0                                  
    4fa4:	0a00003b 	beq	5098 <_CORE_mutex_Surrender+0x144>            
    4fa8:	e3530001 	cmp	r3, #1	; 0x1                                  <== NOT EXECUTED
    4fac:	03a00002 	moveq	r0, #2	; 0x2                                <== NOT EXECUTED
    4fb0:	08bd8010 	popeq	{r4, pc}                                    <== NOT EXECUTED
    4fb4:	e5943048 	ldr	r3, [r4, #72]                                 
                                                                      
  /*                                                                  
   *  Formally release the mutex before possibly transferring it to a 
   *  blocked thread.                                                 
   */                                                                 
  if ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||   
    4fb8:	e3530002 	cmp	r3, #2	; 0x2                                  
    4fbc:	0a000001 	beq	4fc8 <_CORE_mutex_Surrender+0x74>             
    4fc0:	e3530003 	cmp	r3, #3	; 0x3                                  
    4fc4:	1a000002 	bne	4fd4 <_CORE_mutex_Surrender+0x80>             
      the_mutex->nest_count++;                                        
      return CORE_MUTEX_RELEASE_NOT_ORDER;                            
    }                                                                 
    first_node = _Chain_Get_first_unprotected(&holder->lock_mutex);   
#endif                                                                
    holder->resource_count--;                                         
    4fc8:	e590301c 	ldr	r3, [r0, #28]                                 
    4fcc:	e2433001 	sub	r3, r3, #1	; 0x1                              
    4fd0:	e580301c 	str	r3, [r0, #28]                                 
    4fd4:	e5942048 	ldr	r2, [r4, #72]                                 
  }                                                                   
  the_mutex->holder    = NULL;                                        
    4fd8:	e3a03000 	mov	r3, #0	; 0x0                                  
  /*                                                                  
   *  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 ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||   
    4fdc:	e3520002 	cmp	r2, #2	; 0x2                                  
    first_node = _Chain_Get_first_unprotected(&holder->lock_mutex);   
#endif                                                                
    holder->resource_count--;                                         
  }                                                                   
  the_mutex->holder    = NULL;                                        
  the_mutex->holder_id = 0;                                           
    4fe0:	e5843060 	str	r3, [r4, #96]                                 
    }                                                                 
    first_node = _Chain_Get_first_unprotected(&holder->lock_mutex);   
#endif                                                                
    holder->resource_count--;                                         
  }                                                                   
  the_mutex->holder    = NULL;                                        
    4fe4:	e584305c 	str	r3, [r4, #92]                                 
  /*                                                                  
   *  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 ( _CORE_mutex_Is_inherit_priority( &the_mutex->Attributes ) ||   
    4fe8:	0a000001 	beq	4ff4 <_CORE_mutex_Surrender+0xa0>             
    4fec:	e3520003 	cmp	r2, #3	; 0x3                                  
    4ff0:	1a000007 	bne	5014 <_CORE_mutex_Surrender+0xc0>             
       _CORE_mutex_Is_priority_ceiling( &the_mutex->Attributes ) ) {  
#ifdef __RTEMS_STRICT_ORDER_MUTEX__                                   
    if(the_mutex->queue.priority_before != holder->current_priority)  
      _Thread_Change_priority(holder,the_mutex->queue.priority_before,TRUE);
#endif                                                                
    if ( holder->resource_count == 0 &&                               
    4ff4:	e590301c 	ldr	r3, [r0, #28]                                 
    4ff8:	e3530000 	cmp	r3, #0	; 0x0                                  
    4ffc:	1a000004 	bne	5014 <_CORE_mutex_Surrender+0xc0>             
    5000:	e5901018 	ldr	r1, [r0, #24]                                 
    5004:	e5903014 	ldr	r3, [r0, #20]                                 
    5008:	e1510003 	cmp	r1, r3                                        
         holder->real_priority != holder->current_priority ) {        
      _Thread_Change_priority( holder, holder->real_priority, TRUE ); 
    500c:	13a02001 	movne	r2, #1	; 0x1                                
    5010:	1b000314 	blne	5c68 <_Thread_Change_priority>               
                                                                      
  /*                                                                  
   *  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 ) ) ) {
    5014:	e1a00004 	mov	r0, r4                                        
    5018:	eb00055c 	bl	6590 <_Thread_queue_Dequeue>                   
    501c:	e2502000 	subs	r2, r0, #0	; 0x0                             
          }                                                           
          break;                                                      
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
    5020:	03a03001 	moveq	r3, #1	; 0x1                                
    5024:	05843050 	streq	r3, [r4, #80]                               
    5028:	01a00002 	moveq	r0, r2                                      
                                                                      
  /*                                                                  
   *  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 ) ) ) {
    502c:	08bd8010 	popeq	{r4, pc}                                    
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
    5030:	e5923008 	ldr	r3, [r2, #8]                                  
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
    5034:	e5941048 	ldr	r1, [r4, #72]                                 
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
    5038:	e5843060 	str	r3, [r4, #96]                                 
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
    503c:	e3510002 	cmp	r1, #2	; 0x2                                  
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
      the_mutex->holder_id  = the_thread->Object.id;                  
      the_mutex->nest_count = 1;                                      
    5040:	e3a03001 	mov	r3, #1	; 0x1                                  
    5044:	e5843054 	str	r3, [r4, #84]                                 
                                                                      
    } else                                                            
#endif                                                                
    {                                                                 
                                                                      
      the_mutex->holder     = the_thread;                             
    5048:	e584205c 	str	r2, [r4, #92]                                 
      the_mutex->holder_id  = the_thread->Object.id;                  
      the_mutex->nest_count = 1;                                      
                                                                      
      switch ( the_mutex->Attributes.discipline ) {                   
    504c:	0a000002 	beq	505c <_CORE_mutex_Surrender+0x108>            
    5050:	e3510003 	cmp	r1, #3	; 0x3                                  
    5054:	1a00000f 	bne	5098 <_CORE_mutex_Surrender+0x144>            
    5058:	ea000003 	b	506c <_CORE_mutex_Surrender+0x118>              <== NOT EXECUTED
        case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:                 
#ifdef __RTEMS_STRICT_ORDER_MUTEX__                                   
	  _Chain_Prepend_unprotected(&the_thread->lock_mutex,&the_mutex->queue.lock_queue);
	  the_mutex->queue.priority_before = the_thread->current_priority;   
#endif                                                                
          the_thread->resource_count++;                               
    505c:	e592301c 	ldr	r3, [r2, #28]                                 
    5060:	e2833001 	add	r3, r3, #1	; 0x1                              
    5064:	e582301c 	str	r3, [r2, #28]                                 
    5068:	ea000008 	b	5090 <_CORE_mutex_Surrender+0x13c>              
        case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:                 
#ifdef __RTEMS_STRICT_ORDER_MUTEX__                                   
	  _Chain_Prepend_unprotected(&the_thread->lock_mutex,&the_mutex->queue.lock_queue);
	  the_mutex->queue.priority_before = the_thread->current_priority;   
#endif                                                                
          the_thread->resource_count++;                               
    506c:	e592301c 	ldr	r3, [r2, #28]                                 <== NOT EXECUTED
    5070:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    5074:	e582301c 	str	r3, [r2, #28]                                 <== NOT EXECUTED
          if (the_mutex->Attributes.priority_ceiling <                
    5078:	e5923014 	ldr	r3, [r2, #20]                                 <== NOT EXECUTED
    507c:	e594104c 	ldr	r1, [r4, #76]                                 <== NOT EXECUTED
    5080:	e1510003 	cmp	r1, r3                                        <== NOT EXECUTED
    5084:	2a000003 	bcs	5098 <_CORE_mutex_Surrender+0x144>            <== NOT EXECUTED
              the_thread->current_priority){                          
              _Thread_Change_priority(                                
    5088:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    508c:	eb0002f5 	bl	5c68 <_Thread_Change_priority>                 <== NOT EXECUTED
    5090:	e3a00000 	mov	r0, #0	; 0x0                                  
    5094:	e8bd8010 	pop	{r4, pc}                                      
          }                                                           
          break;                                                      
      }                                                               
    }                                                                 
  } else                                                              
    the_mutex->lock = CORE_MUTEX_UNLOCKED;                            
    5098:	e3a00000 	mov	r0, #0	; 0x0                                  
                                                                      
  return CORE_MUTEX_STATUS_SUCCESSFUL;                                
}                                                                     
    509c:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00009444 <_Debug_Is_enabled>: */ bool _Debug_Is_enabled( rtems_debug_control level ) {
    9444:	e59f3010 	ldr	r3, [pc, #16]	; 945c <_Debug_Is_enabled+0x18> <== NOT EXECUTED
    9448:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    944c:	e1100003 	tst	r0, r3                                        <== NOT EXECUTED
  return (_Debug_Level & level) ? true : false;                       
}                                                                     
    9450:	03a00000 	moveq	r0, #0	; 0x0                                <== NOT EXECUTED
    9454:	13a00001 	movne	r0, #1	; 0x1                                <== NOT EXECUTED
    9458:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00008f88 <_Dual_ported_memory_Manager_initialization>: */ void _Dual_ported_memory_Manager_initialization( uint32_t maximum_ports ) {
    8f88:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  _Objects_Initialize_information(                                    
    8f8c:	e3a0c01c 	mov	ip, #28	; 0x1c                                
 */                                                                   
                                                                      
void _Dual_ported_memory_Manager_initialization(                      
  uint32_t   maximum_ports                                            
)                                                                     
{                                                                     
    8f90:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
  _Objects_Initialize_information(                                    
    8f94:	e58dc000 	str	ip, [sp]                                      
    8f98:	e3a0c000 	mov	ip, #0	; 0x0                                  
 */                                                                   
                                                                      
void _Dual_ported_memory_Manager_initialization(                      
  uint32_t   maximum_ports                                            
)                                                                     
{                                                                     
    8f9c:	e1a03000 	mov	r3, r0                                        
  _Objects_Initialize_information(                                    
    8fa0:	e58dc004 	str	ip, [sp, #4]                                  
    8fa4:	e59f0018 	ldr	r0, [pc, #24]	; 8fc4 <_Dual_ported_memory_Manager_initialization+0x3c>
    8fa8:	e28cc004 	add	ip, ip, #4	; 0x4                              
    8fac:	e3a01002 	mov	r1, #2	; 0x2                                  
    8fb0:	e3a02007 	mov	r2, #7	; 0x7                                  
    8fb4:	e58dc008 	str	ip, [sp, #8]                                  
    8fb8:	ebfff287 	bl	59dc <_Objects_Initialize_information>         
    ,                                                                 
    FALSE,                        /* TRUE if this is a global object class */
    NULL                          /* Proxy extraction support callout */
#endif                                                                
  );                                                                  
}                                                                     
    8fbc:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    8fc0:	e8bd8000 	pop	{pc}                                          
                                                                      

00003d7c <_Event_Seize>: rtems_event_set pending_events; ISR_Level level; RTEMS_API_Control *api; Thread_blocking_operation_States sync_state; executing = _Thread_Executing;
    3d7c:	e59fc104 	ldr	ip, [pc, #260]	; 3e88 <_Event_Seize+0x10c>    
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
    3d80:	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;                                      
    3d84:	e59c4000 	ldr	r4, [ip]                                      
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
    3d88:	e3a0c000 	mov	ip, #0	; 0x0                                  
    3d8c:	e584c034 	str	ip, [r4, #52]                                 
  rtems_event_set  event_in,                                          
  rtems_option     option_set,                                        
  rtems_interval   ticks,                                             
  rtems_event_set *event_out                                          
)                                                                     
{                                                                     
    3d90:	e1a07002 	mov	r7, r2                                        
    3d94:	e1a05003 	mov	r5, r3                                        
  Thread_blocking_operation_States  sync_state;                       
                                                                      
  executing = _Thread_Executing;                                      
  executing->Wait.return_code = RTEMS_SUCCESSFUL;                     
                                                                      
  api = executing->API_Extensions[ THREAD_API_RTEMS ];                
    3d98:	e5946104 	ldr	r6, [r4, #260]                                
                                                                      
  _ISR_Disable( level );                                              
    3d9c:	e10fc000 	mrs	ip, CPSR                                      
    3da0:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           
    3da4:	e129f003 	msr	CPSR_fc, r3                                   
  pending_events = api->pending_events;                               
    3da8:	e5963000 	ldr	r3, [r6]                                      
  seized_events  = _Event_sets_Get( pending_events, event_in );       
                                                                      
  if ( !_Event_sets_Is_empty( seized_events ) &&                      
    3dac:	e0102003 	ands	r2, r0, r3                                   
    3db0:	0a000007 	beq	3dd4 <_Event_Seize+0x58>                      
    3db4:	e1520000 	cmp	r2, r0                                        
    3db8:	0a000001 	beq	3dc4 <_Event_Seize+0x48>                      
    3dbc:	e3110002 	tst	r1, #2	; 0x2                                  
    3dc0:	0a000003 	beq	3dd4 <_Event_Seize+0x58>                      
       (seized_events == event_in || _Options_Is_any( option_set )) ) {
    api->pending_events =                                             
    3dc4:	e1c33002 	bic	r3, r3, r2                                    
    3dc8:	e5863000 	str	r3, [r6]                                      
      _Event_sets_Clear( pending_events, seized_events );             
    _ISR_Enable( level );                                             
    3dcc:	e129f00c 	msr	CPSR_fc, ip                                   
    3dd0:	ea000004 	b	3de8 <_Event_Seize+0x6c>                        
    *event_out = seized_events;                                       
    return;                                                           
  }                                                                   
                                                                      
  if ( _Options_Is_no_wait( option_set ) ) {                          
    3dd4:	e3110001 	tst	r1, #1	; 0x1                                  
    3dd8:	0a000004 	beq	3df0 <_Event_Seize+0x74>                      
    _ISR_Enable( level );                                             
    3ddc:	e129f00c 	msr	CPSR_fc, ip                                   
    executing->Wait.return_code = RTEMS_UNSATISFIED;                  
    3de0:	e3a0300d 	mov	r3, #13	; 0xd                                 
    3de4:	e5843034 	str	r3, [r4, #52]                                 
    *event_out = seized_events;                                       
    3de8:	e5852000 	str	r2, [r5]                                      
    3dec:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
    return;                                                           
  }                                                                   
                                                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;     
    3df0:	e59f3094 	ldr	r3, [pc, #148]	; 3e8c <_Event_Seize+0x110>    
    3df4:	e3a02001 	mov	r2, #1	; 0x1                                  
    3df8:	e5832000 	str	r2, [r3]                                      
                                                                      
  executing->Wait.option            = (uint32_t) option_set;          
    3dfc:	e5841030 	str	r1, [r4, #48]                                 
  executing->Wait.count             = (uint32_t) event_in;            
    3e00:	e5840024 	str	r0, [r4, #36]                                 
  executing->Wait.return_argument   = event_out;                      
    3e04:	e5845028 	str	r5, [r4, #40]                                 
                                                                      
  _ISR_Enable( level );                                               
    3e08:	e129f00c 	msr	CPSR_fc, ip                                   
                                                                      
  if ( ticks ) {                                                      
    3e0c:	e3570000 	cmp	r7, #0	; 0x0                                  
    3e10:	0a00000a 	beq	3e40 <_Event_Seize+0xc4>                      
    _Watchdog_Initialize(                                             
    3e14:	e5943008 	ldr	r3, [r4, #8]                                  
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
  the_watchdog->routine   = routine;                                  
    3e18:	e59f2070 	ldr	r2, [pc, #112]	; 3e90 <_Event_Seize+0x114>    
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
    3e1c:	e3a01000 	mov	r1, #0	; 0x0                                  
  the_watchdog->routine   = routine;                                  
  the_watchdog->id        = id;                                       
  the_watchdog->user_data = user_data;                                
    3e20:	e584106c 	str	r1, [r4, #108]                                
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
    3e24:	e5841050 	str	r1, [r4, #80]                                 
  the_watchdog->routine   = routine;                                  
    3e28:	e5842064 	str	r2, [r4, #100]                                
  the_watchdog->id        = id;                                       
    3e2c:	e5843068 	str	r3, [r4, #104]                                
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
    3e30:	e5847054 	str	r7, [r4, #84]                                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
    3e34:	e59f0058 	ldr	r0, [pc, #88]	; 3e94 <_Event_Seize+0x118>     
    3e38:	e2841048 	add	r1, r4, #72	; 0x48                            
    3e3c:	eb000d2c 	bl	72f4 <_Watchdog_Insert>                        
      NULL                                                            
    );                                                                
    _Watchdog_Insert_ticks( &executing->Timer, ticks );               
  }                                                                   
                                                                      
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
    3e40:	e1a00004 	mov	r0, r4                                        
    3e44:	e3a01c01 	mov	r1, #256	; 0x100                              
    3e48:	eb000b4b 	bl	6b7c <_Thread_Set_state>                       
                                                                      
  _ISR_Disable( level );                                              
    3e4c:	e10fc000 	mrs	ip, CPSR                                      
    3e50:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           
    3e54:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  sync_state = _Event_Sync_state;                                     
    3e58:	e59f202c 	ldr	r2, [pc, #44]	; 3e8c <_Event_Seize+0x110>     
    3e5c:	e5920000 	ldr	r0, [r2]                                      
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
    3e60:	e3a03000 	mov	r3, #0	; 0x0                                  
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
    3e64:	e3500001 	cmp	r0, #1	; 0x1                                  
  _Thread_Set_state( executing, STATES_WAITING_FOR_EVENT );           
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  sync_state = _Event_Sync_state;                                     
  _Event_Sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;         
    3e68:	e5823000 	str	r3, [r2]                                      
  if ( sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED ) {   
    3e6c:	1a000001 	bne	3e78 <_Event_Seize+0xfc>                      
    _ISR_Enable( level );                                             
    3e70:	e129f00c 	msr	CPSR_fc, ip                                   
    3e74:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
   *  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 );  
    3e78:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    3e7c:	e1a0200c 	mov	r2, ip                                        <== NOT EXECUTED
}                                                                     
    3e80:	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 );  
    3e84:	ea000764 	b	5c1c <_Thread_blocking_operation_Cancel>        <== NOT EXECUTED
                                                                      

00003ef0 <_Event_Surrender>: */ void _Event_Surrender( Thread_Control *the_thread ) {
    3ef0:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
    3ef4:	e1a04000 	mov	r4, r0                                        
  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 ];               
    3ef8:	e5906104 	ldr	r6, [r0, #260]                                
                                                                      
  option_set = (rtems_option) the_thread->Wait.option;                
    3efc:	e5907030 	ldr	r7, [r0, #48]                                 
                                                                      
  _ISR_Disable( level );                                              
    3f00:	e10f5000 	mrs	r5, CPSR                                      
    3f04:	e38530c0 	orr	r3, r5, #192	; 0xc0                           
    3f08:	e129f003 	msr	CPSR_fc, r3                                   
  pending_events  = api->pending_events;                              
    3f0c:	e596c000 	ldr	ip, [r6]                                      
  event_condition = (rtems_event_set) the_thread->Wait.count;         
    3f10:	e5902024 	ldr	r2, [r0, #36]                                 
  seized_events = _Event_sets_Get( pending_events, event_condition ); 
                                                                      
  /*                                                                  
   *  No events were seized in this operation                         
   */                                                                 
  if ( _Event_sets_Is_empty( seized_events ) ) {                      
    3f14:	e012000c 	ands	r0, r2, ip                                   
    3f18:	1a000001 	bne	3f24 <_Event_Surrender+0x34>                  
    _ISR_Enable( level );                                             
    3f1c:	e129f005 	msr	CPSR_fc, r5                                   
    3f20:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
  /*                                                                  
   *  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() &&                                       
    3f24:	e59f30f0 	ldr	r3, [pc, #240]	; 401c <_Event_Surrender+0x12c>
    3f28:	e5933000 	ldr	r3, [r3]                                      
    3f2c:	e3530000 	cmp	r3, #0	; 0x0                                  
    3f30:	0a000019 	beq	3f9c <_Event_Surrender+0xac>                  
    3f34:	e59f30e4 	ldr	r3, [pc, #228]	; 4020 <_Event_Surrender+0x130>
    3f38:	e5933000 	ldr	r3, [r3]                                      
    3f3c:	e1540003 	cmp	r4, r3                                        
    3f40:	1a000015 	bne	3f9c <_Event_Surrender+0xac>                  
    3f44:	e59f10d8 	ldr	r1, [pc, #216]	; 4024 <_Event_Surrender+0x134><== NOT EXECUTED
    3f48:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
    3f4c:	e3530001 	cmp	r3, #1	; 0x1                                  <== NOT EXECUTED
    3f50:	0a000002 	beq	3f60 <_Event_Surrender+0x70>                  <== NOT EXECUTED
    3f54:	e5913000 	ldr	r3, [r1]                                      <== NOT EXECUTED
    3f58:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
    3f5c:	1a00000e 	bne	3f9c <_Event_Surrender+0xac>                  <== NOT EXECUTED
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ||
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { 
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
    3f60:	e1500002 	cmp	r0, r2                                        <== NOT EXECUTED
    3f64:	0a000001 	beq	3f70 <_Event_Surrender+0x80>                  <== NOT EXECUTED
    3f68:	e3170002 	tst	r7, #2	; 0x2                                  <== NOT EXECUTED
    3f6c:	0a000008 	beq	3f94 <_Event_Surrender+0xa4>                  <== NOT EXECUTED
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
    3f70:	e1cc3000 	bic	r3, ip, r0                                    <== NOT EXECUTED
    3f74:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
    3f78:	e59f30a4 	ldr	r3, [pc, #164]	; 4024 <_Event_Surrender+0x134><== NOT EXECUTED
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ||
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { 
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
    3f7c:	e5941028 	ldr	r1, [r4, #40]                                 <== NOT EXECUTED
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
    3f80:	e3a02003 	mov	r2, #3	; 0x3                                  <== NOT EXECUTED
    3f84:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
       _Thread_Is_executing( the_thread ) &&                          
       ((_Event_Sync_state == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ||
        (_Event_Sync_state == THREAD_BLOCKING_OPERATION_TIMEOUT)) ) { 
    if ( seized_events == event_condition || _Options_Is_any(option_set) ) {
      api->pending_events = _Event_sets_Clear( pending_events,seized_events );
      the_thread->Wait.count = 0;                                     
    3f88:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    3f8c:	e5843024 	str	r3, [r4, #36]                                 <== NOT EXECUTED
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
    3f90:	e5810000 	str	r0, [r1]                                      <== NOT EXECUTED
      _Event_Sync_state = THREAD_BLOCKING_OPERATION_SATISFIED;        
    }                                                                 
    _ISR_Enable( level );                                             
    3f94:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    3f98:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  Otherwise, this is a normal send to another thread              
   */                                                                 
  if ( _States_Is_waiting_for_event( the_thread->current_state ) ) {  
    3f9c:	e5943010 	ldr	r3, [r4, #16]                                 
    3fa0:	e3130c01 	tst	r3, #256	; 0x100                              
    3fa4:	0a00001a 	beq	4014 <_Event_Surrender+0x124>                 
    if ( seized_events == event_condition || _Options_Is_any( option_set ) ) {
    3fa8:	e1500002 	cmp	r0, r2                                        
    3fac:	0a000001 	beq	3fb8 <_Event_Surrender+0xc8>                  
    3fb0:	e3170002 	tst	r7, #2	; 0x2                                  
    3fb4:	0a000016 	beq	4014 <_Event_Surrender+0x124>                 
      api->pending_events = _Event_sets_Clear( pending_events, seized_events );
    3fb8:	e1cc3000 	bic	r3, ip, r0                                    
      the_thread->Wait.count = 0;                                     
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
    3fbc:	e5942028 	ldr	r2, [r4, #40]                                 
  /*                                                                  
   *  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 );
    3fc0:	e5863000 	str	r3, [r6]                                      
      the_thread->Wait.count = 0;                                     
    3fc4:	e3a03000 	mov	r3, #0	; 0x0                                  
    3fc8:	e5843024 	str	r3, [r4, #36]                                 
      *(rtems_event_set *)the_thread->Wait.return_argument = seized_events;
    3fcc:	e5820000 	str	r0, [r2]                                      
                                                                      
      _ISR_Flash( level );                                            
    3fd0:	e10f3000 	mrs	r3, CPSR                                      
    3fd4:	e129f005 	msr	CPSR_fc, r5                                   
    3fd8:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
      if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {             
    3fdc:	e5943050 	ldr	r3, [r4, #80]                                 
    3fe0:	e3530002 	cmp	r3, #2	; 0x2                                  
    3fe4:	0a000001 	beq	3ff0 <_Event_Surrender+0x100>                 
        _ISR_Enable( level );                                         
    3fe8:	e129f005 	msr	CPSR_fc, r5                                   
    3fec:	ea000004 	b	4004 <_Event_Surrender+0x114>                   
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
    3ff0:	e3a03003 	mov	r3, #3	; 0x3                                  
    3ff4:	e5843050 	str	r3, [r4, #80]                                 
        _Thread_Unblock( the_thread );                                
      } else {                                                        
        _Watchdog_Deactivate( &the_thread->Timer );                   
        _ISR_Enable( level );                                         
    3ff8:	e129f005 	msr	CPSR_fc, r5                                   
        (void) _Watchdog_Remove( &the_thread->Timer );                
    3ffc:	e2840048 	add	r0, r4, #72	; 0x48                            
    4000:	eb000d17 	bl	7464 <_Watchdog_Remove>                        
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
    4004:	e59f101c 	ldr	r1, [pc, #28]	; 4028 <_Event_Surrender+0x138> 
    4008:	e1a00004 	mov	r0, r4                                        
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
}                                                                     
    400c:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          
    4010:	ea00077c 	b	5e08 <_Thread_Clear_state>                      
        _Thread_Unblock( the_thread );                                
      }                                                               
      return;                                                         
    }                                                                 
  }                                                                   
  _ISR_Enable( level );                                               
    4014:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    4018:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

0000402c <_Event_Timeout>: void _Event_Timeout( Objects_Id id, void *ignored ) {
    402c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    4030:	e24dd004 	sub	sp, sp, #4	; 0x4                              
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
  ISR_Level          level;                                           
                                                                      
  the_thread = _Thread_Get( id, &location );                          
    4034:	e1a0100d 	mov	r1, sp                                        
    4038:	eb00087b 	bl	622c <_Thread_Get>                             
  switch ( location ) {                                               
    403c:	e59d2000 	ldr	r2, [sp]                                      
    4040:	e3520000 	cmp	r2, #0	; 0x0                                  
    4044:	1a00001e 	bne	40c4 <_Event_Timeout+0x98>                    
       *  this is the "timeout" transition.  After a request is satisfied,
       *  a timeout is not allowed to occur.                          
       */                                                             
                                                                      
                                                                      
      _ISR_Disable( level );                                          
    4048:	e10f1000 	mrs	r1, CPSR                                      
    404c:	e38130c0 	orr	r3, r1, #192	; 0xc0                           
    4050:	e129f003 	msr	CPSR_fc, r3                                   
        if ( !the_thread->Wait.count ) {  /* verify thread is waiting */
    4054:	e5903024 	ldr	r3, [r0, #36]                                 
    4058:	e3530000 	cmp	r3, #0	; 0x0                                  
    405c:	1a000005 	bne	4078 <_Event_Timeout+0x4c>                    
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
    4060:	e59f2064 	ldr	r2, [pc, #100]	; 40cc <_Event_Timeout+0xa0>   <== NOT EXECUTED
    4064:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    4068:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    406c:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
          _Thread_Unnest_dispatch();                                  
          _ISR_Enable( level );                                       
    4070:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    4074:	ea000012 	b	40c4 <_Event_Timeout+0x98>                      <== NOT EXECUTED
          return;                                                     
        }                                                             
                                                                      
        the_thread->Wait.count = 0;                                   
        if ( _Thread_Is_executing( the_thread ) ) {                   
    4078:	e59f3050 	ldr	r3, [pc, #80]	; 40d0 <_Event_Timeout+0xa4>    
    407c:	e5933000 	ldr	r3, [r3]                                      
    4080:	e1500003 	cmp	r0, r3                                        
          _Thread_Unnest_dispatch();                                  
          _ISR_Enable( level );                                       
          return;                                                     
        }                                                             
                                                                      
        the_thread->Wait.count = 0;                                   
    4084:	e5802024 	str	r2, [r0, #36]                                 
        if ( _Thread_Is_executing( the_thread ) ) {                   
    4088:	1a000004 	bne	40a0 <_Event_Timeout+0x74>                    
          Thread_blocking_operation_States sync = _Event_Sync_state;  
    408c:	e59f2040 	ldr	r2, [pc, #64]	; 40d4 <_Event_Timeout+0xa8>    <== NOT EXECUTED
    4090:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
          if ( (sync == THREAD_BLOCKING_OPERATION_SYNCHRONIZED) ||    
    4094:	e3530001 	cmp	r3, #1	; 0x1                                  <== NOT EXECUTED
               (sync == THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED) ) {
            _Event_Sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;    
    4098:	93a03002 	movls	r3, #2	; 0x2                                <== NOT EXECUTED
    409c:	95823000 	strls	r3, [r2]                                    <== NOT EXECUTED
          }                                                           
        }                                                             
                                                                      
        the_thread->Wait.return_code = RTEMS_TIMEOUT;                 
    40a0:	e3a03006 	mov	r3, #6	; 0x6                                  
    40a4:	e5803034 	str	r3, [r0, #52]                                 
      _ISR_Enable( level );                                           
    40a8:	e129f001 	msr	CPSR_fc, r1                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
    40ac:	e59f1024 	ldr	r1, [pc, #36]	; 40d8 <_Event_Timeout+0xac>    
    40b0:	eb000754 	bl	5e08 <_Thread_Clear_state>                     
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
    40b4:	e59f2010 	ldr	r2, [pc, #16]	; 40cc <_Event_Timeout+0xa0>    
    40b8:	e5923000 	ldr	r3, [r2]                                      
    40bc:	e2433001 	sub	r3, r3, #1	; 0x1                              
    40c0:	e5823000 	str	r3, [r2]                                      
    case OBJECTS_REMOTE:  /* impossible */                            
#endif                                                                
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
}                                                                     
    40c4:	e28dd004 	add	sp, sp, #4	; 0x4                              
    40c8:	e8bd8000 	pop	{pc}                                          
                                                                      

000096f4 <_Heap_Allocate>: void *_Heap_Allocate( Heap_Control *the_heap, size_t size ) {
    96f4:	e92d4070 	push	{r4, r5, r6, lr}                             
    96f8:	e1a04000 	mov	r4, r0                                        
  Heap_Block *the_block;                                              
  void       *ptr = NULL;                                             
  Heap_Statistics *const stats = &the_heap->stats;                    
  Heap_Block *const tail = _Heap_Tail(the_heap);                      
                                                                      
  the_size =                                                          
    96fc:	e5942014 	ldr	r2, [r4, #20]                                 
    9700:	e1a00001 	mov	r0, r1                                        
    9704:	e5941010 	ldr	r1, [r4, #16]                                 
    9708:	ebffef1b 	bl	537c <_Heap_Calc_block_size>                   
    _Heap_Calc_block_size(size, the_heap->page_size, the_heap->min_block_size);
  if(the_size == 0)                                                   
    970c:	e3500000 	cmp	r0, #0	; 0x0                                  
 */                                                                   
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First (                        
  Heap_Control *the_heap                                              
)                                                                     
{                                                                     
  return _Heap_Head(the_heap)->next;                                  
    9710:	15945008 	ldrne	r5, [r4, #8]                                
    9714:	13a06000 	movne	r6, #0	; 0x0                                
    9718:	1a000012 	bne	9768 <_Heap_Allocate+0x74>                    
    971c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
    /* As we always coalesce free blocks, prev block must have been used. */
    _HAssert(_Heap_Is_prev_used(the_block));                          
                                                                      
    /* Don't bother to mask out the HEAP_PREV_USED bit as it won't change the
       result of the comparison. */                                   
    if(the_block->size >= the_size) {                                 
    9720:	e5953004 	ldr	r3, [r5, #4]                                  
    9724:	e1530000 	cmp	r3, r0                                        
    9728:	3a00000c 	bcc	9760 <_Heap_Allocate+0x6c>                    
      (void)_Heap_Block_allocate(the_heap, the_block, the_size );     
    972c:	e1a02000 	mov	r2, r0                                        
    9730:	e1a01005 	mov	r1, r5                                        
    9734:	e1a00004 	mov	r0, r4                                        
    9738:	ebffef1f 	bl	53bc <_Heap_Block_allocate>                    
                                                                      
      ptr = _Heap_User_area(the_block);                               
                                                                      
      stats->allocs += 1;                                             
      stats->searches += search_count + 1;                            
    973c:	e2842048 	add	r2, r4, #72	; 0x48                            
    9740:	e892000c 	ldm	r2, {r2, r3}                                  
    9744:	e2833001 	add	r3, r3, #1	; 0x1                              
    if(the_block->size >= the_size) {                                 
      (void)_Heap_Block_allocate(the_heap, the_block, the_size );     
                                                                      
      ptr = _Heap_User_area(the_block);                               
                                                                      
      stats->allocs += 1;                                             
    9748:	e2822001 	add	r2, r2, #1	; 0x1                              
      stats->searches += search_count + 1;                            
    974c:	e0833006 	add	r3, r3, r6                                    
    if(the_block->size >= the_size) {                                 
      (void)_Heap_Block_allocate(the_heap, the_block, the_size );     
                                                                      
      ptr = _Heap_User_area(the_block);                               
                                                                      
      stats->allocs += 1;                                             
    9750:	e5842048 	str	r2, [r4, #72]                                 
      stats->searches += search_count + 1;                            
    9754:	e584304c 	str	r3, [r4, #76]                                 
    9758:	e2850008 	add	r0, r5, #8	; 0x8                              
    975c:	ea000004 	b	9774 <_Heap_Allocate+0x80>                      
    return NULL;                                                      
                                                                      
  /* Find large enough free block. */                                 
  for(the_block = _Heap_First(the_heap), search_count = 0;            
      the_block != tail;                                              
      the_block = the_block->next, ++search_count)                    
    9760:	e5955008 	ldr	r5, [r5, #8]                                  
    9764:	e2866001 	add	r6, r6, #1	; 0x1                              
  if(the_size == 0)                                                   
    return NULL;                                                      
                                                                      
  /* Find large enough free block. */                                 
  for(the_block = _Heap_First(the_heap), search_count = 0;            
      the_block != tail;                                              
    9768:	e1550004 	cmp	r5, r4                                        
    976c:	1affffeb 	bne	9720 <_Heap_Allocate+0x2c>                    
    9770:	e3a00000 	mov	r0, #0	; 0x0                                  
      _HAssert(_Heap_Is_aligned_ptr(ptr, the_heap->page_size));       
      break;                                                          
    }                                                                 
  }                                                                   
                                                                      
  if(stats->max_search < search_count)                                
    9774:	e5943044 	ldr	r3, [r4, #68]                                 
    9778:	e1530006 	cmp	r3, r6                                        
    stats->max_search = search_count;                                 
    977c:	35846044 	strcc	r6, [r4, #68]                               
                                                                      
  return ptr;                                                         
}                                                                     
    9780:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

0000cbfc <_Heap_Get_information>: Heap_Block *const end = the_heap->final; _HAssert(the_block->prev_size == HEAP_PREV_USED); _HAssert(_Heap_Is_prev_used(the_block)); the_info->Free.number = 0;
    cbfc:	e3a03000 	mov	r3, #0	; 0x0                                  
                                                                      
Heap_Get_information_status _Heap_Get_information(                    
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
    cc00:	e92d4030 	push	{r4, r5, lr}                                 
    cc04:	e1a0c001 	mov	ip, r1                                        
  the_info->Free.number  = 0;                                         
  the_info->Free.total   = 0;                                         
  the_info->Free.largest = 0;                                         
  the_info->Used.number  = 0;                                         
  the_info->Used.total   = 0;                                         
  the_info->Used.largest = 0;                                         
    cc08:	e5813010 	str	r3, [r1, #16]                                 
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
  Heap_Block *the_block = the_heap->start;                            
  Heap_Block *const end = the_heap->final;                            
    cc0c:	e5905024 	ldr	r5, [r0, #36]                                 
                                                                      
  _HAssert(the_block->prev_size == HEAP_PREV_USED);                   
  _HAssert(_Heap_Is_prev_used(the_block));                            
                                                                      
  the_info->Free.number  = 0;                                         
    cc10:	e5813000 	str	r3, [r1]                                      
  the_info->Free.total   = 0;                                         
    cc14:	e5813008 	str	r3, [r1, #8]                                  
  the_info->Free.largest = 0;                                         
    cc18:	e5813004 	str	r3, [r1, #4]                                  
  the_info->Used.number  = 0;                                         
    cc1c:	e581300c 	str	r3, [r1, #12]                                 
  the_info->Used.total   = 0;                                         
    cc20:	e5813014 	str	r3, [r1, #20]                                 
Heap_Get_information_status _Heap_Get_information(                    
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
  Heap_Block *the_block = the_heap->start;                            
    cc24:	e5902020 	ldr	r2, [r0, #32]                                 
    cc28:	ea00001e 	b	cca8 <_Heap_Get_information+0xac>               
    cc2c:	e5923004 	ldr	r3, [r2, #4]                                  
    cc30:	e3c30001 	bic	r0, r3, #1	; 0x1                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
    cc34:	e0824000 	add	r4, r2, r0                                    
                                                                      
  while ( the_block != end ) {                                        
    uint32_t const the_size = _Heap_Block_size(the_block);            
    Heap_Block *const next_block = _Heap_Block_at(the_block, the_size);
                                                                      
    if ( _Heap_Is_prev_used(next_block) ) {                           
    cc38:	e5943004 	ldr	r3, [r4, #4]                                  
    cc3c:	e3130001 	tst	r3, #1	; 0x1                                  
    cc40:	0a000009 	beq	cc6c <_Heap_Get_information+0x70>             
      the_info->Used.number++;                                        
    cc44:	e59c300c 	ldr	r3, [ip, #12]                                 
      the_info->Used.total += the_size;                               
    cc48:	e59c1014 	ldr	r1, [ip, #20]                                 
      if ( the_info->Used.largest < the_size )                        
    cc4c:	e59c2010 	ldr	r2, [ip, #16]                                 
  while ( the_block != end ) {                                        
    uint32_t const the_size = _Heap_Block_size(the_block);            
    Heap_Block *const next_block = _Heap_Block_at(the_block, the_size);
                                                                      
    if ( _Heap_Is_prev_used(next_block) ) {                           
      the_info->Used.number++;                                        
    cc50:	e2833001 	add	r3, r3, #1	; 0x1                              
      the_info->Used.total += the_size;                               
      if ( the_info->Used.largest < the_size )                        
    cc54:	e1520000 	cmp	r2, r0                                        
    uint32_t const the_size = _Heap_Block_size(the_block);            
    Heap_Block *const next_block = _Heap_Block_at(the_block, the_size);
                                                                      
    if ( _Heap_Is_prev_used(next_block) ) {                           
      the_info->Used.number++;                                        
      the_info->Used.total += the_size;                               
    cc58:	e0811000 	add	r1, r1, r0                                    
  while ( the_block != end ) {                                        
    uint32_t const the_size = _Heap_Block_size(the_block);            
    Heap_Block *const next_block = _Heap_Block_at(the_block, the_size);
                                                                      
    if ( _Heap_Is_prev_used(next_block) ) {                           
      the_info->Used.number++;                                        
    cc5c:	e58c300c 	str	r3, [ip, #12]                                 
      the_info->Used.total += the_size;                               
    cc60:	e58c1014 	str	r1, [ip, #20]                                 
      if ( the_info->Used.largest < the_size )                        
        the_info->Used.largest = the_size;                            
    cc64:	358c0010 	strcc	r0, [ip, #16]                               
    cc68:	ea00000d 	b	cca4 <_Heap_Get_information+0xa8>               
    } else {                                                          
      the_info->Free.number++;                                        
    cc6c:	e59c3000 	ldr	r3, [ip]                                      
      the_info->Free.total += the_size;                               
    cc70:	e59c1008 	ldr	r1, [ip, #8]                                  
      if ( the_info->Free.largest < the_size )                        
    cc74:	e59c2004 	ldr	r2, [ip, #4]                                  
      the_info->Used.number++;                                        
      the_info->Used.total += the_size;                               
      if ( the_info->Used.largest < the_size )                        
        the_info->Used.largest = the_size;                            
    } else {                                                          
      the_info->Free.number++;                                        
    cc78:	e2833001 	add	r3, r3, #1	; 0x1                              
      the_info->Free.total += the_size;                               
      if ( the_info->Free.largest < the_size )                        
    cc7c:	e1520000 	cmp	r2, r0                                        
      the_info->Used.total += the_size;                               
      if ( the_info->Used.largest < the_size )                        
        the_info->Used.largest = the_size;                            
    } else {                                                          
      the_info->Free.number++;                                        
      the_info->Free.total += the_size;                               
    cc80:	e0811000 	add	r1, r1, r0                                    
      if ( the_info->Free.largest < the_size )                        
        the_info->Free.largest = the_size;                            
    cc84:	358c0004 	strcc	r0, [ip, #4]                                
      the_info->Used.number++;                                        
      the_info->Used.total += the_size;                               
      if ( the_info->Used.largest < the_size )                        
        the_info->Used.largest = the_size;                            
    } else {                                                          
      the_info->Free.number++;                                        
    cc88:	e58c3000 	str	r3, [ip]                                      
      the_info->Free.total += the_size;                               
    cc8c:	e58c1008 	str	r1, [ip, #8]                                  
      if ( the_info->Free.largest < the_size )                        
        the_info->Free.largest = the_size;                            
      if ( the_size != next_block->prev_size )                        
    cc90:	e5943000 	ldr	r3, [r4]                                      
    cc94:	e1500003 	cmp	r0, r3                                        
    cc98:	0a000001 	beq	cca4 <_Heap_Get_information+0xa8>             
    cc9c:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
    cca0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    cca4:	e1a02004 	mov	r2, r4                                        
  the_info->Free.largest = 0;                                         
  the_info->Used.number  = 0;                                         
  the_info->Used.total   = 0;                                         
  the_info->Used.largest = 0;                                         
                                                                      
  while ( the_block != end ) {                                        
    cca8:	e1520005 	cmp	r2, r5                                        
    ccac:	1affffde 	bne	cc2c <_Heap_Get_information+0x30>             
  }                                                                   
                                                                      
  /* Handle the last dummy block. Don't consider this block to be     
     "used" as client never allocated it. Make 'Used.total' contain this
     blocks' overhead though. */                                      
  the_info->Used.total += HEAP_OVERHEAD;                              
    ccb0:	e59c3014 	ldr	r3, [ip, #20]                                 
    ccb4:	e2833008 	add	r3, r3, #8	; 0x8                              
    ccb8:	e58c3014 	str	r3, [ip, #20]                                 
    ccbc:	e3a00000 	mov	r0, #0	; 0x0                                  
                                                                      
  return HEAP_GET_INFORMATION_SUCCESSFUL;                             
}                                                                     
    ccc0:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00013260 <_Heap_Resize_block>: void *starting_address, size_t size, uint32_t *old_mem_size, uint32_t *avail_mem_size ) {
   13260:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
   13264:	e1a05000 	mov	r5, r0                                        
  Heap_Block *next_next_block;                                        
  uint32_t   old_block_size;                                          
  uint32_t   old_user_size;                                           
  uint32_t   prev_used_flag;                                          
  Heap_Statistics *const stats = &the_heap->stats;                    
  uint32_t const min_block_size = the_heap->min_block_size;           
   13268:	e5900014 	ldr	r0, [r0, #20]                                 
  void         *starting_address,                                     
  size_t        size,                                                 
  uint32_t     *old_mem_size,                                         
  uint32_t     *avail_mem_size                                        
)                                                                     
{                                                                     
   1326c:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
  Heap_Block *next_next_block;                                        
  uint32_t   old_block_size;                                          
  uint32_t   old_user_size;                                           
  uint32_t   prev_used_flag;                                          
  Heap_Statistics *const stats = &the_heap->stats;                    
  uint32_t const min_block_size = the_heap->min_block_size;           
   13270:	e58d0004 	str	r0, [sp, #4]                                  
  uint32_t const page_size = the_heap->page_size;                     
                                                                      
  *old_mem_size = 0;                                                  
  *avail_mem_size = 0;                                                
   13274:	e59d0030 	ldr	r0, [sp, #48]                                 
  void         *starting_address,                                     
  size_t        size,                                                 
  uint32_t     *old_mem_size,                                         
  uint32_t     *avail_mem_size                                        
)                                                                     
{                                                                     
   13278:	e1a09003 	mov	r9, r3                                        
  uint32_t   prev_used_flag;                                          
  Heap_Statistics *const stats = &the_heap->stats;                    
  uint32_t const min_block_size = the_heap->min_block_size;           
  uint32_t const page_size = the_heap->page_size;                     
                                                                      
  *old_mem_size = 0;                                                  
   1327c:	e3a03000 	mov	r3, #0	; 0x0                                  
  uint32_t   old_block_size;                                          
  uint32_t   old_user_size;                                           
  uint32_t   prev_used_flag;                                          
  Heap_Statistics *const stats = &the_heap->stats;                    
  uint32_t const min_block_size = the_heap->min_block_size;           
  uint32_t const page_size = the_heap->page_size;                     
   13280:	e595c010 	ldr	ip, [r5, #16]                                 
                                                                      
  *old_mem_size = 0;                                                  
   13284:	e5893000 	str	r3, [r9]                                      
  *avail_mem_size = 0;                                                
   13288:	e5803000 	str	r3, [r0]                                      
  void         *starting_address,                                     
  size_t        size,                                                 
  uint32_t     *old_mem_size,                                         
  uint32_t     *avail_mem_size                                        
)                                                                     
{                                                                     
   1328c:	e1a04001 	mov	r4, r1                                        
  /* The address passed could be greater than the block address plus  
   * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user
   * pointers. To get rid of this offset we need to align the address down
   * to the nearest 'page_size' boundary. */                          
  _Heap_Align_down_uptr ( &addr, the_heap->page_size );               
  *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET);         
   13290:	e1a00001 	mov	r0, r1                                        
   13294:	e5951010 	ldr	r1, [r5, #16]                                 
   13298:	e1a08002 	mov	r8, r2                                        
  uint32_t   old_block_size;                                          
  uint32_t   old_user_size;                                           
  uint32_t   prev_used_flag;                                          
  Heap_Statistics *const stats = &the_heap->stats;                    
  uint32_t const min_block_size = the_heap->min_block_size;           
  uint32_t const page_size = the_heap->page_size;                     
   1329c:	e58dc008 	str	ip, [sp, #8]                                  
   132a0:	ebfff8ca 	bl	115d0 <__umodsi3>                              
   132a4:	e2443008 	sub	r3, r4, #8	; 0x8                              
RTEMS_INLINE_ROUTINE bool _Heap_Is_block_in (                         
  Heap_Control *the_heap,                                             
  Heap_Block   *the_block                                             
)                                                                     
{                                                                     
  return _Addresses_Is_in_range( the_block, the_heap->start, the_heap->final );
   132a8:	e2851020 	add	r1, r5, #32	; 0x20                            
   132ac:	e8910006 	ldm	r1, {r1, r2}                                  
  /* The address passed could be greater than the block address plus  
   * HEAP_BLOCK_USER_OFFSET as _Heap_Allocate_aligned() may produce such user
   * pointers. To get rid of this offset we need to align the address down
   * to the nearest 'page_size' boundary. */                          
  _Heap_Align_down_uptr ( &addr, the_heap->page_size );               
  *the_block = (Heap_Block *)(addr - HEAP_BLOCK_USER_OFFSET);         
   132b0:	e0607003 	rsb	r7, r0, r3                                    
  *old_mem_size = 0;                                                  
  *avail_mem_size = 0;                                                
                                                                      
  _Heap_Start_of_block(the_heap, starting_address, &the_block);       
  _HAssert(_Heap_Is_block_in(the_heap, the_block));                   
  if (!_Heap_Is_block_in(the_heap, the_block))                        
   132b4:	e1570001 	cmp	r7, r1                                        
   132b8:	33a03000 	movcc	r3, #0	; 0x0                                
   132bc:	23a03001 	movcs	r3, #1	; 0x1                                
   132c0:	e1570002 	cmp	r7, r2                                        
   132c4:	83a03000 	movhi	r3, #0	; 0x0                                
   132c8:	e3530000 	cmp	r3, #0	; 0x0                                  
   132cc:	0a000075 	beq	134a8 <_Heap_Resize_block+0x248>              
    return HEAP_RESIZE_FATAL_ERROR;                                   
                                                                      
  prev_used_flag = the_block->size & HEAP_PREV_USED;                  
   132d0:	e597c004 	ldr	ip, [r7, #4]                                  
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size (                      
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & ~HEAP_PREV_USED);                         
   132d4:	e3cc3001 	bic	r3, ip, #1	; 0x1                              
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
   132d8:	e0876003 	add	r6, r7, r3                                    
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size (                      
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & ~HEAP_PREV_USED);                         
   132dc:	e58d3000 	str	r3, [sp]                                      
  old_block_size = _Heap_Block_size(the_block);                       
  next_block = _Heap_Block_at(the_block, old_block_size);             
                                                                      
  _HAssert(_Heap_Is_block_in(the_heap, next_block));                  
  _HAssert(_Heap_Is_prev_used(next_block));                           
  if ( !_Heap_Is_block_in(the_heap, next_block) ||                    
   132e0:	e1560001 	cmp	r6, r1                                        
   132e4:	33a03000 	movcc	r3, #0	; 0x0                                
   132e8:	23a03001 	movcs	r3, #1	; 0x1                                
   132ec:	e1560002 	cmp	r6, r2                                        
   132f0:	83a03000 	movhi	r3, #0	; 0x0                                
   132f4:	e3530000 	cmp	r3, #0	; 0x0                                  
   132f8:	0a00006a 	beq	134a8 <_Heap_Resize_block+0x248>              
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Heap_Is_prev_used (                        
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & HEAP_PREV_USED);                          
   132fc:	e5963004 	ldr	r3, [r6, #4]                                  
   13300:	e3130001 	tst	r3, #1	; 0x1                                  
   13304:	0a000067 	beq	134a8 <_Heap_Resize_block+0x248>              
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size (                      
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & ~HEAP_PREV_USED);                         
   13308:	e3c3a001 	bic	sl, r3, #1	; 0x1                              
       !_Heap_Is_prev_used(next_block))                               
    return HEAP_RESIZE_FATAL_ERROR;                                   
                                                                      
  next_block_size = _Heap_Block_size(next_block);                     
  next_next_block = _Heap_Block_at(next_block, next_block_size);      
  next_is_used    = (next_block == the_heap->final) ||                
   1330c:	e1560002 	cmp	r6, r2                                        
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
   13310:	e086300a 	add	r3, r6, sl                                    
   13314:	15933004 	ldrne	r3, [r3, #4]                                
   13318:	12032001 	andne	r2, r3, #1	; 0x1                            
                     _Heap_Is_prev_used(next_next_block);             
                                                                      
  /* See _Heap_Size_of_user_area() source for explanations */         
  old_user_size = _Addresses_Subtract(next_block, starting_address)   
   1331c:	e0643006 	rsb	r3, r4, r6                                    
   13320:	e2830004 	add	r0, r3, #4	; 0x4                              
       !_Heap_Is_prev_used(next_block))                               
    return HEAP_RESIZE_FATAL_ERROR;                                   
                                                                      
  next_block_size = _Heap_Block_size(next_block);                     
  next_next_block = _Heap_Block_at(next_block, next_block_size);      
  next_is_used    = (next_block == the_heap->final) ||                
   13324:	03a02001 	moveq	r2, #1	; 0x1                                
  old_user_size = _Addresses_Subtract(next_block, starting_address)   
    + HEAP_BLOCK_HEADER_OFFSET;                                       
                                                                      
  *old_mem_size = old_user_size;                                      
                                                                      
  if (size > old_user_size) {                                         
   13328:	e1580000 	cmp	r8, r0                                        
                                                                      
  /* See _Heap_Size_of_user_area() source for explanations */         
  old_user_size = _Addresses_Subtract(next_block, starting_address)   
    + HEAP_BLOCK_HEADER_OFFSET;                                       
                                                                      
  *old_mem_size = old_user_size;                                      
   1332c:	e5890000 	str	r0, [r9]                                      
       !_Heap_Is_prev_used(next_block))                               
    return HEAP_RESIZE_FATAL_ERROR;                                   
                                                                      
  next_block_size = _Heap_Block_size(next_block);                     
  next_next_block = _Heap_Block_at(next_block, next_block_size);      
  next_is_used    = (next_block == the_heap->final) ||                
   13330:	e202b0ff 	and	fp, r2, #255	; 0xff                           
  _Heap_Start_of_block(the_heap, starting_address, &the_block);       
  _HAssert(_Heap_Is_block_in(the_heap, the_block));                   
  if (!_Heap_Is_block_in(the_heap, the_block))                        
    return HEAP_RESIZE_FATAL_ERROR;                                   
                                                                      
  prev_used_flag = the_block->size & HEAP_PREV_USED;                  
   13334:	e20c9001 	and	r9, ip, #1	; 0x1                              
  old_user_size = _Addresses_Subtract(next_block, starting_address)   
    + HEAP_BLOCK_HEADER_OFFSET;                                       
                                                                      
  *old_mem_size = old_user_size;                                      
                                                                      
  if (size > old_user_size) {                                         
   13338:	9a000019 	bls	133a4 <_Heap_Resize_block+0x144>              
    /* Need to extend the block: allocate part of the next block and then
       merge 'the_block' and allocated block together. */             
    if (next_is_used)    /* Next block is in use, -- no way to extend */
   1333c:	e35b0000 	cmp	fp, #0	; 0x0                                  
   13340:	1a00005a 	bne	134b0 <_Heap_Resize_block+0x250>              
      return HEAP_RESIZE_UNSATISFIED;                                 
    else {                                                            
      uint32_t add_block_size = size - old_user_size;                 
   13344:	e0604008 	rsb	r4, r0, r8                                    
  uint32_t  alignment                                                 
)                                                                     
{                                                                     
  uint32_t v = *value;                                                
  uint32_t a = alignment;                                             
  uint32_t r = v % a;                                                 
   13348:	e1a00004 	mov	r0, r4                                        
   1334c:	e59d1008 	ldr	r1, [sp, #8]                                  
   13350:	ebfff89e 	bl	115d0 <__umodsi3>                              
  *value = r ? v - r + a : v;                                         
   13354:	e3500000 	cmp	r0, #0	; 0x0                                  
   13358:	159dc008 	ldrne	ip, [sp, #8]                                
   1335c:	e59d2004 	ldr	r2, [sp, #4]                                  
   13360:	1084300c 	addne	r3, r4, ip                                  
   13364:	10604003 	rsbne	r4, r0, r3                                  
   13368:	e1540002 	cmp	r4, r2                                        
   1336c:	21a02004 	movcs	r2, r4                                      
      _Heap_Align_up(&add_block_size, page_size);                     
      if (add_block_size < min_block_size)                            
        add_block_size = min_block_size;                              
      if (add_block_size > next_block_size)                           
   13370:	e152000a 	cmp	r2, sl                                        
   13374:	8a00004d 	bhi	134b0 <_Heap_Resize_block+0x250>              
        return HEAP_RESIZE_UNSATISFIED; /* Next block is too small or none. */
      add_block_size =                                                
   13378:	e1a01006 	mov	r1, r6                                        
   1337c:	e1a00005 	mov	r0, r5                                        
   13380:	ebffc80d 	bl	53bc <_Heap_Block_allocate>                    
        _Heap_Block_allocate(the_heap, next_block, add_block_size);   
      /* Merge two subsequent blocks */                               
      the_block->size = (old_block_size + add_block_size) | prev_used_flag;
   13384:	e59d2000 	ldr	r2, [sp]                                      
   13388:	e0800002 	add	r0, r0, r2                                    
   1338c:	e1800009 	orr	r0, r0, r9                                    
   13390:	e5870004 	str	r0, [r7, #4]                                  
      --stats->used_blocks;                                           
   13394:	e5953040 	ldr	r3, [r5, #64]                                 
   13398:	e2433001 	sub	r3, r3, #1	; 0x1                              
   1339c:	e5853040 	str	r3, [r5, #64]                                 
   133a0:	ea00003b 	b	13494 <_Heap_Resize_block+0x234>                
    }                                                                 
  } else {                                                            
                                                                      
    /* Calculate how much memory we could free */                     
    uint32_t free_block_size = old_user_size - size;                  
   133a4:	e0684000 	rsb	r4, r8, r0                                    
  uint32_t *value,                                                    
  uint32_t  alignment                                                 
)                                                                     
{                                                                     
  uint32_t v = *value;                                                
  *value = v - (v % alignment);                                       
   133a8:	e1a00004 	mov	r0, r4                                        
   133ac:	e59d1008 	ldr	r1, [sp, #8]                                  
   133b0:	ebfff886 	bl	115d0 <__umodsi3>                              
    _Heap_Align_down(&free_block_size, page_size);                    
                                                                      
    if (free_block_size > 0) {                                        
   133b4:	e0544000 	subs	r4, r4, r0                                   
   133b8:	0a000035 	beq	13494 <_Heap_Resize_block+0x234>              
                                                                      
      /* To free some memory the block should be shortened so that it can
         can hold 'size' user bytes and still remain not shorter than 
         'min_block_size'. */                                         
                                                                      
      uint32_t new_block_size = old_block_size - free_block_size;     
   133bc:	e89d1008 	ldm	sp, {r3, ip}                                  
   133c0:	e0640003 	rsb	r0, r4, r3                                    
                                                                      
      if (new_block_size < min_block_size) {                          
   133c4:	e150000c 	cmp	r0, ip                                        
   133c8:	2a000007 	bcs	133ec <_Heap_Resize_block+0x18c>              
        uint32_t delta = min_block_size - new_block_size;             
   133cc:	e060300c 	rsb	r3, r0, ip                                    
        _HAssert(free_block_size >= delta);                           
        free_block_size -= delta;                                     
        if (free_block_size == 0) {                                   
   133d0:	e0544003 	subs	r4, r4, r3                                   
          ++stats->resizes;                                           
          return HEAP_RESIZE_SUCCESSFUL;                              
        }                                                             
        new_block_size += delta;                                      
   133d4:	10800003 	addne	r0, r0, r3                                  
      if (new_block_size < min_block_size) {                          
        uint32_t delta = min_block_size - new_block_size;             
        _HAssert(free_block_size >= delta);                           
        free_block_size -= delta;                                     
        if (free_block_size == 0) {                                   
          ++stats->resizes;                                           
   133d8:	05953054 	ldreq	r3, [r5, #84]                               
   133dc:	02833001 	addeq	r3, r3, #1	; 0x1                            
   133e0:	05853054 	streq	r3, [r5, #84]                               
   133e4:	01a00004 	moveq	r0, r4                                      
   133e8:	0a000031 	beq	134b4 <_Heap_Resize_block+0x254>              
      _HAssert(new_block_size >= min_block_size);                     
      _HAssert(new_block_size + free_block_size == old_block_size);   
      _HAssert(_Heap_Is_aligned(new_block_size, page_size));          
      _HAssert(_Heap_Is_aligned(free_block_size, page_size));         
                                                                      
      if (!next_is_used) {                                            
   133ec:	e35b0000 	cmp	fp, #0	; 0x0                                  
   133f0:	1a000013 	bne	13444 <_Heap_Resize_block+0x1e4>              
        /* Extend the next block to the low addresses by 'free_block_size' */
        Heap_Block *const new_next_block =                            
          _Heap_Block_at(the_block, new_block_size);                  
        uint32_t const new_next_block_size =                          
          next_block_size + free_block_size;                          
   133f4:	e084200a 	add	r2, r4, sl                                    
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
   133f8:	e0871000 	add	r1, r7, r0                                    
        _HAssert(_Heap_Is_block_in(the_heap, next_next_block));       
        the_block->size = new_block_size | prev_used_flag;            
   133fc:	e1803009 	orr	r3, r0, r9                                    
        new_next_block->size = new_next_block_size | HEAP_PREV_USED;  
   13400:	e3820001 	orr	r0, r2, #1	; 0x1                              
        Heap_Block *const new_next_block =                            
          _Heap_Block_at(the_block, new_block_size);                  
        uint32_t const new_next_block_size =                          
          next_block_size + free_block_size;                          
        _HAssert(_Heap_Is_block_in(the_heap, next_next_block));       
        the_block->size = new_block_size | prev_used_flag;            
   13404:	e5873004 	str	r3, [r7, #4]                                  
        new_next_block->size = new_next_block_size | HEAP_PREV_USED;  
        next_next_block->prev_size = new_next_block_size;             
   13408:	e786200a 	str	r2, [r6, sl]                                  
          _Heap_Block_at(the_block, new_block_size);                  
        uint32_t const new_next_block_size =                          
          next_block_size + free_block_size;                          
        _HAssert(_Heap_Is_block_in(the_heap, next_next_block));       
        the_block->size = new_block_size | prev_used_flag;            
        new_next_block->size = new_next_block_size | HEAP_PREV_USED;  
   1340c:	e5810004 	str	r0, [r1, #4]                                  
        next_next_block->prev_size = new_next_block_size;             
        _Heap_Block_replace(next_block, new_next_block);              
        the_heap->stats.free_size += free_block_size;                 
   13410:	e5953030 	ldr	r3, [r5, #48]                                 
   13414:	e0833004 	add	r3, r3, r4                                    
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *block = old_block;                                      
  Heap_Block *next = block->next;                                     
  Heap_Block *prev = block->prev;                                     
   13418:	e596000c 	ldr	r0, [r6, #12]                                 
  Heap_Block *old_block,                                              
  Heap_Block *new_block                                               
)                                                                     
{                                                                     
  Heap_Block *block = old_block;                                      
  Heap_Block *next = block->next;                                     
   1341c:	e596c008 	ldr	ip, [r6, #8]                                  
   13420:	e5853030 	str	r3, [r5, #48]                                 
        *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD;
   13424:	e59d3030 	ldr	r3, [sp, #48]                                 
   13428:	e2422004 	sub	r2, r2, #4	; 0x4                              
  Heap_Block *prev = block->prev;                                     
                                                                      
  block = new_block;                                                  
  block->next = next;                                                 
   1342c:	e581c008 	str	ip, [r1, #8]                                  
  block->prev = prev;                                                 
   13430:	e581000c 	str	r0, [r1, #12]                                 
   13434:	e5832000 	str	r2, [r3]                                      
  next->prev = prev->next = block;                                    
   13438:	e5801008 	str	r1, [r0, #8]                                  
   1343c:	e58c100c 	str	r1, [ip, #12]                                 
   13440:	ea000013 	b	13494 <_Heap_Resize_block+0x234>                
                                                                      
      } else if (free_block_size >= min_block_size) {                 
   13444:	e59dc004 	ldr	ip, [sp, #4]                                  <== NOT EXECUTED
   13448:	e154000c 	cmp	r4, ip                                        <== NOT EXECUTED
   1344c:	3a000010 	bcc	13494 <_Heap_Resize_block+0x234>              <== NOT EXECUTED
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
   13450:	e0871000 	add	r1, r7, r0                                    <== NOT EXECUTED
        /* Split the block into 2 used  parts, then free the second one. */
        the_block->size = new_block_size | prev_used_flag;            
   13454:	e1803009 	orr	r3, r0, r9                                    <== NOT EXECUTED
        next_block = _Heap_Block_at(the_block, new_block_size);       
        next_block->size = free_block_size | HEAP_PREV_USED;          
   13458:	e3842001 	orr	r2, r4, #1	; 0x1                              <== NOT EXECUTED
        the_heap->stats.free_size += free_block_size;                 
        *avail_mem_size = new_next_block_size - HEAP_BLOCK_USED_OVERHEAD;
                                                                      
      } else if (free_block_size >= min_block_size) {                 
        /* Split the block into 2 used  parts, then free the second one. */
        the_block->size = new_block_size | prev_used_flag;            
   1345c:	e5873004 	str	r3, [r7, #4]                                  <== NOT EXECUTED
        next_block = _Heap_Block_at(the_block, new_block_size);       
        next_block->size = free_block_size | HEAP_PREV_USED;          
   13460:	e5812004 	str	r2, [r1, #4]                                  <== NOT EXECUTED
        ++stats->used_blocks; /* We have created used block */        
   13464:	e5953040 	ldr	r3, [r5, #64]                                 <== NOT EXECUTED
        --stats->frees;       /* Don't count next call in stats */    
   13468:	e5952050 	ldr	r2, [r5, #80]                                 <== NOT EXECUTED
      } else if (free_block_size >= min_block_size) {                 
        /* Split the block into 2 used  parts, then free the second one. */
        the_block->size = new_block_size | prev_used_flag;            
        next_block = _Heap_Block_at(the_block, new_block_size);       
        next_block->size = free_block_size | HEAP_PREV_USED;          
        ++stats->used_blocks; /* We have created used block */        
   1346c:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
        --stats->frees;       /* Don't count next call in stats */    
   13470:	e2422001 	sub	r2, r2, #1	; 0x1                              <== NOT EXECUTED
      } else if (free_block_size >= min_block_size) {                 
        /* Split the block into 2 used  parts, then free the second one. */
        the_block->size = new_block_size | prev_used_flag;            
        next_block = _Heap_Block_at(the_block, new_block_size);       
        next_block->size = free_block_size | HEAP_PREV_USED;          
        ++stats->used_blocks; /* We have created used block */        
   13474:	e5853040 	str	r3, [r5, #64]                                 <== NOT EXECUTED
        --stats->frees;       /* Don't count next call in stats */    
   13478:	e5852050 	str	r2, [r5, #80]                                 <== NOT EXECUTED
        _Heap_Free(the_heap, _Heap_User_area(next_block));            
   1347c:	e2811008 	add	r1, r1, #8	; 0x8                              <== NOT EXECUTED
   13480:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
   13484:	ebffd8be 	bl	9784 <_Heap_Free>                              <== NOT EXECUTED
        *avail_mem_size = free_block_size - HEAP_BLOCK_USED_OVERHEAD; 
   13488:	e59d0030 	ldr	r0, [sp, #48]                                 <== NOT EXECUTED
   1348c:	e2443004 	sub	r3, r4, #4	; 0x4                              <== NOT EXECUTED
   13490:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  ++stats->resizes;                                                   
   13494:	e5953054 	ldr	r3, [r5, #84]                                 
   13498:	e2833001 	add	r3, r3, #1	; 0x1                              
   1349c:	e5853054 	str	r3, [r5, #84]                                 
   134a0:	e3a00000 	mov	r0, #0	; 0x0                                  
   134a4:	ea000002 	b	134b4 <_Heap_Resize_block+0x254>                
  return HEAP_RESIZE_SUCCESSFUL;                                      
   134a8:	e3a00002 	mov	r0, #2	; 0x2                                  
   134ac:	ea000000 	b	134b4 <_Heap_Resize_block+0x254>                
   134b0:	e3a00001 	mov	r0, #1	; 0x1                                  
}                                                                     
   134b4:	e28dd00c 	add	sp, sp, #12	; 0xc                             
   134b8:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

0000cd74 <_Heap_Walk>: bool _Heap_Walk( Heap_Control *the_heap, int source, bool do_dump ) {
    cd74:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
  Heap_Block *the_block = the_heap->start;                            
    cd78:	e5907020 	ldr	r7, [r0, #32]                                 
                                                                      
  /*                                                                  
   * Handle the 1st block                                             
   */                                                                 
                                                                      
  if (!_Heap_Is_prev_used(the_block)) {                               
    cd7c:	e5973004 	ldr	r3, [r7, #4]                                  
/*                                                                    
  if ( !_System_state_Is_up( _System_state_Get() ) )                  
    return TRUE;                                                      
*/                                                                    
                                                                      
  if (source < 0)                                                     
    cd80:	e2516000 	subs	r6, r1, #0	; 0x0                             
    source = the_heap->stats.instance;                                
    cd84:	b5906028 	ldrlt	r6, [r0, #40]                               
                                                                      
  /*                                                                  
   * Handle the 1st block                                             
   */                                                                 
                                                                      
  if (!_Heap_Is_prev_used(the_block)) {                               
    cd88:	e3130001 	tst	r3, #1	; 0x1                                  
bool _Heap_Walk(                                                      
  Heap_Control  *the_heap,                                            
  int            source,                                              
  bool           do_dump                                              
)                                                                     
{                                                                     
    cd8c:	e1a05000 	mov	r5, r0                                        
  Heap_Block *the_block = the_heap->start;                            
  Heap_Block *const end = the_heap->final;                            
    cd90:	e590b024 	ldr	fp, [r0, #36]                                 
                                                                      
  /*                                                                  
   * Handle the 1st block                                             
   */                                                                 
                                                                      
  if (!_Heap_Is_prev_used(the_block)) {                               
    cd94:	13a04000 	movne	r4, #0	; 0x0                                
    cd98:	1a000003 	bne	cdac <_Heap_Walk+0x38>                        
    printk("PASS: %d !HEAP_PREV_USED flag of 1st block isn't set\n", source);
    cd9c:	e59f01a0 	ldr	r0, [pc, #416]	; cf44 <_Heap_Walk+0x1d0>      <== NOT EXECUTED
    cda0:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    cda4:	ebffde24 	bl	463c <printk>                                  <== NOT EXECUTED
    cda8:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
    error = 1;                                                        
  }                                                                   
                                                                      
  if (the_block->prev_size != the_heap->page_size) {                  
    cdac:	e5972000 	ldr	r2, [r7]                                      
    cdb0:	e5953010 	ldr	r3, [r5, #16]                                 
    cdb4:	e1520003 	cmp	r2, r3                                        
    cdb8:	0a00004c 	beq	cef0 <_Heap_Walk+0x17c>                       
    printk("PASS: %d !prev_size of 1st block isn't page_size\n", source);
    cdbc:	e59f0184 	ldr	r0, [pc, #388]	; cf48 <_Heap_Walk+0x1d4>      <== NOT EXECUTED
    cdc0:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    cdc4:	ebffde1c 	bl	463c <printk>                                  <== NOT EXECUTED
    cdc8:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
    cdcc:	ea000047 	b	cef0 <_Heap_Walk+0x17c>                         <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size (                      
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & ~HEAP_PREV_USED);                         
    cdd0:	e5979004 	ldr	r9, [r7, #4]                                  
        printk(" prev_size %d", the_block->prev_size);                
      else                                                            
        printk(" (prev_size) %d", the_block->prev_size);              
    }                                                                 
                                                                      
    if (!_Heap_Is_block_in(the_heap, next_block)) {                   
    cdd4:	e5952020 	ldr	r2, [r5, #32]                                 
    cdd8:	e3c9a001 	bic	sl, r9, #1	; 0x1                              
    cddc:	e5953024 	ldr	r3, [r5, #36]                                 
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_Block_at(                      
  void     *base,                                                     
  uint32_t  offset                                                    
)                                                                     
{                                                                     
  return (Heap_Block *) _Addresses_Add_offset( base, offset );        
    cde0:	e087800a 	add	r8, r7, sl                                    
    cde4:	e1580002 	cmp	r8, r2                                        
    cde8:	33a01000 	movcc	r1, #0	; 0x0                                
    cdec:	23a01001 	movcs	r1, #1	; 0x1                                
    cdf0:	e1580003 	cmp	r8, r3                                        
    cdf4:	83a01000 	movhi	r1, #0	; 0x0                                
    cdf8:	e3510000 	cmp	r1, #0	; 0x0                                  
    cdfc:	1a000004 	bne	ce14 <_Heap_Walk+0xa0>                        
      if (do_dump) printk("\n");                                      
      printk("PASS: %d !block %p is out of heap\n", source, next_block);
    ce00:	e1a02008 	mov	r2, r8                                        <== NOT EXECUTED
    ce04:	e59f0140 	ldr	r0, [pc, #320]	; cf4c <_Heap_Walk+0x1d8>      <== NOT EXECUTED
    ce08:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    ce0c:	ebffde0a 	bl	463c <printk>                                  <== NOT EXECUTED
    ce10:	ea000039 	b	cefc <_Heap_Walk+0x188>                         <== NOT EXECUTED
      error = 1;                                                      
      break;                                                          
    }                                                                 
                                                                      
    if (!_Heap_Is_prev_used(next_block)) {                            
    ce14:	e5983004 	ldr	r3, [r8, #4]                                  
    ce18:	e3130001 	tst	r3, #1	; 0x1                                  
    ce1c:	1a00001e 	bne	ce9c <_Heap_Walk+0x128>                       
      if (do_dump)                                                    
        printk( " prev %p next %p", the_block->prev, the_block->next);
      if (_Heap_Block_size(the_block) != next_block->prev_size) {     
    ce20:	e5983000 	ldr	r3, [r8]                                      
    ce24:	e15a0003 	cmp	sl, r3                                        
    ce28:	0a000003 	beq	ce3c <_Heap_Walk+0xc8>                        
        if (do_dump) printk("\n");                                    
        printk("PASS: %d !front and back sizes don't match", source); 
    ce2c:	e59f011c 	ldr	r0, [pc, #284]	; cf50 <_Heap_Walk+0x1dc>      <== NOT EXECUTED
    ce30:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    ce34:	ebffde00 	bl	463c <printk>                                  <== NOT EXECUTED
    ce38:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
        error = 1;                                                    
      }                                                               
      if (!prev_used) {                                               
    ce3c:	e3190001 	tst	r9, #1	; 0x1                                  
    ce40:	1a000006 	bne	ce60 <_Heap_Walk+0xec>                        
        if (do_dump || error) printk("\n");                           
    ce44:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    ce48:	159f0104 	ldrne	r0, [pc, #260]	; cf54 <_Heap_Walk+0x1e0>    <== NOT EXECUTED
    ce4c:	1bffddfa 	blne	463c <printk>                                <== NOT EXECUTED
        printk("PASS: %d !two consecutive blocks are free", source);  
    ce50:	e59f0100 	ldr	r0, [pc, #256]	; cf58 <_Heap_Walk+0x1e4>      <== NOT EXECUTED
    ce54:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    ce58:	ebffddf7 	bl	463c <printk>                                  <== NOT EXECUTED
    ce5c:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE Heap_Block *_Heap_First (                        
  Heap_Control *the_heap                                              
)                                                                     
{                                                                     
  return _Heap_Head(the_heap)->next;                                  
    ce60:	e5953008 	ldr	r3, [r5, #8]                                  
    ce64:	ea000000 	b	ce6c <_Heap_Walk+0xf8>                          
      }                                                               
                                                                      
      { /* Check if 'the_block' is in the free block list */          
        Heap_Block* block = _Heap_First(the_heap);                    
        while(block != the_block && block != tail)                    
          block = block->next;                                        
    ce68:	e5933008 	ldr	r3, [r3, #8]                                  
        error = 1;                                                    
      }                                                               
                                                                      
      { /* Check if 'the_block' is in the free block list */          
        Heap_Block* block = _Heap_First(the_heap);                    
        while(block != the_block && block != tail)                    
    ce6c:	e1530007 	cmp	r3, r7                                        
    ce70:	11530005 	cmpne	r3, r5                                      
    ce74:	1afffffb 	bne	ce68 <_Heap_Walk+0xf4>                        
          block = block->next;                                        
        if(block != the_block) {                                      
    ce78:	e1530007 	cmp	r3, r7                                        
    ce7c:	0a000006 	beq	ce9c <_Heap_Walk+0x128>                       
          if (do_dump || error) printk("\n");                         
    ce80:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    ce84:	159f00c8 	ldrne	r0, [pc, #200]	; cf54 <_Heap_Walk+0x1e0>    <== NOT EXECUTED
    ce88:	1bffddeb 	blne	463c <printk>                                <== NOT EXECUTED
          printk("PASS: %d !the_block not in the free list", source); 
    ce8c:	e59f00c8 	ldr	r0, [pc, #200]	; cf5c <_Heap_Walk+0x1e8>      <== NOT EXECUTED
    ce90:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    ce94:	ebffdde8 	bl	463c <printk>                                  <== NOT EXECUTED
    ce98:	ea000001 	b	cea4 <_Heap_Walk+0x130>                         <== NOT EXECUTED
          error = 1;                                                  
        }                                                             
      }                                                               
                                                                      
    }                                                                 
    if (do_dump || error) printk("\n");                               
    ce9c:	e3540000 	cmp	r4, #0	; 0x0                                  
    cea0:	0a000002 	beq	ceb0 <_Heap_Walk+0x13c>                       
    cea4:	e59f00a8 	ldr	r0, [pc, #168]	; cf54 <_Heap_Walk+0x1e0>      <== NOT EXECUTED
    cea8:	ebffdde3 	bl	463c <printk>                                  <== NOT EXECUTED
    ceac:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
                                                                      
    if (the_size < the_heap->min_block_size) {                        
    ceb0:	e5953014 	ldr	r3, [r5, #20]                                 
    ceb4:	e15a0003 	cmp	sl, r3                                        
      printk("PASS: %d !block size is too small\n", source);          
    ceb8:	359f00a0 	ldrcc	r0, [pc, #160]	; cf60 <_Heap_Walk+0x1ec>    
    cebc:	3a000005 	bcc	ced8 <_Heap_Walk+0x164>                       
      error = 1;                                                      
      break;                                                          
    }                                                                 
    if (!_Heap_Is_aligned( the_size, the_heap->page_size)) {          
    cec0:	e1a0000a 	mov	r0, sl                                        
    cec4:	e5951010 	ldr	r1, [r5, #16]                                 
    cec8:	eb0025b9 	bl	165b4 <__umodsi3>                              
    cecc:	e3500000 	cmp	r0, #0	; 0x0                                  
    ced0:	0a000003 	beq	cee4 <_Heap_Walk+0x170>                       
      printk("PASS: %d !block size is misaligned\n", source);         
    ced4:	e59f0088 	ldr	r0, [pc, #136]	; cf64 <_Heap_Walk+0x1f0>      <== NOT EXECUTED
    ced8:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    cedc:	ebffddd6 	bl	463c <printk>                                  <== NOT EXECUTED
    cee0:	ea000005 	b	cefc <_Heap_Walk+0x188>                         <== NOT EXECUTED
      error = 1;                                                      
    }                                                                 
                                                                      
    if (++passes > (do_dump ? 10 : 0) && error)                       
    cee4:	e3540000 	cmp	r4, #0	; 0x0                                  
    cee8:	1a000003 	bne	cefc <_Heap_Walk+0x188>                       
      break;                                                          
    ceec:	e1a07008 	mov	r7, r8                                        
  if (the_block->prev_size != the_heap->page_size) {                  
    printk("PASS: %d !prev_size of 1st block isn't page_size\n", source);
    error = 1;                                                        
  }                                                                   
                                                                      
  while ( the_block != end ) {                                        
    cef0:	e157000b 	cmp	r7, fp                                        
    cef4:	1affffb5 	bne	cdd0 <_Heap_Walk+0x5c>                        
    cef8:	ea000005 	b	cf14 <_Heap_Walk+0x1a0>                         
                                                                      
    the_block = next_block;                                           
  }                                                                   
                                                                      
  if (the_block != end) {                                             
    printk("PASS: %d !last block address isn't equal to 'final' %p %p\n",
    cefc:	e1a0300b 	mov	r3, fp                                        <== NOT EXECUTED
    cf00:	e59f0060 	ldr	r0, [pc, #96]	; cf68 <_Heap_Walk+0x1f4>       <== NOT EXECUTED
    cf04:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    cf08:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
    cf0c:	ebffddca 	bl	463c <printk>                                  <== NOT EXECUTED
    cf10:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Heap_Block_size (                      
  Heap_Block *the_block                                               
)                                                                     
{                                                                     
  return (the_block->size & ~HEAP_PREV_USED);                         
    cf14:	e5973004 	ldr	r3, [r7, #4]                                  
      source, the_block, end);                                        
    error = 1;                                                        
  }                                                                   
                                                                      
  if (_Heap_Block_size(the_block) != the_heap->page_size) {           
    cf18:	e5950010 	ldr	r0, [r5, #16]                                 
    cf1c:	e3c32001 	bic	r2, r3, #1	; 0x1                              
    cf20:	e1520000 	cmp	r2, r0                                        
    cf24:	0a000004 	beq	cf3c <_Heap_Walk+0x1c8>                       
    printk("PASS: %d !last block's size isn't page_size (%d != %d)\n", source,
    cf28:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
    cf2c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    cf30:	e59f0034 	ldr	r0, [pc, #52]	; cf6c <_Heap_Walk+0x1f8>       <== NOT EXECUTED
    cf34:	ebffddc0 	bl	463c <printk>                                  <== NOT EXECUTED
    cf38:	e3a04001 	mov	r4, #1	; 0x1                                  <== NOT EXECUTED
  if(do_dump && error)                                                
    _Internal_error_Occurred( INTERNAL_ERROR_CORE, TRUE, 0xffff0000 );
                                                                      
  return error;                                                       
                                                                      
}                                                                     
    cf3c:	e1a00004 	mov	r0, r4                                        
    cf40:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

00004a30 <_IO_Initialize_all_drivers>: * * Output Parameters: NONE */ void _IO_Initialize_all_drivers( void ) {
    4a30:	e92d4030 	push	{r4, r5, lr}                                 
    4a34:	e3a04000 	mov	r4, #0	; 0x0                                  
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
    4a38:	e59f5024 	ldr	r5, [pc, #36]	; 4a64 <_IO_Initialize_all_drivers+0x34>
    4a3c:	ea000000 	b	4a44 <_IO_Initialize_all_drivers+0x14>          
     (void) rtems_io_initialize( major, 0, NULL );                    
    4a40:	eb001286 	bl	9460 <rtems_io_initialize>                     
                                                                      
void _IO_Initialize_all_drivers( void )                               
{                                                                     
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
    4a44:	e5953000 	ldr	r3, [r5]                                      
     (void) rtems_io_initialize( major, 0, NULL );                    
    4a48:	e3a01000 	mov	r1, #0	; 0x0                                  
                                                                      
void _IO_Initialize_all_drivers( void )                               
{                                                                     
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
    4a4c:	e1540003 	cmp	r4, r3                                        
     (void) rtems_io_initialize( major, 0, NULL );                    
    4a50:	e1a00004 	mov	r0, r4                                        
    4a54:	e1a02001 	mov	r2, r1                                        
                                                                      
void _IO_Initialize_all_drivers( void )                               
{                                                                     
   rtems_device_major_number major;                                   
                                                                      
   for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )         
    4a58:	e2844001 	add	r4, r4, #1	; 0x1                              
    4a5c:	3afffff7 	bcc	4a40 <_IO_Initialize_all_drivers+0x10>        
     (void) rtems_io_initialize( major, 0, NULL );                    
}                                                                     
    4a60:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00009978 <_Objects_API_maximum_class>: int _Objects_API_maximum_class( uint32_t api ) { switch (api) {
    9978:	e2400001 	sub	r0, r0, #1	; 0x1                              
    997c:	e3500003 	cmp	r0, #3	; 0x3                                  
    9980:	979ff100 	ldrls	pc, [pc, r0, lsl #2]                        
    9984:	ea00000b 	b	99b8 <_Objects_API_maximum_class+0x40>          
    9988:	000099a0 	.word	0x000099a0                                  
    998c:	00009998 	.word	0x00009998                                  
    9990:	000099a8 	.word	0x000099a8                                  
    9994:	000099b0 	.word	0x000099b0                                  
    9998:	e3a0000a 	mov	r0, #10	; 0xa                                 
    999c:	e12fff1e 	bx	lr                                             
    99a0:	e3a00002 	mov	r0, #2	; 0x2                                  
    99a4:	e12fff1e 	bx	lr                                             
    99a8:	e3a0000c 	mov	r0, #12	; 0xc                                 <== NOT EXECUTED
    99ac:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
    case OBJECTS_INTERNAL_API:                                        
      return OBJECTS_INTERNAL_CLASSES_LAST;                           
    case OBJECTS_CLASSIC_API:                                         
      return OBJECTS_RTEMS_CLASSES_LAST;                              
    case OBJECTS_POSIX_API:                                           
      return OBJECTS_POSIX_CLASSES_LAST;                              
    99b0:	e3a00008 	mov	r0, #8	; 0x8                                  
    99b4:	e12fff1e 	bx	lr                                             
    case OBJECTS_ITRON_API:                                           
      return OBJECTS_ITRON_CLASSES_LAST;                              
    99b8:	e3e00000 	mvn	r0, #0	; 0x0                                  
    case OBJECTS_NO_API:                                              
    default:                                                          
      break;                                                          
  }                                                                   
  return -1;                                                          
}                                                                     
    99bc:	e12fff1e 	bx	lr                                             
                                                                      

00005570 <_Objects_Extend_information>: */ void _Objects_Extend_information( Objects_Information *information ) {
    5570:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
 */                                                                   
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_index(                     
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (id >> OBJECTS_INDEX_START_BIT) & OBJECTS_INDEX_VALID_BITS;  
    5574:	e1d060b8 	ldrh	r6, [r0, #8]                                 
                                                                      
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  if ( information->maximum < minimum_index )                         
    5578:	e1d041b0 	ldrh	r4, [r0, #16]                                
    557c:	e1540006 	cmp	r4, r6                                        
    5580:	33a07000 	movcc	r7, #0	; 0x0                                
 */                                                                   
                                                                      
void _Objects_Extend_information(                                     
  Objects_Information *information                                    
)                                                                     
{                                                                     
    5584:	e24dd014 	sub	sp, sp, #20	; 0x14                            
    5588:	e1a05000 	mov	r5, r0                                        
                                                                      
  minimum_index = _Objects_Get_index( information->minimum_id );      
  index_base    = minimum_index;                                      
  block         = 0;                                                  
                                                                      
  if ( information->maximum < minimum_index )                         
    558c:	31a0a006 	movcc	sl, r6                                      
    5590:	31a08007 	movcc	r8, r7                                      
    5594:	3a00000f 	bcc	55d8 <_Objects_Extend_information+0x68>       
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
    5598:	e5909014 	ldr	r9, [r0, #20]                                 
    559c:	e1a00004 	mov	r0, r4                                        
    55a0:	e1a01009 	mov	r1, r9                                        
    55a4:	eb002fc5 	bl	114c0 <__aeabi_uidiv>                          
    55a8:	e1a0a006 	mov	sl, r6                                        
    55ac:	e1a07000 	mov	r7, r0                                        
    55b0:	e3a08000 	mov	r8, #0	; 0x0                                  
    55b4:	ea000005 	b	55d0 <_Objects_Extend_information+0x60>         
                                                                      
    for ( ; block < block_count; block++ ) {                          
      if ( information->object_blocks[ block ] == NULL )              
    55b8:	e5953034 	ldr	r3, [r5, #52]                                 
    55bc:	e7933108 	ldr	r3, [r3, r8, lsl #2]                          
    55c0:	e3530000 	cmp	r3, #0	; 0x0                                  
    55c4:	0a000003 	beq	55d8 <_Objects_Extend_information+0x68>       
        break;                                                        
      else                                                            
        index_base += information->allocation_size;                   
    55c8:	e08aa009 	add	sl, sl, r9                                    
  if ( information->maximum < minimum_index )                         
    block_count = 0;                                                  
  else {                                                              
    block_count = information->maximum / information->allocation_size;
                                                                      
    for ( ; block < block_count; block++ ) {                          
    55cc:	e2888001 	add	r8, r8, #1	; 0x1                              
    55d0:	e1580007 	cmp	r8, r7                                        
    55d4:	3afffff7 	bcc	55b8 <_Objects_Extend_information+0x48>       
                                                                      
  /*                                                                  
   *  If the index_base is the maximum we need to grow the tables.    
   */                                                                 
                                                                      
  if (index_base >= information->maximum ) {                          
    55d8:	e15a0004 	cmp	sl, r4                                        
    55dc:	3a000056 	bcc	573c <_Objects_Extend_information+0x1cc>      
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
                                                                      
    if ( information->auto_extend ) {                                 
    55e0:	e5d52012 	ldrb	r2, [r5, #18]                                
     *  Up the block count and maximum                                
     */                                                               
                                                                      
    block_count++;                                                    
                                                                      
    maximum = information->maximum + information->allocation_size;    
    55e4:	e5953014 	ldr	r3, [r5, #20]                                 
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
                                                                      
    if ( information->auto_extend ) {                                 
    55e8:	e3520000 	cmp	r2, #0	; 0x0                                  
     *  Up the block count and maximum                                
     */                                                               
                                                                      
    block_count++;                                                    
                                                                      
    maximum = information->maximum + information->allocation_size;    
    55ec:	e0843003 	add	r3, r4, r3                                    
    55f0:	e58d3004 	str	r3, [sp, #4]                                  
                                                                      
    /*                                                                
     *  Up the block count and maximum                                
     */                                                               
                                                                      
    block_count++;                                                    
    55f4:	e2874001 	add	r4, r7, #1	; 0x1                              
    55f8:	e0832006 	add	r2, r3, r6                                    
                                                                      
    /*                                                                
     *  Allocate the tables and break it up.                          
     */                                                               
                                                                      
    if ( information->auto_extend ) {                                 
    55fc:	0a000007 	beq	5620 <_Objects_Extend_information+0xb0>       
      object_blocks = (void**)                                        
    5600:	e3a03003 	mov	r3, #3	; 0x3                                  
    5604:	e0202493 	mla	r0, r3, r4, r2                                
    5608:	e1a00100 	lsl	r0, r0, #2                                    
    560c:	eb0007e6 	bl	75ac <_Workspace_Allocate>                     
          block_count *                                               
             (sizeof(void *) + sizeof(uint32_t) + sizeof(Objects_Name *)) +
          ((maximum + minimum_index) * sizeof(Objects_Control *))     
          );                                                          
                                                                      
      if ( !object_blocks )                                           
    5610:	e3500000 	cmp	r0, #0	; 0x0                                  
    5614:	e58d0000 	str	r0, [sp]                                      
    5618:	1a000005 	bne	5634 <_Objects_Extend_information+0xc4>       
    561c:	ea000078 	b	5804 <_Objects_Extend_information+0x294>        <== NOT EXECUTED
        return;                                                       
    }                                                                 
    else {                                                            
      object_blocks = (void**)                                        
    5620:	e3a03003 	mov	r3, #3	; 0x3                                  
    5624:	e0202493 	mla	r0, r3, r4, r2                                
    5628:	e1a00100 	lsl	r0, r0, #2                                    
    562c:	eb0007e2 	bl	75bc <_Workspace_Allocate_or_fatal_error>      
    5630:	e58d0000 	str	r0, [sp]                                      
     *  in the copies.                                                
     */                                                               
                                                                      
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
    5634:	e1d531b0 	ldrh	r3, [r5, #16]                                
    /*                                                                
     *  Break the block into the various sections.                    
     *                                                                
     */                                                               
                                                                      
    inactive_per_block = (uint32_t *) _Addresses_Add_offset(          
    5638:	e59d1000 	ldr	r1, [sp]                                      
    563c:	e1a02104 	lsl	r2, r4, #2                                    
     *  in the copies.                                                
     */                                                               
                                                                      
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
    5640:	e1530006 	cmp	r3, r6                                        
    /*                                                                
     *  Break the block into the various sections.                    
     *                                                                
     */                                                               
                                                                      
    inactive_per_block = (uint32_t *) _Addresses_Add_offset(          
    5644:	e081b002 	add	fp, r1, r2                                    
     *  in the copies.                                                
     */                                                               
                                                                      
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
    5648:	93a03000 	movls	r3, #0	; 0x0                                
    564c:	e08b9002 	add	r9, fp, r2                                    
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
        local_table[ index ] = NULL;                                  
    5650:	91a02003 	movls	r2, r3                                      
     *  in the copies.                                                
     */                                                               
                                                                      
    block_count--;                                                    
                                                                      
    if ( information->maximum > minimum_index ) {                     
    5654:	9a000011 	bls	56a0 <_Objects_Extend_information+0x130>      
      /*                                                              
       *  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,                                          
    5658:	e1a04107 	lsl	r4, r7, #2                                    
    565c:	e5951034 	ldr	r1, [r5, #52]                                 
    5660:	e1a02004 	mov	r2, r4                                        
    5664:	e59d0000 	ldr	r0, [sp]                                      
    5668:	eb001633 	bl	af3c <memcpy>                                  
              information->object_blocks,                             
              block_count * sizeof(void*) );                          
      memcpy( inactive_per_block,                                     
    566c:	e1a02004 	mov	r2, r4                                        
    5670:	e5951030 	ldr	r1, [r5, #48]                                 
    5674:	e1a0000b 	mov	r0, fp                                        
    5678:	eb00162f 	bl	af3c <memcpy>                                  
              information->inactive_per_block,                        
              block_count * sizeof(uint32_t) );                       
      memcpy( local_table,                                            
    567c:	e1d521b0 	ldrh	r2, [r5, #16]                                
    5680:	e0862002 	add	r2, r6, r2                                    
    5684:	e1a02102 	lsl	r2, r2, #2                                    
    5688:	e1a00009 	mov	r0, r9                                        
    568c:	e595101c 	ldr	r1, [r5, #28]                                 
    5690:	eb001629 	bl	af3c <memcpy>                                  
    5694:	ea000003 	b	56a8 <_Objects_Extend_information+0x138>        
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
        local_table[ index ] = NULL;                                  
    5698:	e7892103 	str	r2, [r9, r3, lsl #2]                          
    else {                                                            
                                                                      
      /*                                                              
       *  Deal with the special case of the 0 to minimum_index        
       */                                                             
      for ( index = 0; index < minimum_index; index++ ) {             
    569c:	e2833001 	add	r3, r3, #1	; 0x1                              
    56a0:	e1530006 	cmp	r3, r6                                        
    56a4:	3afffffb 	bcc	5698 <_Objects_Extend_information+0x128>      
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
                                                                      
    object_blocks[block_count] = NULL;                                
    56a8:	e3a03000 	mov	r3, #0	; 0x0                                  
    inactive_per_block[block_count] = 0;                              
    56ac:	e78b3107 	str	r3, [fp, r7, lsl #2]                          
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
                                                                      
    object_blocks[block_count] = NULL;                                
    56b0:	e59dc000 	ldr	ip, [sp]                                      
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
    56b4:	e5952014 	ldr	r2, [r5, #20]                                 
                                                                      
    /*                                                                
     *  Initialise the new entries in the table.                      
     */                                                               
                                                                      
    object_blocks[block_count] = NULL;                                
    56b8:	e78c3107 	str	r3, [ip, r7, lsl #2]                          
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
    56bc:	e08a0002 	add	r0, sl, r2                                    
    56c0:	e089110a 	add	r1, r9, sl, lsl #2                            
    56c4:	e1a0200a 	mov	r2, sl                                        
    56c8:	ea000000 	b	56d0 <_Objects_Extend_information+0x160>        
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
    56cc:	e5013004 	str	r3, [r1, #-4]                                 
                                                                      
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
    56d0:	e1520000 	cmp	r2, r0                                        
          index++ ) {                                                 
    56d4:	e2811004 	add	r1, r1, #4	; 0x4                              
    56d8:	e2822001 	add	r2, r2, #1	; 0x1                              
                                                                      
    object_blocks[block_count] = NULL;                                
    inactive_per_block[block_count] = 0;                              
                                                                      
    for ( index=index_base ;                                          
          index < ( information->allocation_size + index_base );      
    56dc:	3afffffa 	bcc	56cc <_Objects_Extend_information+0x15c>      
          index++ ) {                                                 
      local_table[ index ] = NULL;                                    
    }                                                                 
                                                                      
    _ISR_Disable( level );                                            
    56e0:	e10f0000 	mrs	r0, CPSR                                      
    56e4:	e38030c0 	orr	r3, r0, #192	; 0xc0                           
    56e8:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = maximum;                                   
    information->maximum_id = _Objects_Build_id(                      
    56ec:	e5953000 	ldr	r3, [r5]                                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = maximum;                                   
    56f0:	e59dc004 	ldr	ip, [sp, #4]                                  
    information->maximum_id = _Objects_Build_id(                      
    56f4:	e1d510b4 	ldrh	r1, [r5, #4]                                 
    56f8:	e1a03c03 	lsl	r3, r3, #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 = maximum;                                   
    56fc:	e1a0280c 	lsl	r2, ip, #16                                   
    information->maximum_id = _Objects_Build_id(                      
    5700:	e3833801 	orr	r3, r3, #65536	; 0x10000                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = maximum;                                   
    5704:	e1a02822 	lsr	r2, r2, #16                                   
    information->maximum_id = _Objects_Build_id(                      
    5708:	e1833d81 	orr	r3, r3, r1, lsl #27                           
                                                                      
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    570c:	e59d1000 	ldr	r1, [sp]                                      
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    information->maximum = maximum;                                   
    information->maximum_id = _Objects_Build_id(                      
    5710:	e1833002 	orr	r3, r3, r2                                    
    5714:	e585300c 	str	r3, [r5, #12]                                 
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    5718:	e585b030 	str	fp, [r5, #48]                                 
      local_table[ index ] = NULL;                                    
    }                                                                 
                                                                      
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
    571c:	e5953034 	ldr	r3, [r5, #52]                                 
                                                                      
    information->object_blocks = object_blocks;                       
    information->inactive_per_block = inactive_per_block;             
    information->local_table = local_table;                           
    5720:	e585901c 	str	r9, [r5, #28]                                 
    information->maximum = maximum;                                   
    5724:	e1c521b0 	strh	r2, [r5, #16]                                
                                                                      
    _ISR_Disable( level );                                            
                                                                      
    old_tables = information->object_blocks;                          
                                                                      
    information->object_blocks = object_blocks;                       
    5728:	e5851034 	str	r1, [r5, #52]                                 
        information->the_class,                                       
        _Objects_Local_node,                                          
        information->maximum                                          
      );                                                              
                                                                      
    _ISR_Enable( level );                                             
    572c:	e129f000 	msr	CPSR_fc, r0                                   
                                                                      
    if ( old_tables )                                                 
    5730:	e3530000 	cmp	r3, #0	; 0x0                                  
      _Workspace_Free( old_tables );                                  
    5734:	11a00003 	movne	r0, r3                                      
    5738:	1b000797 	blne	759c <_Workspace_Free>                       
                                                                      
  /*                                                                  
   *  Allocate the name table, and the objects                        
   */                                                                 
                                                                      
  if ( information->auto_extend ) {                                   
    573c:	e5d53012 	ldrb	r3, [r5, #18]                                
    5740:	e3530000 	cmp	r3, #0	; 0x0                                  
    5744:	e5952014 	ldr	r2, [r5, #20]                                 
    5748:	e5954034 	ldr	r4, [r5, #52]                                 
    574c:	e5953018 	ldr	r3, [r5, #24]                                 
    5750:	0a000007 	beq	5774 <_Objects_Extend_information+0x204>      
    information->object_blocks[ block ] =                             
    5754:	e0000392 	mul	r0, r2, r3                                    
    5758:	eb000793 	bl	75ac <_Workspace_Allocate>                     
      _Workspace_Allocate(                                            
        (information->allocation_size * information->size)            
      );                                                              
                                                                      
    if ( !information->object_blocks[ block ] )                       
    575c:	e5953034 	ldr	r3, [r5, #52]                                 
  /*                                                                  
   *  Allocate the name table, and the objects                        
   */                                                                 
                                                                      
  if ( information->auto_extend ) {                                   
    information->object_blocks[ block ] =                             
    5760:	e7840108 	str	r0, [r4, r8, lsl #2]                          
      _Workspace_Allocate(                                            
        (information->allocation_size * information->size)            
      );                                                              
                                                                      
    if ( !information->object_blocks[ block ] )                       
    5764:	e7933108 	ldr	r3, [r3, r8, lsl #2]                          
    5768:	e3530000 	cmp	r3, #0	; 0x0                                  
    576c:	1a000003 	bne	5780 <_Objects_Extend_information+0x210>      
    5770:	ea000023 	b	5804 <_Objects_Extend_information+0x294>        <== NOT EXECUTED
      return;                                                         
  }                                                                   
  else {                                                              
    information->object_blocks[ block ] =                             
    5774:	e0000392 	mul	r0, r2, r3                                    
    5778:	eb00078f 	bl	75bc <_Workspace_Allocate_or_fatal_error>      
    577c:	e7840108 	str	r0, [r4, r8, lsl #2]                          
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
                                                                      
  _Chain_Initialize(                                                  
    5780:	e5953034 	ldr	r3, [r5, #52]                                 
    5784:	e28d4008 	add	r4, sp, #8	; 0x8                              
    5788:	e7931108 	ldr	r1, [r3, r8, lsl #2]                          
    578c:	e1a00004 	mov	r0, r4                                        
    5790:	e2852014 	add	r2, r5, #20	; 0x14                            
    5794:	e892000c 	ldm	r2, {r2, r3}                                  
    5798:	eb000f5a 	bl	9508 <_Chain_Initialize>                       
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
    579c:	e1a0600a 	mov	r6, sl                                        
                                                                      
  /*                                                                  
   *  Initialize objects .. add to a local chain first.               
   */                                                                 
                                                                      
  _Chain_Initialize(                                                  
    57a0:	e1a08108 	lsl	r8, r8, #2                                    
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
    57a4:	e2857020 	add	r7, r5, #32	; 0x20                            
    57a8:	ea000008 	b	57d0 <_Objects_Extend_information+0x260>        
                                                                      
  index = index_base;                                                 
                                                                      
  while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) {
                                                                      
    the_object->id = _Objects_Build_id(                               
    57ac:	e5953000 	ldr	r3, [r5]                                      
    57b0:	e1d520b4 	ldrh	r2, [r5, #4]                                 
    57b4:	e1a03c03 	lsl	r3, r3, #24                                   
    57b8:	e3833801 	orr	r3, r3, #65536	; 0x10000                      
    57bc:	e1833d82 	orr	r3, r3, r2, lsl #27                           
    57c0:	e1833006 	orr	r3, r3, r6                                    
    57c4:	e58c3008 	str	r3, [ip, #8]                                  
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
    57c8:	ebfffd5d 	bl	4d44 <_Chain_Append>                           
                                                                      
    index++;                                                          
    57cc:	e2866001 	add	r6, r6, #1	; 0x1                              
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
                                                                      
  index = index_base;                                                 
                                                                      
  while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) {
    57d0:	e1a00004 	mov	r0, r4                                        
    57d4:	eb000f3e 	bl	94d4 <_Chain_Get>                              
    57d8:	e250c000 	subs	ip, r0, #0	; 0x0                             
        information->the_class,                                       
        _Objects_Local_node,                                          
        index                                                         
      );                                                              
                                                                      
    _Chain_Append( &information->Inactive, &the_object->Node );       
    57dc:	e1a0100c 	mov	r1, ip                                        
    57e0:	e1a00007 	mov	r0, r7                                        
   *  Move from the local chain, initialise, then append to the inactive chain
   */                                                                 
                                                                      
  index = index_base;                                                 
                                                                      
  while ( (the_object = (Objects_Control *) _Chain_Get( &Inactive ) ) != NULL ) {
    57e4:	1afffff0 	bne	57ac <_Objects_Extend_information+0x23c>      
    _Chain_Append( &information->Inactive, &the_object->Node );       
                                                                      
    index++;                                                          
  }                                                                   
                                                                      
  information->inactive_per_block[ block ] = information->allocation_size;
    57e8:	e5952030 	ldr	r2, [r5, #48]                                 
    57ec:	e5953014 	ldr	r3, [r5, #20]                                 
    57f0:	e7823008 	str	r3, [r2, r8]                                  
  information->inactive += information->allocation_size;              
    57f4:	e1d522bc 	ldrh	r2, [r5, #44]                                
    57f8:	e5953014 	ldr	r3, [r5, #20]                                 
    57fc:	e0833002 	add	r3, r3, r2                                    
    5800:	e1c532bc 	strh	r3, [r5, #44]                                
}                                                                     
    5804:	e28dd014 	add	sp, sp, #20	; 0x14                            
    5808:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

00005908 <_Objects_Get_isr_disable>: #if defined(RTEMS_MULTIPROCESSING) index = id - information->minimum_id + 1; #else /* index = _Objects_Get_index( id ); */ index = id & 0x0000ffff;
    5908:	e1a01801 	lsl	r1, r1, #16                                   
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location,                                      
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
    590c:	e92d4010 	push	{r4, lr}                                     
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  index = id - information->minimum_id + 1;                           
#else                                                                 
  /* index = _Objects_Get_index( id ); */                             
  index = id & 0x0000ffff;                                            
    5910:	e1a01821 	lsr	r1, r1, #16                                   
  Objects_Information *information,                                   
  Objects_Id           id,                                            
  Objects_Locations   *location,                                      
  ISR_Level           *level_p                                        
)                                                                     
{                                                                     
    5914:	e1a04003 	mov	r4, r3                                        
  index = id & 0x0000ffff;                                            
  /* This should work but doesn't always :( */                        
  /* index = (uint16_t  ) id; */                                      
#endif                                                                
                                                                      
  _ISR_Disable( level );                                              
    5918:	e10fc000 	mrs	ip, CPSR                                      
    591c:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           
    5920:	e129f003 	msr	CPSR_fc, r3                                   
  if ( information->maximum >= index ) {                              
    5924:	e1d031b0 	ldrh	r3, [r0, #16]                                
    5928:	e1530001 	cmp	r3, r1                                        
    592c:	3a00000a 	bcc	595c <_Objects_Get_isr_disable+0x54>          
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
    5930:	e590301c 	ldr	r3, [r0, #28]                                 
    5934:	e7930101 	ldr	r0, [r3, r1, lsl #2]                          
    5938:	e3500000 	cmp	r0, #0	; 0x0                                  
      *location = OBJECTS_LOCAL;                                      
    593c:	13a03000 	movne	r3, #0	; 0x0                                
    5940:	15823000 	strne	r3, [r2]                                    
      *level_p = level;                                               
    5944:	1584c000 	strne	ip, [r4]                                    
  /* index = (uint16_t  ) id; */                                      
#endif                                                                
                                                                      
  _ISR_Disable( level );                                              
  if ( information->maximum >= index ) {                              
    if ( (the_object = information->local_table[ index ]) != NULL ) { 
    5948:	18bd8010 	popne	{r4, pc}                                    
      *location = OBJECTS_LOCAL;                                      
      *level_p = level;                                               
      return the_object;                                              
    }                                                                 
    _ISR_Enable( level );                                             
    594c:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
    *location = OBJECTS_ERROR;                                        
    5950:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    5954:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
    5958:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    return NULL;                                                      
  }                                                                   
  _ISR_Enable( level );                                               
    595c:	e129f00c 	msr	CPSR_fc, ip                                   
  *location = OBJECTS_ERROR;                                          
    5960:	e3a03001 	mov	r3, #1	; 0x1                                  
    5964:	e5823000 	str	r3, [r2]                                      
    5968:	e3a00000 	mov	r0, #0	; 0x0                                  
  _Objects_MP_Is_remote( information, id, location, &the_object );    
  return the_object;                                                  
#else                                                                 
  return NULL;                                                        
#endif                                                                
}                                                                     
    596c:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00007200 <_Objects_Get_name_as_string>: char *_Objects_Get_name_as_string( Objects_Id id, size_t length, char *name ) {
    7200:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    7204:	e2517000 	subs	r7, r1, #0	; 0x0                             
char *_Objects_Get_name_as_string(                                    
  Objects_Id        id,                                               
  size_t            length,                                           
  char             *name                                              
)                                                                     
{                                                                     
    7208:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
    720c:	e1a05002 	mov	r5, r2                                        
  char                   lname[5];                                    
  Objects_Control       *the_object;                                  
  Objects_Locations      location;                                    
  Objects_Id             tmpId;                                       
                                                                      
  if ( length == 0 )                                                  
    7210:	0a000036 	beq	72f0 <_Objects_Get_name_as_string+0xf0>       
    return NULL;                                                      
                                                                      
  if ( name == NULL )                                                 
    7214:	e3520000 	cmp	r2, #0	; 0x0                                  
    7218:	0a000035 	beq	72f4 <_Objects_Get_name_as_string+0xf4>       
    return NULL;                                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
    721c:	e3500000 	cmp	r0, #0	; 0x0                                  
    7220:	059f30d8 	ldreq	r3, [pc, #216]	; 7300 <_Objects_Get_name_as_string+0x100>
    7224:	05933000 	ldreq	r3, [r3]                                    
    7228:	05934008 	ldreq	r4, [r3, #8]                                
    722c:	11a04000 	movne	r4, r0                                      
                                                                      
  information = _Objects_Get_information_id( tmpId );                 
    7230:	e1a00004 	mov	r0, r4                                        
    7234:	ebffffb5 	bl	7110 <_Objects_Get_information_id>             
  if ( !information )                                                 
    7238:	e2506000 	subs	r6, r0, #0	; 0x0                             
    723c:	0a00002b 	beq	72f0 <_Objects_Get_name_as_string+0xf0>       
    return NULL;                                                      
                                                                      
  the_object = _Objects_Get( information, tmpId, &location );         
    7240:	e1a01004 	mov	r1, r4                                        
    7244:	e28d2008 	add	r2, sp, #8	; 0x8                              
    7248:	eb00002e 	bl	7308 <_Objects_Get>                            
  switch ( location ) {                                               
    724c:	e59d3008 	ldr	r3, [sp, #8]                                  
    7250:	e3530000 	cmp	r3, #0	; 0x0                                  
    7254:	1a000025 	bne	72f0 <_Objects_Get_name_as_string+0xf0>       
    case OBJECTS_ERROR:                                               
      return NULL;                                                    
                                                                      
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( information->is_string ) {                                 
    7258:	e5d6c038 	ldrb	ip, [r6, #56]                                
    725c:	e35c0000 	cmp	ip, #0	; 0x0                                  
    7260:	0a000004 	beq	7278 <_Objects_Get_name_as_string+0x78>       
        s = the_object->name.name_p;                                  
    7264:	e590000c 	ldr	r0, [r0, #12]                                 
        lname[ 4 ] = '\0';                                            
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
    7268:	e3500000 	cmp	r0, #0	; 0x0                                  
    726c:	01a0e005 	moveq	lr, r5                                      
    7270:	1a00000a 	bne	72a0 <_Objects_Get_name_as_string+0xa0>       
    7274:	ea000019 	b	72e0 <_Objects_Get_name_as_string+0xe0>         <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
                                                                      
      if ( information->is_string ) {                                 
        s = the_object->name.name_p;                                  
      } else {                                                        
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
    7278:	e590300c 	ldr	r3, [r0, #12]                                 
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
    727c:	e1a02c23 	lsr	r2, r3, #24                                   
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
    7280:	e1a01823 	lsr	r1, r3, #16                                   
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
    7284:	e1a00423 	lsr	r0, r3, #8                                    
      if ( information->is_string ) {                                 
        s = the_object->name.name_p;                                  
      } else {                                                        
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
    7288:	e5cd2003 	strb	r2, [sp, #3]                                 
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
    728c:	e5cd1004 	strb	r1, [sp, #4]                                 
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
    7290:	e5cd3006 	strb	r3, [sp, #6]                                 
        lname[ 4 ] = '\0';                                            
    7294:	e5cdc007 	strb	ip, [sp, #7]                                 
      } else {                                                        
        uint32_t  u32_name = (uint32_t) the_object->name.name_u32;    
                                                                      
        lname[ 0 ] = (u32_name >> 24) & 0xff;                         
        lname[ 1 ] = (u32_name >> 16) & 0xff;                         
        lname[ 2 ] = (u32_name >>  8) & 0xff;                         
    7298:	e5cd0005 	strb	r0, [sp, #5]                                 
        lname[ 3 ] = (u32_name >>  0) & 0xff;                         
        lname[ 4 ] = '\0';                                            
    729c:	e28d0003 	add	r0, sp, #3	; 0x3                              
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
    72a0:	e2471001 	sub	r1, r7, #1	; 0x1                              
                                                                      
        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';                                            
    72a4:	e3a0c000 	mov	ip, #0	; 0x0                                  
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
          *d = (isprint(*s)) ? *s : '*';                              
    72a8:	e59f4054 	ldr	r4, [pc, #84]	; 7304 <_Objects_Get_name_as_string+0x104>
    72ac:	ea000005 	b	72c8 <_Objects_Get_name_as_string+0xc8>         
    72b0:	e5943000 	ldr	r3, [r4]                                      
    72b4:	e7d33002 	ldrb	r3, [r3, r2]                                 
    72b8:	e3130097 	tst	r3, #151	; 0x97                               
    72bc:	03a0202a 	moveq	r2, #42	; 0x2a                              
    72c0:	e7c5200c 	strb	r2, [r5, ip]                                 
        s = lname;                                                    
      }                                                               
                                                                      
      d = name;                                                       
      if ( s ) {                                                      
        for ( i=0 ; i<(length-1) && *s ; i++, s++, d++ ) {            
    72c4:	e28cc001 	add	ip, ip, #1	; 0x1                              
    72c8:	e15c0001 	cmp	ip, r1                                        
    72cc:	e085e00c 	add	lr, r5, ip                                    
    72d0:	2a000002 	bcs	72e0 <_Objects_Get_name_as_string+0xe0>       
    72d4:	e7d0200c 	ldrb	r2, [r0, ip]                                 
    72d8:	e3520000 	cmp	r2, #0	; 0x0                                  
    72dc:	1afffff3 	bne	72b0 <_Objects_Get_name_as_string+0xb0>       
          *d = (isprint(*s)) ? *s : '*';                              
        }                                                             
      }                                                               
      *d = '\0';                                                      
    72e0:	e3a03000 	mov	r3, #0	; 0x0                                  
    72e4:	e5ce3000 	strb	r3, [lr]                                     
                                                                      
      _Thread_Enable_dispatch();                                      
    72e8:	eb00020a 	bl	7b18 <_Thread_Enable_dispatch>                 
    72ec:	ea000000 	b	72f4 <_Objects_Get_name_as_string+0xf4>         
      return name;                                                    
    72f0:	e3a05000 	mov	r5, #0	; 0x0                                  
  }                                                                   
  return NULL;                  /* unreachable path */                
}                                                                     
    72f4:	e1a00005 	mov	r0, r5                                        
    72f8:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    72fc:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

00006dc4 <_Objects_Id_to_name>: Objects_Name_or_id_lookup_errors _Objects_Id_to_name ( Objects_Id id, Objects_Name *name ) {
    6dc4:	e92d4030 	push	{r4, r5, lr}                                 
  Objects_Id           tmpId;                                         
  Objects_Information *information;                                   
  Objects_Control     *the_object = (Objects_Control *) 0;            
  Objects_Locations    ignored_location;                              
                                                                      
  if ( !name )                                                        
    6dc8:	e2515000 	subs	r5, r1, #0	; 0x0                             
                                                                      
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (                
  Objects_Id      id,                                                 
  Objects_Name   *name                                                
)                                                                     
{                                                                     
    6dcc:	e24dd004 	sub	sp, sp, #4	; 0x4                              
  Objects_Id           tmpId;                                         
  Objects_Information *information;                                   
  Objects_Control     *the_object = (Objects_Control *) 0;            
  Objects_Locations    ignored_location;                              
                                                                      
  if ( !name )                                                        
    6dd0:	03a00001 	moveq	r0, #1	; 0x1                                
    6dd4:	0a00001b 	beq	6e48 <_Objects_Id_to_name+0x84>               
    return OBJECTS_INVALID_NAME;                                      
                                                                      
  tmpId = (id == OBJECTS_ID_OF_SELF) ? _Thread_Executing->Object.id : id;
    6dd8:	e3500000 	cmp	r0, #0	; 0x0                                  
    6ddc:	059f3080 	ldreq	r3, [pc, #128]	; 6e64 <_Objects_Id_to_name+0xa0>
    6de0:	05933000 	ldreq	r3, [r3]                                    
    6de4:	05931008 	ldreq	r1, [r3, #8]                                
    6de8:	11a01000 	movne	r1, r0                                      
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
    6dec:	e1a03c21 	lsr	r3, r1, #24                                   
    6df0:	e2030007 	and	r0, r3, #7	; 0x7                              
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
    6df4:	e2403001 	sub	r3, r0, #1	; 0x1                              
    6df8:	e3530003 	cmp	r3, #3	; 0x3                                  
    6dfc:	8a000010 	bhi	6e44 <_Objects_Id_to_name+0x80>               
    6e00:	ea000012 	b	6e50 <_Objects_Id_to_name+0x8c>                 
  if ( !_Objects_Information_table[ the_api ] )                       
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_class = _Objects_Get_class( tmpId );                            
                                                                      
  information = _Objects_Information_table[ the_api ][ the_class ];   
    6e04:	e1a03da1 	lsr	r3, r1, #27                                   
    6e08:	e7900103 	ldr	r0, [r0, r3, lsl #2]                          
  if ( !information )                                                 
    6e0c:	e3500000 	cmp	r0, #0	; 0x0                                  
    6e10:	0a00000b 	beq	6e44 <_Objects_Id_to_name+0x80>               
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( information->is_string )                                       
    6e14:	e5d04038 	ldrb	r4, [r0, #56]                                
    6e18:	e3540000 	cmp	r4, #0	; 0x0                                  
    6e1c:	1a000008 	bne	6e44 <_Objects_Id_to_name+0x80>               
    return OBJECTS_INVALID_ID;                                        
                                                                      
  the_object = _Objects_Get( information, tmpId, &ignored_location ); 
    6e20:	e1a0200d 	mov	r2, sp                                        
    6e24:	ebffffcb 	bl	6d58 <_Objects_Get>                            
  if ( !the_object )                                                  
    6e28:	e3500000 	cmp	r0, #0	; 0x0                                  
    6e2c:	0a000004 	beq	6e44 <_Objects_Id_to_name+0x80>               
    return OBJECTS_INVALID_ID;                                        
                                                                      
  *name = the_object->name;                                           
    6e30:	e590300c 	ldr	r3, [r0, #12]                                 
    6e34:	e5853000 	str	r3, [r5]                                      
  _Thread_Enable_dispatch();                                          
    6e38:	eb000216 	bl	7698 <_Thread_Enable_dispatch>                 
    6e3c:	e1a00004 	mov	r0, r4                                        
    6e40:	ea000000 	b	6e48 <_Objects_Id_to_name+0x84>                 
  return OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL;                        
    6e44:	e3a00003 	mov	r0, #3	; 0x3                                  
}                                                                     
    6e48:	e28dd004 	add	sp, sp, #4	; 0x4                              
    6e4c:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      
  the_api = _Objects_Get_API( tmpId );                                
  if ( !_Objects_Is_api_valid( the_api ) )                            
    return OBJECTS_INVALID_ID;                                        
                                                                      
  if ( !_Objects_Information_table[ the_api ] )                       
    6e50:	e59f3010 	ldr	r3, [pc, #16]	; 6e68 <_Objects_Id_to_name+0xa4>
    6e54:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          
    6e58:	e3500000 	cmp	r0, #0	; 0x0                                  
    6e5c:	1affffe8 	bne	6e04 <_Objects_Id_to_name+0x40>               
    6e60:	eafffff7 	b	6e44 <_Objects_Id_to_name+0x80>                 <== NOT EXECUTED
                                                                      

00005a98 <_Objects_Namespace_remove>: ) { /* * If this is a string format name, then free the memory. */ if ( information->is_string && the_object->name.name_p )
    5a98:	e5d03038 	ldrb	r3, [r0, #56]                                
    5a9c:	e3530000 	cmp	r3, #0	; 0x0                                  
                                                                      
void _Objects_Namespace_remove(                                       
  Objects_Information  *information,                                  
  Objects_Control      *the_object                                    
)                                                                     
{                                                                     
    5aa0:	e92d4010 	push	{r4, lr}                                     
    5aa4:	e1a04001 	mov	r4, r1                                        
  /*                                                                  
   *  If this is a string format name, then free the memory.          
   */                                                                 
  if ( information->is_string && the_object->name.name_p )            
    5aa8:	0a000002 	beq	5ab8 <_Objects_Namespace_remove+0x20>         
    5aac:	e591000c 	ldr	r0, [r1, #12]                                 <== NOT EXECUTED
    5ab0:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
     _Workspace_Free( (void *)the_object->name.name_p );              
    5ab4:	1b0006b8 	blne	759c <_Workspace_Free>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Clear out either format.                                         
   */                                                                 
  the_object->name.name_p   = NULL;                                   
    5ab8:	e3a03000 	mov	r3, #0	; 0x0                                  
  the_object->name.name_u32 = 0;                                      
    5abc:	e584300c 	str	r3, [r4, #12]                                 
}                                                                     
    5ac0:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00007734 <_Objects_Set_name>: bool _Objects_Set_name( Objects_Information *information, Objects_Control *the_object, const char *name ) {
    7734:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
    7738:	e1a04000 	mov	r4, r0                                        
    773c:	e1a07001 	mov	r7, r1                                        
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length ) + 1;             
    7740:	e1a00002 	mov	r0, r2                                        
    7744:	e1d413ba 	ldrh	r1, [r4, #58]                                
bool _Objects_Set_name(                                               
  Objects_Information *information,                                   
  Objects_Control     *the_object,                                    
  const char          *name                                           
)                                                                     
{                                                                     
    7748:	e1a06002 	mov	r6, r2                                        
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length ) + 1;             
    774c:	eb001ade 	bl	e2cc <strnlen>                                 
                                                                      
  if ( information->is_string ) {                                     
    7750:	e5d43038 	ldrb	r3, [r4, #56]                                
    7754:	e3530000 	cmp	r3, #0	; 0x0                                  
{                                                                     
  size_t                 length;                                      
  const char            *s;                                           
                                                                      
  s      = name;                                                      
  length = strnlen( name, information->name_length ) + 1;             
    7758:	e2804001 	add	r4, r0, #1	; 0x1                              
                                                                      
  if ( information->is_string ) {                                     
    775c:	0a000013 	beq	77b0 <_Objects_Set_name+0x7c>                 
    char *d;                                                          
                                                                      
    d = _Workspace_Allocate( length );                                
    7760:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    7764:	eb0006c3 	bl	9278 <_Workspace_Allocate>                     <== NOT EXECUTED
    if ( !d )                                                         
    7768:	e2505000 	subs	r5, r0, #0	; 0x0                             <== NOT EXECUTED
    776c:	01a00005 	moveq	r0, r5                                      <== NOT EXECUTED
    7770:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
      return FALSE;                                                   
                                                                      
    if ( the_object->name.name_p ) {                                  
    7774:	e597000c 	ldr	r0, [r7, #12]                                 <== NOT EXECUTED
    7778:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    777c:	0a000002 	beq	778c <_Objects_Set_name+0x58>                 <== NOT EXECUTED
      _Workspace_Free( (void *)the_object->name.name_p );             
    7780:	eb0006b8 	bl	9268 <_Workspace_Free>                         <== NOT EXECUTED
      the_object->name.name_p = NULL;                                 
    7784:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    7788:	e587300c 	str	r3, [r7, #12]                                 <== NOT EXECUTED
    }                                                                 
                                                                      
    strncpy( d, name, length );                                       
    778c:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    7790:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    7794:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    7798:	eb001a88 	bl	e1c0 <strncpy>                                 <== NOT EXECUTED
    d[ length ] = '\0';                                               
    779c:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    77a0:	e7c53004 	strb	r3, [r5, r4]                                 <== NOT EXECUTED
    the_object->name.name_p = d;                                      
    77a4:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
    77a8:	e587500c 	str	r5, [r7, #12]                                 <== NOT EXECUTED
    77ac:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
  } else {                                                            
    the_object->name.name_u32 =  _Objects_Build_name(                 
    77b0:	e3540000 	cmp	r4, #0	; 0x0                                  
    77b4:	03a0c202 	moveq	ip, #536870912	; 0x20000000                 
    77b8:	0a000015 	beq	7814 <_Objects_Set_name+0xe0>                 
    77bc:	e5d63000 	ldrb	r3, [r6]                                     
    77c0:	e3540001 	cmp	r4, #1	; 0x1                                  
    77c4:	e1a0cc03 	lsl	ip, r3, #24                                   
    77c8:	0a000011 	beq	7814 <_Objects_Set_name+0xe0>                 
    77cc:	e5d63001 	ldrb	r3, [r6, #1]                                 
    77d0:	e3540002 	cmp	r4, #2	; 0x2                                  
    77d4:	e1a01803 	lsl	r1, r3, #16                                   
    77d8:	9a00000a 	bls	7808 <_Objects_Set_name+0xd4>                 
    77dc:	e3540003 	cmp	r4, #3	; 0x3                                  
    77e0:	e5d63002 	ldrb	r3, [r6, #2]                                 
    77e4:	85d60003 	ldrbhi	r0, [r6, #3]                               
    77e8:	e1a02403 	lsl	r2, r3, #8                                    
    77ec:	93a00020 	movls	r0, #32	; 0x20                              
    77f0:	e18c3001 	orr	r3, ip, r1                                    
    77f4:	e1833002 	orr	r3, r3, r2                                    
    77f8:	e1833000 	orr	r3, r3, r0                                    
    77fc:	e587300c 	str	r3, [r7, #12]                                 
    7800:	e3a00001 	mov	r0, #1	; 0x1                                  
    );                                                                
                                                                      
  }                                                                   
                                                                      
  return TRUE;                                                        
}                                                                     
    7804:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      
    strncpy( d, name, length );                                       
    d[ length ] = '\0';                                               
    the_object->name.name_p = d;                                      
  } else {                                                            
    the_object->name.name_u32 =  _Objects_Build_name(                 
    7808:	e3a00020 	mov	r0, #32	; 0x20                                
    780c:	e3a02a02 	mov	r2, #8192	; 0x2000                            
    7810:	eafffff6 	b	77f0 <_Objects_Set_name+0xbc>                   
    7814:	e3a01602 	mov	r1, #2097152	; 0x200000                       
    7818:	eafffffa 	b	7808 <_Objects_Set_name+0xd4>                   
                                                                      

00009004 <_Protected_heap_Get_information>: bool _Protected_heap_Get_information( Heap_Control *the_heap, Heap_Information_block *the_info ) {
    9004:	e92d4070 	push	{r4, r5, r6, lr}                             
  Heap_Get_information_status status;                                 
                                                                      
  if ( !the_heap )                                                    
    9008:	e2506000 	subs	r6, r0, #0	; 0x0                             
                                                                      
bool _Protected_heap_Get_information(                                 
  Heap_Control            *the_heap,                                  
  Heap_Information_block  *the_info                                   
)                                                                     
{                                                                     
    900c:	e1a04001 	mov	r4, r1                                        
  Heap_Get_information_status status;                                 
                                                                      
  if ( !the_heap )                                                    
    9010:	0a00000d 	beq	904c <_Protected_heap_Get_information+0x48>   
    return false;                                                     
                                                                      
  if ( !the_info )                                                    
    9014:	e3510000 	cmp	r1, #0	; 0x0                                  
    9018:	0a00000b 	beq	904c <_Protected_heap_Get_information+0x48>   
    return false;                                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
    901c:	e59f5030 	ldr	r5, [pc, #48]	; 9054 <_Protected_heap_Get_information+0x50>
    9020:	e5950000 	ldr	r0, [r5]                                      
    9024:	ebfff9df 	bl	77a8 <_API_Mutex_Lock>                         
    status = _Heap_Get_information( the_heap, the_info );             
    9028:	e1a01004 	mov	r1, r4                                        
    902c:	e1a00006 	mov	r0, r6                                        
    9030:	eb000ef1 	bl	cbfc <_Heap_Get_information>                   
    9034:	e1a04000 	mov	r4, r0                                        
  _RTEMS_Unlock_allocator();                                          
    9038:	e5950000 	ldr	r0, [r5]                                      
    903c:	ebfff9f5 	bl	7818 <_API_Mutex_Unlock>                       
                                                                      
  if ( status == HEAP_GET_INFORMATION_SUCCESSFUL )                    
    9040:	e2740001 	rsbs	r0, r4, #1	; 0x1                             
    9044:	33a00000 	movcc	r0, #0	; 0x0                                
    9048:	e8bd8070 	pop	{r4, r5, r6, pc}                              
    904c:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    return true;                                                      
                                                                      
  return false;                                                       
}                                                                     
    9050:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

00004710 <_RTEMS_tasks_Initialize_user_tasks_body>: rtems_status_code return_value; rtems_initialization_tasks_table *user_tasks; rtems_api_configuration_table *api_configuration; api_configuration = _Configuration_Table->RTEMS_api_configuration;
    4710:	e59f3094 	ldr	r3, [pc, #148]	; 47ac <_RTEMS_tasks_Initialize_user_tasks_body+0x9c>
    4714:	e5933000 	ldr	r3, [r3]                                      
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _RTEMS_tasks_Initialize_user_tasks_body( void )                  
{                                                                     
    4718:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  rtems_status_code                 return_value;                     
  rtems_initialization_tasks_table *user_tasks;                       
  rtems_api_configuration_table    *api_configuration;                
                                                                      
                                                                      
  api_configuration = _Configuration_Table->RTEMS_api_configuration;  
    471c:	e5933040 	ldr	r3, [r3, #64]                                 
                                                                      
  /*                                                                  
   *  NOTE:  This is slightly different from the Ada implementation.  
   */                                                                 
                                                                      
  user_tasks = api_configuration->User_initialization_tasks_table;    
    4720:	e593002c 	ldr	r0, [r3, #44]                                 
  maximum    = api_configuration->number_of_initialization_tasks;     
    4724:	e5936028 	ldr	r6, [r3, #40]                                 
                                                                      
  if ( !user_tasks || maximum == 0 )                                  
    4728:	e3560000 	cmp	r6, #0	; 0x0                                  
    472c:	13500000 	cmpne	r0, #0	; 0x0                                
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _RTEMS_tasks_Initialize_user_tasks_body( void )                  
{                                                                     
    4730:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
   */                                                                 
                                                                      
  user_tasks = api_configuration->User_initialization_tasks_table;    
  maximum    = api_configuration->number_of_initialization_tasks;     
                                                                      
  if ( !user_tasks || maximum == 0 )                                  
    4734:	13a03000 	movne	r3, #0	; 0x0                                
    4738:	03a03001 	moveq	r3, #1	; 0x1                                
    return;                                                           
    473c:	11a04000 	movne	r4, r0                                      
    4740:	11a05003 	movne	r5, r3                                      
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    return_value = rtems_task_create(                                 
    4744:	128d7008 	addne	r7, sp, #8	; 0x8                            
   */                                                                 
                                                                      
  user_tasks = api_configuration->User_initialization_tasks_table;    
  maximum    = api_configuration->number_of_initialization_tasks;     
                                                                      
  if ( !user_tasks || maximum == 0 )                                  
    4748:	1a000013 	bne	479c <_RTEMS_tasks_Initialize_user_tasks_body+0x8c>
    474c:	ea000014 	b	47a4 <_RTEMS_tasks_Initialize_user_tasks_body+0x94><== NOT EXECUTED
    return;                                                           
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    return_value = rtems_task_create(                                 
    4750:	e594300c 	ldr	r3, [r4, #12]                                 
    4754:	e88d0088 	stm	sp, {r3, r7}                                  
    4758:	e8940005 	ldm	r4, {r0, r2}                                  
    475c:	e5941008 	ldr	r1, [r4, #8]                                  
    4760:	e5943014 	ldr	r3, [r4, #20]                                 
    4764:	ebffff63 	bl	44f8 <rtems_task_create>                       
      user_tasks[ index ].mode_set,                                   
      user_tasks[ index ].attribute_set,                              
      &id                                                             
    );                                                                
                                                                      
    if ( !rtems_is_status_successful( return_value ) )                
    4768:	e2502000 	subs	r2, r0, #0	; 0x0                             
    476c:	1a000006 	bne	478c <_RTEMS_tasks_Initialize_user_tasks_body+0x7c>
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value );
                                                                      
    return_value = rtems_task_start(                                  
    4770:	e5942018 	ldr	r2, [r4, #24]                                 
    4774:	e5941010 	ldr	r1, [r4, #16]                                 
    4778:	e59d0008 	ldr	r0, [sp, #8]                                  
    477c:	eb00000b 	bl	47b0 <rtems_task_start>                        
      id,                                                             
      user_tasks[ index ].entry_point,                                
      user_tasks[ index ].argument                                    
    );                                                                
                                                                      
    if ( !rtems_is_status_successful( return_value ) )                
    4780:	e2502000 	subs	r2, r0, #0	; 0x0                             
    );                                                                
                                                                      
    if ( !rtems_is_status_successful( return_value ) )                
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value );
                                                                      
    return_value = rtems_task_start(                                  
    4784:	e284401c 	add	r4, r4, #28	; 0x1c                            
      id,                                                             
      user_tasks[ index ].entry_point,                                
      user_tasks[ index ].argument                                    
    );                                                                
                                                                      
    if ( !rtems_is_status_successful( return_value ) )                
    4788:	0a000002 	beq	4798 <_RTEMS_tasks_Initialize_user_tasks_body+0x88>
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value );
    478c:	e3a00001 	mov	r0, #1	; 0x1                                  
    4790:	e1a01000 	mov	r1, r0                                        
    4794:	eb000333 	bl	5468 <_Internal_error_Occurred>                
  maximum    = api_configuration->number_of_initialization_tasks;     
                                                                      
  if ( !user_tasks || maximum == 0 )                                  
    return;                                                           
                                                                      
  for ( index=0 ; index < maximum ; index++ ) {                       
    4798:	e2855001 	add	r5, r5, #1	; 0x1                              
    479c:	e1550006 	cmp	r5, r6                                        
    47a0:	3affffea 	bcc	4750 <_RTEMS_tasks_Initialize_user_tasks_body+0x40>
    );                                                                
                                                                      
    if ( !rtems_is_status_successful( return_value ) )                
      _Internal_error_Occurred( INTERNAL_ERROR_RTEMS_API, TRUE, return_value );
  }                                                                   
}                                                                     
    47a4:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    47a8:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

000044d8 <_Semaphore_Translate_core_mutex_return_code>: }; rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t status ) {
    44d8:	e59f3004 	ldr	r3, [pc, #4]	; 44e4 <_Semaphore_Translate_core_mutex_return_code+0xc>
  #if defined(RTEMS_DEBUG)                                            
    if ( status > CORE_MUTEX_STATUS_LAST )                            
      return RTEMS_INTERNAL_ERROR;                                    
  #endif                                                              
  return _Semaphore_Translate_core_mutex_return_code_[status];        
}                                                                     
    44dc:	e7930100 	ldr	r0, [r3, r0, lsl #2]                          
    44e0:	e12fff1e 	bx	lr                                             
                                                                      

00005118 <_TOD_Get>: */ void _TOD_Get( struct timespec *time ) {
    5118:	e92d4070 	push	{r4, r5, r6, lr}                             
  ISR_Level level;                                                    
  struct timespec offset;                                             
                                                                      
  /* assume time checked by caller */                                 
                                                                      
  offset.tv_sec = 0;                                                  
    511c:	e3a03000 	mov	r3, #0	; 0x0                                  
 */                                                                   
                                                                      
void _TOD_Get(                                                        
  struct timespec *time                                               
)                                                                     
{                                                                     
    5120:	e24dd008 	sub	sp, sp, #8	; 0x8                              
  struct timespec offset;                                             
                                                                      
  /* assume time checked by caller */                                 
                                                                      
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
    5124:	e58d3004 	str	r3, [sp, #4]                                  
 */                                                                   
                                                                      
void _TOD_Get(                                                        
  struct timespec *time                                               
)                                                                     
{                                                                     
    5128:	e1a05000 	mov	r5, r0                                        
  ISR_Level level;                                                    
  struct timespec offset;                                             
                                                                      
  /* assume time checked by caller */                                 
                                                                      
  offset.tv_sec = 0;                                                  
    512c:	e58d3000 	str	r3, [sp]                                      
  offset.tv_nsec = 0;                                                 
                                                                      
  /* _TOD_Now is a proper POSIX time */                               
  _ISR_Disable( level );                                              
    5130:	e10f6000 	mrs	r6, CPSR                                      
    5134:	e38630c0 	orr	r3, r6, #192	; 0xc0                           
    5138:	e129f003 	msr	CPSR_fc, r3                                   
    *time = _TOD_Now;                                                 
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    513c:	e59f3038 	ldr	r3, [pc, #56]	; 517c <_TOD_Get+0x64>          
    5140:	e5932000 	ldr	r2, [r3]                                      
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
                                                                      
  /* _TOD_Now is a proper POSIX time */                               
  _ISR_Disable( level );                                              
    *time = _TOD_Now;                                                 
    5144:	e59f3034 	ldr	r3, [pc, #52]	; 5180 <_TOD_Get+0x68>          
    5148:	e8930018 	ldm	r3, {r3, r4}                                  
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    514c:	e3520000 	cmp	r2, #0	; 0x0                                  
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
                                                                      
  /* _TOD_Now is a proper POSIX time */                               
  _ISR_Disable( level );                                              
    *time = _TOD_Now;                                                 
    5150:	e8800018 	stm	r0, {r3, r4}                                  
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    5154:	0a000002 	beq	5164 <_TOD_Get+0x4c>                          
      offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 
    5158:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    515c:	e12fff12 	bx	r2                                             <== NOT EXECUTED
    5160:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
  _ISR_Enable( level );                                               
    5164:	e129f006 	msr	CPSR_fc, r6                                   
                                                                      
  _Timespec_Add_to( time, &offset );                                  
    5168:	e1a00005 	mov	r0, r5                                        
    516c:	e1a0100d 	mov	r1, sp                                        
    5170:	eb000794 	bl	6fc8 <_Timespec_Add_to>                        
}                                                                     
    5174:	e28dd008 	add	sp, sp, #8	; 0x8                              
    5178:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

00009688 <_TOD_Get_uptime>: */ void _TOD_Get_uptime( struct timespec *uptime ) {
    9688:	e92d4070 	push	{r4, r5, r6, lr}                             
  ISR_Level level;                                                    
  struct timespec offset;                                             
                                                                      
  /* assume uptime checked by caller */                               
                                                                      
  offset.tv_sec = 0;                                                  
    968c:	e3a03000 	mov	r3, #0	; 0x0                                  
 */                                                                   
                                                                      
void _TOD_Get_uptime(                                                 
  struct timespec *uptime                                             
)                                                                     
{                                                                     
    9690:	e24dd008 	sub	sp, sp, #8	; 0x8                              
  struct timespec offset;                                             
                                                                      
  /* assume uptime checked by caller */                               
                                                                      
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
    9694:	e58d3004 	str	r3, [sp, #4]                                  
 */                                                                   
                                                                      
void _TOD_Get_uptime(                                                 
  struct timespec *uptime                                             
)                                                                     
{                                                                     
    9698:	e1a05000 	mov	r5, r0                                        
  ISR_Level level;                                                    
  struct timespec offset;                                             
                                                                      
  /* assume uptime checked by caller */                               
                                                                      
  offset.tv_sec = 0;                                                  
    969c:	e58d3000 	str	r3, [sp]                                      
  offset.tv_nsec = 0;                                                 
                                                                      
  _ISR_Disable( level );                                              
    96a0:	e10f6000 	mrs	r6, CPSR                                      
    96a4:	e38630c0 	orr	r3, r6, #192	; 0xc0                           
    96a8:	e129f003 	msr	CPSR_fc, r3                                   
    *uptime = _TOD_Uptime;                                            
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    96ac:	e59f3038 	ldr	r3, [pc, #56]	; 96ec <_TOD_Get_uptime+0x64>   
    96b0:	e5932000 	ldr	r2, [r3]                                      
                                                                      
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
                                                                      
  _ISR_Disable( level );                                              
    *uptime = _TOD_Uptime;                                            
    96b4:	e59f3034 	ldr	r3, [pc, #52]	; 96f0 <_TOD_Get_uptime+0x68>   
    96b8:	e8930018 	ldm	r3, {r3, r4}                                  
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    96bc:	e3520000 	cmp	r2, #0	; 0x0                                  
                                                                      
  offset.tv_sec = 0;                                                  
  offset.tv_nsec = 0;                                                 
                                                                      
  _ISR_Disable( level );                                              
    *uptime = _TOD_Uptime;                                            
    96c0:	e8800018 	stm	r0, {r3, r4}                                  
    if ( _Watchdog_Nanoseconds_since_tick_handler )                   
    96c4:	0a000002 	beq	96d4 <_TOD_Get_uptime+0x4c>                   
      offset.tv_nsec = (*_Watchdog_Nanoseconds_since_tick_handler)(); 
    96c8:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    96cc:	e12fff12 	bx	r2                                             <== NOT EXECUTED
    96d0:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
  _ISR_Enable( level );                                               
    96d4:	e129f006 	msr	CPSR_fc, r6                                   
                                                                      
  _Timespec_Add_to( uptime, &offset );                                
    96d8:	e1a00005 	mov	r0, r5                                        
    96dc:	e1a0100d 	mov	r1, sp                                        
    96e0:	ebfff638 	bl	6fc8 <_Timespec_Add_to>                        
}                                                                     
    96e4:	e28dd008 	add	sp, sp, #8	; 0x8                              
    96e8:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

0000607c <_Thread_Delay_ended>: void _Thread_Delay_ended( Objects_Id id, void *ignored ) {
    607c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
    6080:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
  Thread_Control    *the_thread;                                      
  Objects_Locations  location;                                        
                                                                      
  the_thread = _Thread_Get( id, &location );                          
    6084:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
    6088:	eb000067 	bl	622c <_Thread_Get>                             <== NOT EXECUTED
  switch ( location ) {                                               
    608c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    6090:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    6094:	1a000005 	bne	60b0 <_Thread_Delay_ended+0x34>               <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
    6098:	e59f1018 	ldr	r1, [pc, #24]	; 60b8 <_Thread_Delay_ended+0x3c><== NOT EXECUTED
    609c:	ebffff59 	bl	5e08 <_Thread_Clear_state>                     <== NOT EXECUTED
 */                                                                   
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unnest_dispatch( void )             
{                                                                     
  RTEMS_COMPILER_MEMORY_BARRIER();                                    
  _Thread_Dispatch_disable_level -= 1;                                
    60a0:	e59f2014 	ldr	r2, [pc, #20]	; 60bc <_Thread_Delay_ended+0x40><== NOT EXECUTED
    60a4:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    60a8:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    60ac:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
    case OBJECTS_LOCAL:                                               
      _Thread_Unblock( the_thread );                                  
      _Thread_Unnest_dispatch();                                      
      break;                                                          
  }                                                                   
}                                                                     
    60b0:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    60b4:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

0000622c <_Thread_Get>: Thread_Control *_Thread_Get ( Objects_Id id, Objects_Locations *location ) {
    622c:	e92d4010 	push	{r4, lr}                                     
  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 ) ) {           
    6230:	e2504000 	subs	r4, r0, #0	; 0x0                             
                                                                      
Thread_Control *_Thread_Get (                                         
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
    6234:	e1a0c001 	mov	ip, 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 ) ) {           
    6238:	1a000007 	bne	625c <_Thread_Get+0x30>                       
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
    623c:	e59f3080 	ldr	r3, [pc, #128]	; 62c4 <_Thread_Get+0x98>      
    6240:	e5932000 	ldr	r2, [r3]                                      
    6244:	e2822001 	add	r2, r2, #1	; 0x1                              
    6248:	e5832000 	str	r2, [r3]                                      
    _Thread_Disable_dispatch();                                       
    *location = OBJECTS_LOCAL;                                        
    tp = _Thread_Executing;                                           
    624c:	e59f3074 	ldr	r3, [pc, #116]	; 62c8 <_Thread_Get+0x9c>      
  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;                                        
    6250:	e5814000 	str	r4, [r1]                                      
    tp = _Thread_Executing;                                           
    6254:	e5930000 	ldr	r0, [r3]                                      
    6258:	e8bd8010 	pop	{r4, pc}                                      
 */                                                                   
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(                   
  Objects_Id id                                                       
)                                                                     
{                                                                     
  return (Objects_APIs) ((id >> OBJECTS_API_START_BIT) & OBJECTS_API_VALID_BITS);
    625c:	e1a03c24 	lsr	r3, r4, #24                                   
    6260:	e2031007 	and	r1, r3, #7	; 0x7                              
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid(                      
  uint32_t   the_api                                                  
)                                                                     
{                                                                     
  if ( !the_api || the_api > OBJECTS_APIS_LAST )                      
    6264:	e2413001 	sub	r3, r1, #1	; 0x1                              
    6268:	e3530003 	cmp	r3, #3	; 0x3                                  
    626c:	9a000010 	bls	62b4 <_Thread_Get+0x88>                       
    goto done;                                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
    *location = OBJECTS_ERROR;                                        
    6270:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    6274:	e58c3000 	str	r3, [ip]                                      <== NOT EXECUTED
    6278:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    627c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    goto done;                                                        
  }                                                                   
                                                                      
  api_information = _Objects_Information_table[ the_api ];            
    6280:	e59f3044 	ldr	r3, [pc, #68]	; 62cc <_Thread_Get+0xa0>       
    6284:	e7930101 	ldr	r0, [r3, r1, lsl #2]                          
  if ( !api_information ) {                                           
    6288:	e3500000 	cmp	r0, #0	; 0x0                                  
    628c:	0a000002 	beq	629c <_Thread_Get+0x70>                       
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  information = api_information[ the_class ];                         
    6290:	e5900004 	ldr	r0, [r0, #4]                                  
  if ( !information ) {                                               
    6294:	e3500000 	cmp	r0, #0	; 0x0                                  
    6298:	1a000001 	bne	62a4 <_Thread_Get+0x78>                       
    *location = OBJECTS_ERROR;                                        
    629c:	e58c2000 	str	r2, [ip]                                      <== NOT EXECUTED
    62a0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
    goto done;                                                        
  }                                                                   
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
    62a4:	e1a01004 	mov	r1, r4                                        
    62a8:	e1a0200c 	mov	r2, ip                                        
                                                                      
done:                                                                 
  return tp;                                                          
}                                                                     
    62ac:	e8bd4010 	pop	{r4, lr}                                      
  if ( !information ) {                                               
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  tp = (Thread_Control *) _Objects_Get( information, id, location );  
    62b0:	eafffdae 	b	5970 <_Objects_Get>                             
    *location = OBJECTS_ERROR;                                        
    goto done;                                                        
  }                                                                   
                                                                      
  the_class = _Objects_Get_class( id );                               
  if ( the_class != 1 ) {       /* threads are always first class :) */
    62b4:	e1a02da4 	lsr	r2, r4, #27                                   
    62b8:	e3520001 	cmp	r2, #1	; 0x1                                  
    62bc:	0affffef 	beq	6280 <_Thread_Get+0x54>                       
    62c0:	eaffffea 	b	6270 <_Thread_Get+0x44>                         <== NOT EXECUTED
                                                                      

0000a658 <_Thread_Handler>: #if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__) static char doneConstructors; char doneCons; #endif executing = _Thread_Executing;
    a658:	e59f30b0 	ldr	r3, [pc, #176]	; a710 <_Thread_Handler+0xb8>  
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Handler( void )                                          
{                                                                     
    a65c:	e92d4030 	push	{r4, r5, lr}                                 
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)              
  static char doneConstructors;                                       
  char doneCons;                                                      
#endif                                                                
                                                                      
  executing = _Thread_Executing;                                      
    a660:	e5935000 	ldr	r5, [r3]                                      
  /*                                                                  
   * have to put level into a register for those cpu's that use       
   * inline asm here                                                  
   */                                                                 
                                                                      
  level = executing->Start.isr_level;                                 
    a664:	e59530b8 	ldr	r3, [r5, #184]                                
  _ISR_Set_level(level);                                              
    a668:	e3a02000 	mov	r2, #0	; 0x0                                  
    a66c:	e10f2000 	mrs	r2, CPSR                                      
    a670:	e3c220c0 	bic	r2, r2, #192	; 0xc0                           
    a674:	e1822003 	orr	r2, r2, r3                                    
    a678:	e121f002 	msr	CPSR_c, r2                                    
                                                                      
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)              
  doneCons = doneConstructors;                                        
    a67c:	e59f2090 	ldr	r2, [pc, #144]	; a714 <_Thread_Handler+0xbc>  
  doneConstructors = 1;                                               
    a680:	e3a03001 	mov	r3, #1	; 0x1                                  
                                                                      
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
                                                                      
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)              
  doneCons = doneConstructors;                                        
    a684:	e5d24000 	ldrb	r4, [r2]                                     
   * Take care that 'begin' extensions get to complete before         
   * 'switch' extensions can run.  This means must keep dispatch      
   * disabled until all 'begin' extensions complete.                  
   */                                                                 
                                                                      
  _User_extensions_Thread_begin( executing );                         
    a688:	e1a00005 	mov	r0, r5                                        
  level = executing->Start.isr_level;                                 
  _ISR_Set_level(level);                                              
                                                                      
#if defined(__USE_INIT_FINI__) || defined(__USE__MAIN__)              
  doneCons = doneConstructors;                                        
  doneConstructors = 1;                                               
    a68c:	e5c23000 	strb	r3, [r2]                                     
   * Take care that 'begin' extensions get to complete before         
   * 'switch' extensions can run.  This means must keep dispatch      
   * disabled until all 'begin' extensions complete.                  
   */                                                                 
                                                                      
  _User_extensions_Thread_begin( executing );                         
    a690:	ebfff29a 	bl	7100 <_User_extensions_Thread_begin>           
                                                                      
  /*                                                                  
   *  At this point, the dispatch disable level BETTER be 1.          
   */                                                                 
                                                                      
  _Thread_Enable_dispatch();                                          
    a694:	ebffeedb 	bl	6208 <_Thread_Enable_dispatch>                 
  /*                                                                  
   *  _init could be a weak symbol and we SHOULD test it but it isn't 
   *  in any configuration I know of and it generates a warning on every
   *  RTEMS target configuration.  --joel (12 May 2007)               
   */                                                                 
  if (!doneCons) /* && (volatile void *)_init) */                     
    a698:	e3540000 	cmp	r4, #0	; 0x0                                  
  {                                                                   
    _init ();                                                         
    a69c:	0bffd69f 	bleq	120 <_init>                                  
#if defined(__USE__MAIN__)                                            
  if (!doneCons && _main)                                             
    __main ();                                                        
#endif                                                                
                                                                      
  switch ( executing->Start.prototype ) {                             
    a6a0:	e59530a0 	ldr	r3, [r5, #160]                                
    a6a4:	e3530003 	cmp	r3, #3	; 0x3                                  
    a6a8:	979ff103 	ldrls	pc, [pc, r3, lsl #2]                        
    a6ac:	ea000011 	b	a6f8 <_Thread_Handler+0xa0>                     <== NOT EXECUTED
    a6b0:	0000a6c0 	.word	0x0000a6c0                                  <== NOT EXECUTED
    a6b4:	0000a6c8 	.word	0x0000a6c8                                  <== NOT EXECUTED
    a6b8:	0000a6d8 	.word	0x0000a6d8                                  <== NOT EXECUTED
    a6bc:	0000a6e4 	.word	0x0000a6e4                                  <== NOT EXECUTED
    case THREAD_START_NUMERIC:                                        
      executing->Wait.return_argument =                               
    a6c0:	e59500a8 	ldr	r0, [r5, #168]                                
    a6c4:	ea000000 	b	a6cc <_Thread_Handler+0x74>                     
        (*(Thread_Entry_numeric) executing->Start.entry_point)(       
          executing->Start.numeric_argument                           
      );                                                              
      break;                                                          
    case THREAD_START_POINTER:                                        
      executing->Wait.return_argument =                               
    a6c8:	e59500a4 	ldr	r0, [r5, #164]                                <== NOT EXECUTED
    a6cc:	e1a0e00f 	mov	lr, pc                                        
    a6d0:	e595f09c 	ldr	pc, [r5, #156]                                
    a6d4:	ea000006 	b	a6f4 <_Thread_Handler+0x9c>                     
        (*(Thread_Entry_pointer) executing->Start.entry_point)(       
          executing->Start.pointer_argument                           
        );                                                            
      break;                                                          
    case THREAD_START_BOTH_POINTER_FIRST:                             
      executing->Wait.return_argument =                               
    a6d8:	e28500a4 	add	r0, r5, #164	; 0xa4                           <== NOT EXECUTED
    a6dc:	e8900003 	ldm	r0, {r0, r1}                                  <== NOT EXECUTED
    a6e0:	ea000001 	b	a6ec <_Thread_Handler+0x94>                     <== NOT EXECUTED
           executing->Start.pointer_argument,                         
           executing->Start.numeric_argument                          
         );                                                           
      break;                                                          
    case THREAD_START_BOTH_NUMERIC_FIRST:                             
      executing->Wait.return_argument =                               
    a6e4:	e59500a8 	ldr	r0, [r5, #168]                                <== NOT EXECUTED
    a6e8:	e59510a4 	ldr	r1, [r5, #164]                                <== NOT EXECUTED
    a6ec:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    a6f0:	e595f09c 	ldr	pc, [r5, #156]                                <== NOT EXECUTED
    a6f4:	e5850028 	str	r0, [r5, #40]                                 
   *  was placed in return_argument.  This assumed that if it returned
   *  anything (which is not supporting in all APIs), then it would be
   *  able to fit in a (void *).                                      
   */                                                                 
                                                                      
  _User_extensions_Thread_exitted( executing );                       
    a6f8:	e1a00005 	mov	r0, r5                                        
    a6fc:	ebfff28e 	bl	713c <_User_extensions_Thread_exitted>         
                                                                      
  _Internal_error_Occurred(                                           
    a700:	e3a00000 	mov	r0, #0	; 0x0                                  
    a704:	e3a01001 	mov	r1, #1	; 0x1                                  
    a708:	e3a02006 	mov	r2, #6	; 0x6                                  
    a70c:	ebffeb55 	bl	5468 <_Internal_error_Occurred>                
                                                                      

000062d4 <_Thread_Initialize>: Thread_CPU_budget_algorithms budget_algorithm, Thread_CPU_budget_algorithm_callout budget_callout, uint32_t isr_level, Objects_Name name ) {
    62d4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
                                                                      
                                                                      
  if ( !stack_area ) {                                                
    62d8:	e2526000 	subs	r6, r2, #0	; 0x0                             
  Thread_CPU_budget_algorithms          budget_algorithm,             
  Thread_CPU_budget_algorithm_callout   budget_callout,               
  uint32_t                              isr_level,                    
  Objects_Name                          name                          
)                                                                     
{                                                                     
    62dc:	e1a09000 	mov	r9, r0                                        
    62e0:	e1a05001 	mov	r5, r1                                        
    62e4:	e1a04003 	mov	r4, r3                                        
    62e8:	e59d8024 	ldr	r8, [sp, #36]                                 
    62ec:	e59da02c 	ldr	sl, [sp, #44]                                 
    62f0:	e5dd7028 	ldrb	r7, [sp, #40]                                
  /*                                                                  
   *  Allocate and Initialize the stack for this thread.              
   */                                                                 
                                                                      
                                                                      
  if ( !stack_area ) {                                                
    62f4:	1a00000e 	bne	6334 <_Thread_Initialize+0x60>                
                                                                      
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
    62f8:	e1a00001 	mov	r0, r1                                        
    62fc:	e1a01003 	mov	r1, r3                                        
    6300:	eb000292 	bl	6d50 <_Thread_Stack_Allocate>                  
                                                                      
    if ( !actual_stack_size || actual_stack_size < stack_size )       
    6304:	e1500004 	cmp	r0, r4                                        
    6308:	23a03000 	movcs	r3, #0	; 0x0                                
    630c:	33a03001 	movcc	r3, #1	; 0x1                                
    6310:	e3500000 	cmp	r0, #0	; 0x0                                  
    6314:	03833001 	orreq	r3, r3, #1	; 0x1                            
    6318:	e3530000 	cmp	r3, #0	; 0x0                                  
      return FALSE;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
    the_thread->Start.core_allocated_stack = TRUE;                    
    631c:	03a03001 	moveq	r3, #1	; 0x1                                
                                                                      
  if ( !stack_area ) {                                                
                                                                      
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
                                                                      
    if ( !actual_stack_size || actual_stack_size < stack_size )       
    6320:	e1a01000 	mov	r1, r0                                        
      return FALSE;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
    the_thread->Start.core_allocated_stack = TRUE;                    
    6324:	05c530c0 	strbeq	r3, [r5, #192]                             
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
                                                                      
    if ( !actual_stack_size || actual_stack_size < stack_size )       
      return FALSE;                     /* stack allocation failed */ 
                                                                      
    stack = the_thread->Start.stack;                                  
    6328:	059520cc 	ldreq	r2, [r5, #204]                              
                                                                      
  if ( !stack_area ) {                                                
                                                                      
    actual_stack_size = _Thread_Stack_Allocate( the_thread, stack_size );
                                                                      
    if ( !actual_stack_size || actual_stack_size < stack_size )       
    632c:	0a000004 	beq	6344 <_Thread_Initialize+0x70>                
    6330:	ea000017 	b	6394 <_Thread_Initialize+0xc0>                  <== NOT EXECUTED
    stack = the_thread->Start.stack;                                  
    the_thread->Start.core_allocated_stack = TRUE;                    
  } else {                                                            
    stack = stack_area;                                               
    actual_stack_size = stack_size;                                   
    the_thread->Start.core_allocated_stack = FALSE;                   
    6334:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    6338:	e5c130c0 	strb	r3, [r1, #192]                               <== NOT EXECUTED
    633c:	e1a02006 	mov	r2, r6                                        <== NOT EXECUTED
    6340:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
                                                                      
  if ( _Thread_Maximum_extensions ) {                                 
    6344:	e59f3128 	ldr	r3, [pc, #296]	; 6474 <_Thread_Initialize+0x1a0>
    6348:	e5930000 	ldr	r0, [r3]                                      
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
    634c:	e3a03000 	mov	r3, #0	; 0x0                                  
    6350:	e3500000 	cmp	r0, #0	; 0x0                                  
  Stack_Control *the_stack,                                           
  void          *starting_address,                                    
  size_t         size                                                 
)                                                                     
{                                                                     
  the_stack->area = starting_address;                                 
    6354:	e58520c8 	str	r2, [r5, #200]                                
  the_stack->size = size;                                             
    6358:	e58510c4 	str	r1, [r5, #196]                                
                                                                      
  /*                                                                  
   * Clear the libc reent hook.                                       
   */                                                                 
                                                                      
  the_thread->libc_reent = NULL;                                      
    635c:	e5853100 	str	r3, [r5, #256]                                
    6360:	e5853050 	str	r3, [r5, #80]                                 
  the_watchdog->routine   = routine;                                  
    6364:	e5853064 	str	r3, [r5, #100]                                
  the_watchdog->id        = id;                                       
    6368:	e5853068 	str	r3, [r5, #104]                                
  the_watchdog->user_data = user_data;                                
    636c:	e585306c 	str	r3, [r5, #108]                                
        (void) _Workspace_Free( fp_area );                            
#endif                                                                
                                                                      
      _Thread_Stack_Free( the_thread );                               
                                                                      
      return FALSE;                                                   
    6370:	01a06000 	moveq	r6, r0                                      
                                                                      
  /*                                                                  
   *  Allocate the extensions area for this thread                    
   */                                                                 
                                                                      
  if ( _Thread_Maximum_extensions ) {                                 
    6374:	0a000008 	beq	639c <_Thread_Initialize+0xc8>                
    extensions_area = _Workspace_Allocate(                            
    6378:	e2800001 	add	r0, r0, #1	; 0x1                              <== NOT EXECUTED
    637c:	e1a00100 	lsl	r0, r0, #2                                    <== NOT EXECUTED
    6380:	eb000489 	bl	75ac <_Workspace_Allocate>                     <== NOT EXECUTED
      (_Thread_Maximum_extensions + 1) * sizeof( void * )             
    );                                                                
                                                                      
    if ( !extensions_area ) {                                         
    6384:	e2506000 	subs	r6, r0, #0	; 0x0                             <== NOT EXECUTED
    6388:	1a000003 	bne	639c <_Thread_Initialize+0xc8>                <== NOT EXECUTED
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
      if ( fp_area )                                                  
        (void) _Workspace_Free( fp_area );                            
#endif                                                                
                                                                      
      _Thread_Stack_Free( the_thread );                               
    638c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    6390:	eb000289 	bl	6dbc <_Thread_Stack_Free>                      <== NOT EXECUTED
    6394:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    6398:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
                                                                      
  if ( the_thread->extensions ) {                                     
    639c:	e3560000 	cmp	r6, #0	; 0x0                                  
      return FALSE;                                                   
    }                                                                 
  } else                                                              
    extensions_area = NULL;                                           
                                                                      
  the_thread->extensions = (void **) extensions_area;                 
    63a0:	e5856110 	str	r6, [r5, #272]                                
   * create the extension long after tasks have been created          
   * so they cannot rely on the thread create user extension          
   * call.                                                            
   */                                                                 
                                                                      
  if ( the_thread->extensions ) {                                     
    63a4:	0a00000a 	beq	63d4 <_Thread_Initialize+0x100>               
    63a8:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    uint32_t i;                                                       
    for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ )          
    63ac:	e59f00c0 	ldr	r0, [pc, #192]	; 6474 <_Thread_Initialize+0x1a0><== NOT EXECUTED
      the_thread->extensions[i] = NULL;                               
    63b0:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
    63b4:	ea000002 	b	63c4 <_Thread_Initialize+0xf0>                  <== NOT EXECUTED
    63b8:	e5953110 	ldr	r3, [r5, #272]                                <== NOT EXECUTED
    63bc:	e7831102 	str	r1, [r3, r2, lsl #2]                          <== NOT EXECUTED
   * call.                                                            
   */                                                                 
                                                                      
  if ( the_thread->extensions ) {                                     
    uint32_t i;                                                       
    for ( i = 0; i < (_Thread_Maximum_extensions + 1); i++ )          
    63c0:	e2822001 	add	r2, r2, #1	; 0x1                              <== NOT EXECUTED
    63c4:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
    63c8:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    63cc:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    63d0:	3afffff8 	bcc	63b8 <_Thread_Initialize+0xe4>                <== NOT EXECUTED
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
  the_thread->Start.budget_callout   = budget_callout;                
    63d4:	e59d3030 	ldr	r3, [sp, #48]                                 
                                                                      
  switch ( budget_algorithm ) {                                       
    63d8:	e35a0002 	cmp	sl, #2	; 0x2                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
  the_thread->Start.budget_callout   = budget_callout;                
    63dc:	e58530b4 	str	r3, [r5, #180]                                
  switch ( budget_algorithm ) {                                       
    case THREAD_CPU_BUDGET_ALGORITHM_NONE:                            
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
      break;                                                          
    case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:               
      the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;      
    63e0:	059f3090 	ldreq	r3, [pc, #144]	; 6478 <_Thread_Initialize+0x1a4>
    63e4:	05933000 	ldreq	r3, [r3]                                    
    63e8:	05853078 	streq	r3, [r5, #120]                              
      break;                                                          
    case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                         
      break;                                                          
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
    63ec:	e59d3034 	ldr	r3, [sp, #52]                                 
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
  the_thread->Wait.queue              = NULL;                         
    63f0:	e3a04000 	mov	r4, #0	; 0x0                                  
                                                                      
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
    63f4:	e5c570ac 	strb	r7, [r5, #172]                               
      break;                                                          
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
    63f8:	e3a07001 	mov	r7, #1	; 0x1                                  
      break;                                                          
    case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                         
      break;                                                          
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
    63fc:	e58530b8 	str	r3, [r5, #184]                                
  the_thread->Wait.queue              = NULL;                         
  the_thread->resource_count          = 0;                            
  the_thread->suspend_count           = 0;                            
  the_thread->real_priority           = priority;                     
  the_thread->Start.initial_priority  = priority;                     
  _Thread_Set_priority( the_thread, priority );                       
    6400:	e1a01008 	mov	r1, r8                                        
    6404:	e1a00005 	mov	r0, r5                                        
  /*                                                                  
   *  General initialization                                          
   */                                                                 
                                                                      
  the_thread->Start.is_preemptible   = is_preemptible;                
  the_thread->Start.budget_algorithm = budget_algorithm;              
    6408:	e585a0b0 	str	sl, [r5, #176]                                
      break;                                                          
  }                                                                   
                                                                      
  the_thread->Start.isr_level         = isr_level;                    
                                                                      
  the_thread->current_state           = STATES_DORMANT;               
    640c:	e5857010 	str	r7, [r5, #16]                                 
  the_thread->Wait.queue              = NULL;                         
    6410:	e5854044 	str	r4, [r5, #68]                                 
  the_thread->resource_count          = 0;                            
    6414:	e585401c 	str	r4, [r5, #28]                                 
  the_thread->suspend_count           = 0;                            
    6418:	e5854070 	str	r4, [r5, #112]                                
  the_thread->real_priority           = priority;                     
    641c:	e5858018 	str	r8, [r5, #24]                                 
  the_thread->Start.initial_priority  = priority;                     
    6420:	e58580bc 	str	r8, [r5, #188]                                
  _Thread_Set_priority( the_thread, priority );                       
    6424:	eb0001b7 	bl	6b08 <_Thread_Set_priority>                    
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
    6428:	e1d530b8 	ldrh	r3, [r5, #8]                                 
    642c:	e599201c 	ldr	r2, [r9, #28]                                 
   *  Initialize the CPU usage statistics                             
   */                                                                 
                                                                      
  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS                 
    the_thread->cpu_time_used.tv_sec  = 0;                            
    the_thread->cpu_time_used.tv_nsec = 0;                            
    6430:	e5854088 	str	r4, [r5, #136]                                
    6434:	e7825103 	str	r5, [r2, r3, lsl #2]                          
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
    6438:	e59d3038 	ldr	r3, [sp, #56]                                 
   *  enabled when we get here.  We want to be able to run the        
   *  user extensions with dispatching enabled.  The Allocator        
   *  Mutex provides sufficient protection to let the user extensions 
   *  run safely.                                                     
   */                                                                 
  extension_status = _User_extensions_Thread_create( the_thread );    
    643c:	e1a00005 	mov	r0, r5                                        
    6440:	e585300c 	str	r3, [r5, #12]                                 
  /*                                                                  
   *  Initialize the CPU usage statistics                             
   */                                                                 
                                                                      
  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS                 
    the_thread->cpu_time_used.tv_sec  = 0;                            
    6444:	e5854084 	str	r4, [r5, #132]                                
   *  enabled when we get here.  We want to be able to run the        
   *  user extensions with dispatching enabled.  The Allocator        
   *  Mutex provides sufficient protection to let the user extensions 
   *  run safely.                                                     
   */                                                                 
  extension_status = _User_extensions_Thread_create( the_thread );    
    6448:	eb00035f 	bl	71cc <_User_extensions_Thread_create>          
                                                                      
  if ( !extension_status ) {                                          
    644c:	e1500004 	cmp	r0, r4                                        
    6450:	11a00007 	movne	r0, r7                                      
    6454:	18bd87f0 	popne	{r4, r5, r6, r7, r8, r9, sl, pc}            
                                                                      
    if ( extensions_area )                                            
    6458:	e3560000 	cmp	r6, #0	; 0x0                                  <== NOT EXECUTED
      (void) _Workspace_Free( extensions_area );                      
    645c:	11a00006 	movne	r0, r6                                      <== NOT EXECUTED
    6460:	1b00044d 	blne	759c <_Workspace_Free>                       <== NOT EXECUTED
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
    if ( fp_area )                                                    
      (void) _Workspace_Free( fp_area );                              
#endif                                                                
                                                                      
    _Thread_Stack_Free( the_thread );                                 
    6464:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    6468:	eb000253 	bl	6dbc <_Thread_Stack_Free>                      <== NOT EXECUTED
    646c:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    return FALSE;                                                     
  }                                                                   
                                                                      
  return TRUE;                                                        
                                                                      
}                                                                     
    6470:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      

00007740 <_Thread_Restart>: Thread_Control *the_thread, void *pointer_argument, Thread_Entry_numeric_type numeric_argument ) { if ( !_States_Is_dormant( the_thread->current_state ) ) {
    7740:	e5903010 	ldr	r3, [r0, #16]                                 
    7744:	e3130001 	tst	r3, #1	; 0x1                                  
bool _Thread_Restart(                                                 
  Thread_Control            *the_thread,                              
  void                      *pointer_argument,                        
  Thread_Entry_numeric_type  numeric_argument                         
)                                                                     
{                                                                     
    7748:	e92d4070 	push	{r4, r5, r6, lr}                             
    774c:	e1a04000 	mov	r4, r0                                        
    7750:	e1a05001 	mov	r5, r1                                        
    7754:	e1a06002 	mov	r6, r2                                        
  if ( !_States_Is_dormant( the_thread->current_state ) ) {           
    7758:	13a00000 	movne	r0, #0	; 0x0                                
    775c:	18bd8070 	popne	{r4, r5, r6, pc}                            
                                                                      
    _Thread_Set_transient( the_thread );                              
    7760:	eb000081 	bl	796c <_Thread_Set_transient>                   
                                                                      
    _Thread_Reset( the_thread, pointer_argument, numeric_argument );  
    7764:	e1a01005 	mov	r1, r5                                        
    7768:	e1a02006 	mov	r2, r6                                        
    776c:	e1a00004 	mov	r0, r4                                        
    7770:	eb000ced 	bl	ab2c <_Thread_Reset>                           
                                                                      
    _Thread_Load_environment( the_thread );                           
    7774:	e1a00004 	mov	r0, r4                                        
    7778:	eb000c0d 	bl	a7b4 <_Thread_Load_environment>                
                                                                      
    _Thread_Ready( the_thread );                                      
    777c:	e1a00004 	mov	r0, r4                                        
    7780:	eb000ca6 	bl	aa20 <_Thread_Ready>                           
                                                                      
    _User_extensions_Thread_restart( the_thread );                    
    7784:	e1a00004 	mov	r0, r4                                        
    7788:	eb0001e3 	bl	7f1c <_User_extensions_Thread_restart>         
                                                                      
    if ( _Thread_Is_executing ( the_thread ) )                        
    778c:	e59f301c 	ldr	r3, [pc, #28]	; 77b0 <_Thread_Restart+0x70>   
    7790:	e5933000 	ldr	r3, [r3]                                      
    7794:	e1540003 	cmp	r4, r3                                        
    7798:	13a00001 	movne	r0, #1	; 0x1                                
    779c:	18bd8070 	popne	{r4, r5, r6, pc}                            
#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )        
  if ( _Thread_Executing->fp_context != NULL )                        
    _Context_Restore_fp( &_Thread_Executing->fp_context );            
#endif                                                                
                                                                      
  _CPU_Context_Restart_self( &_Thread_Executing->Registers );         
    77a0:	e28400d0 	add	r0, r4, #208	; 0xd0                           
    77a4:	eb0002ec 	bl	835c <_CPU_Context_restore>                    
    77a8:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
                                                                      
    return TRUE;                                                      
  }                                                                   
                                                                      
  return FALSE;                                                       
}                                                                     
    77ac:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

00008470 <_Thread_Resume>: void _Thread_Resume( Thread_Control *the_thread, bool force ) {
    8470:	e92d4030 	push	{r4, r5, lr}                                 
    8474:	e20110ff 	and	r1, r1, #255	; 0xff                           
    8478:	e1a04000 	mov	r4, r0                                        
                                                                      
  ISR_Level       level;                                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
    847c:	e10f5000 	mrs	r5, CPSR                                      
    8480:	e38530c0 	orr	r3, r5, #192	; 0xc0                           
    8484:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  if ( force == TRUE )                                                
    8488:	e3510000 	cmp	r1, #0	; 0x0                                  
    the_thread->suspend_count = 0;                                    
  else                                                                
    the_thread->suspend_count--;                                      
    848c:	05903070 	ldreq	r3, [r0, #112]                              
  States_Control  current_state;                                      
                                                                      
  _ISR_Disable( level );                                              
                                                                      
  if ( force == TRUE )                                                
    the_thread->suspend_count = 0;                                    
    8490:	13a03000 	movne	r3, #0	; 0x0                                
  else                                                                
    the_thread->suspend_count--;                                      
    8494:	02433001 	subeq	r3, r3, #1	; 0x1                            
    8498:	e5803070 	str	r3, [r0, #112]                                
                                                                      
  if ( the_thread->suspend_count > 0 ) {                              
    849c:	e5903070 	ldr	r3, [r0, #112]                                
    84a0:	e3530000 	cmp	r3, #0	; 0x0                                  
    84a4:	0a000001 	beq	84b0 <_Thread_Resume+0x40>                    
    _ISR_Enable( level );                                             
    84a8:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    84ac:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    return;                                                           
  }                                                                   
                                                                      
  current_state = the_thread->current_state;                          
    84b0:	e5903010 	ldr	r3, [r0, #16]                                 
  if ( current_state & STATES_SUSPENDED ) {                           
    84b4:	e3130002 	tst	r3, #2	; 0x2                                  
    84b8:	0a000028 	beq	8560 <_Thread_Resume+0xf0>                    
    84bc:	e3c33002 	bic	r3, r3, #2	; 0x2                              
    current_state =                                                   
    the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state);
                                                                      
    if ( _States_Is_ready( current_state ) ) {                        
    84c0:	e3530000 	cmp	r3, #0	; 0x0                                  
    return;                                                           
  }                                                                   
                                                                      
  current_state = the_thread->current_state;                          
  if ( current_state & STATES_SUSPENDED ) {                           
    current_state =                                                   
    84c4:	e5803010 	str	r3, [r0, #16]                                 
    the_thread->current_state = _States_Clear(STATES_SUSPENDED, current_state);
                                                                      
    if ( _States_Is_ready( current_state ) ) {                        
    84c8:	1a000024 	bne	8560 <_Thread_Resume+0xf0>                    
                                                                      
RTEMS_INLINE_ROUTINE void _Priority_Add_to_bit_map (                  
  Priority_Information *the_priority_map                              
)                                                                     
{                                                                     
  *the_priority_map->minor |= the_priority_map->ready_minor;          
    84cc:	e5900090 	ldr	r0, [r0, #144]                                
    84d0:	e1d429b6 	ldrh	r2, [r4, #150]                               
    84d4:	e1d030b0 	ldrh	r3, [r0]                                     
                                                                      
      _Priority_Add_to_bit_map( &the_thread->Priority_map );          
                                                                      
      _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node);
    84d8:	e594108c 	ldr	r1, [r4, #140]                                
    84dc:	e1833002 	orr	r3, r3, r2                                    
    84e0:	e1c030b0 	strh	r3, [r0]                                     
  _Priority_Major_bit_map  |= the_priority_map->ready_major;          
    84e4:	e59fc07c 	ldr	ip, [pc, #124]	; 8568 <_Thread_Resume+0xf8>   
  Chain_Node    *the_node                                             
)                                                                     
{                                                                     
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
    84e8:	e2813004 	add	r3, r1, #4	; 0x4                              
    84ec:	e5843000 	str	r3, [r4]                                      
    84f0:	e1d429b4 	ldrh	r2, [r4, #148]                               
    84f4:	e1dc30b0 	ldrh	r3, [ip]                                     
  old_last_node       = the_chain->last;                              
    84f8:	e5910008 	ldr	r0, [r1, #8]                                  
    84fc:	e1833002 	orr	r3, r3, r2                                    
  the_chain->last     = the_node;                                     
    8500:	e5814008 	str	r4, [r1, #8]                                  
    8504:	e1cc30b0 	strh	r3, [ip]                                     
  old_last_node->next = the_node;                                     
  the_node->previous  = old_last_node;                                
    8508:	e5840004 	str	r0, [r4, #4]                                  
  Chain_Node *old_last_node;                                          
                                                                      
  the_node->next      = _Chain_Tail(the_chain);                       
  old_last_node       = the_chain->last;                              
  the_chain->last     = the_node;                                     
  old_last_node->next = the_node;                                     
    850c:	e5804000 	str	r4, [r0]                                      
                                                                      
      _ISR_Flash( level );                                            
    8510:	e10f3000 	mrs	r3, CPSR                                      
    8514:	e129f005 	msr	CPSR_fc, r5                                   
    8518:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
      if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
    851c:	e59f1048 	ldr	r1, [pc, #72]	; 856c <_Thread_Resume+0xfc>    
    8520:	e5913000 	ldr	r3, [r1]                                      
    8524:	e5942014 	ldr	r2, [r4, #20]                                 
    8528:	e5933014 	ldr	r3, [r3, #20]                                 
    852c:	e1520003 	cmp	r2, r3                                        
    8530:	2a00000a 	bcs	8560 <_Thread_Resume+0xf0>                    
        _Thread_Heir = the_thread;                                    
        if ( _Thread_Executing->is_preemptible ||                     
    8534:	e59f3034 	ldr	r3, [pc, #52]	; 8570 <_Thread_Resume+0x100>   
    8538:	e5933000 	ldr	r3, [r3]                                      
    853c:	e5d33076 	ldrb	r3, [r3, #118]                               
    8540:	e3530000 	cmp	r3, #0	; 0x0                                  
      _Chain_Append_unprotected(the_thread->ready, &the_thread->Object.Node);
                                                                      
      _ISR_Flash( level );                                            
                                                                      
      if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
        _Thread_Heir = the_thread;                                    
    8544:	e5814000 	str	r4, [r1]                                      
        if ( _Thread_Executing->is_preemptible ||                     
    8548:	1a000001 	bne	8554 <_Thread_Resume+0xe4>                    
    854c:	e3520000 	cmp	r2, #0	; 0x0                                  
    8550:	1a000002 	bne	8560 <_Thread_Resume+0xf0>                    
             the_thread->current_priority == 0 )                      
          _Context_Switch_necessary = TRUE;                           
    8554:	e59f3018 	ldr	r3, [pc, #24]	; 8574 <_Thread_Resume+0x104>   
    8558:	e3a02001 	mov	r2, #1	; 0x1                                  
    855c:	e5c32000 	strb	r2, [r3]                                     
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  _ISR_Enable( level );                                               
    8560:	e129f005 	msr	CPSR_fc, r5                                   
    8564:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00006b08 <_Thread_Set_priority>: void _Thread_Set_priority( Thread_Control *the_thread, Priority_Control new_priority ) {
    6b08:	e92d4070 	push	{r4, r5, r6, lr}                             
  Priority_Bit_map_control mask;                                      
                                                                      
  major = _Priority_Major( new_priority );                            
  minor = _Priority_Minor( new_priority );                            
                                                                      
  the_priority_map->minor =                                           
    6b0c:	e1a05601 	lsl	r5, r1, #12                                   
    6b10:	e1a05825 	lsr	r5, r5, #16                                   
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
    6b14:	e3a02902 	mov	r2, #32768	; 0x8000                           
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
                                                                      
  mask = _Priority_Mask( minor );                                     
    6b18:	e201400f 	and	r4, r1, #15	; 0xf                             
    6b1c:	e1a04452 	asr	r4, r2, r4                                    
  minor = _Priority_Minor( new_priority );                            
                                                                      
  the_priority_map->minor =                                           
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
    6b20:	e1a02552 	asr	r2, r2, r5                                    
  the_thread->current_priority = new_priority;                        
  the_thread->ready            = &_Thread_Ready_chain[ new_priority ];
    6b24:	e59f3048 	ldr	r3, [pc, #72]	; 6b74 <_Thread_Set_priority+0x6c>
    6b28:	e593c000 	ldr	ip, [r3]                                      
    6b2c:	e3a0300c 	mov	r3, #12	; 0xc                                 
    6b30:	e026c193 	mla	r6, r3, r1, ip                                
    6b34:	e1a02802 	lsl	r2, r2, #16                                   
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
                                                                      
  mask = _Priority_Mask( minor );                                     
    6b38:	e1a04804 	lsl	r4, r4, #16                                   
  Priority_Bit_map_control mask;                                      
                                                                      
  major = _Priority_Major( new_priority );                            
  minor = _Priority_Minor( new_priority );                            
                                                                      
  the_priority_map->minor =                                           
    6b3c:	e59fc034 	ldr	ip, [pc, #52]	; 6b78 <_Thread_Set_priority+0x70>
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
    6b40:	e1a02822 	lsr	r2, r2, #16                                   
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
                                                                      
  mask = _Priority_Mask( minor );                                     
    6b44:	e1a04824 	lsr	r4, r4, #16                                   
  Priority_Bit_map_control mask;                                      
                                                                      
  major = _Priority_Major( new_priority );                            
  minor = _Priority_Minor( new_priority );                            
                                                                      
  the_priority_map->minor =                                           
    6b48:	e08cc085 	add	ip, ip, r5, lsl #1                            
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
                                                                      
  mask = _Priority_Mask( minor );                                     
  the_priority_map->ready_minor = mask;                               
  the_priority_map->block_minor = ~mask;                              
    6b4c:	e1e03004 	mvn	r3, r4                                        
  the_priority_map->minor =                                           
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
    6b50:	e1e05002 	mvn	r5, r2                                        
                                                                      
  mask = _Priority_Mask( minor );                                     
  the_priority_map->ready_minor = mask;                               
  the_priority_map->block_minor = ~mask;                              
    6b54:	e1c039ba 	strh	r3, [r0, #154]                               
    6b58:	e580608c 	str	r6, [r0, #140]                                
  Priority_Bit_map_control mask;                                      
                                                                      
  major = _Priority_Major( new_priority );                            
  minor = _Priority_Minor( new_priority );                            
                                                                      
  the_priority_map->minor =                                           
    6b5c:	e580c090 	str	ip, [r0, #144]                                
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
  the_priority_map->ready_major = mask;                               
  the_priority_map->block_major = ~mask;                              
    6b60:	e1c059b8 	strh	r5, [r0, #152]                               
void _Thread_Set_priority(                                            
  Thread_Control   *the_thread,                                       
  Priority_Control  new_priority                                      
)                                                                     
{                                                                     
  the_thread->current_priority = new_priority;                        
    6b64:	e5801014 	str	r1, [r0, #20]                                 
                                                                      
  the_priority_map->minor =                                           
    &_Priority_Bit_map[ _Priority_Bits_index(major) ];                
                                                                      
  mask = _Priority_Mask( major );                                     
  the_priority_map->ready_major = mask;                               
    6b68:	e1c029b4 	strh	r2, [r0, #148]                               
  the_priority_map->block_major = ~mask;                              
                                                                      
  mask = _Priority_Mask( minor );                                     
  the_priority_map->ready_minor = mask;                               
    6b6c:	e1c049b6 	strh	r4, [r0, #150]                               
  the_thread->ready            = &_Thread_Ready_chain[ new_priority ];
                                                                      
  _Priority_Initialize_information( &the_thread->Priority_map, new_priority );
}                                                                     
    6b70:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

00006d50 <_Thread_Stack_Allocate>: * Call ONLY the CPU table stack allocate hook, _or_ the * the RTEMS workspace allocate. This is so the stack free * routine can call the correct deallocation routine. */ if ( _Configuration_Table->stack_allocate_hook ) {
    6d50:	e59f305c 	ldr	r3, [pc, #92]	; 6db4 <_Thread_Stack_Allocate+0x64>
    6d54:	e5933000 	ldr	r3, [r3]                                      
    6d58:	e5932020 	ldr	r2, [r3, #32]                                 
                                                                      
size_t _Thread_Stack_Allocate(                                        
  Thread_Control *the_thread,                                         
  size_t          stack_size                                          
)                                                                     
{                                                                     
    6d5c:	e59f3054 	ldr	r3, [pc, #84]	; 6db8 <_Thread_Stack_Allocate+0x68>
    6d60:	e5933000 	ldr	r3, [r3]                                      
    6d64:	e92d4030 	push	{r4, r5, lr}                                 
    6d68:	e1510003 	cmp	r1, r3                                        
    6d6c:	21a04001 	movcs	r4, r1                                      
    6d70:	31a04003 	movcc	r4, r3                                      
   * Call ONLY the CPU table stack allocate hook, _or_ the            
   * the RTEMS workspace allocate.  This is so the stack free         
   * routine can call the correct deallocation routine.               
   */                                                                 
                                                                      
  if ( _Configuration_Table->stack_allocate_hook ) {                  
    6d74:	e3520000 	cmp	r2, #0	; 0x0                                  
                                                                      
size_t _Thread_Stack_Allocate(                                        
  Thread_Control *the_thread,                                         
  size_t          stack_size                                          
)                                                                     
{                                                                     
    6d78:	e1a05000 	mov	r5, r0                                        
   * Call ONLY the CPU table stack allocate hook, _or_ the            
   * the RTEMS workspace allocate.  This is so the stack free         
   * routine can call the correct deallocation routine.               
   */                                                                 
                                                                      
  if ( _Configuration_Table->stack_allocate_hook ) {                  
    6d7c:	0a000003 	beq	6d90 <_Thread_Stack_Allocate+0x40>            
    stack_addr = (*_Configuration_Table->stack_allocate_hook)( the_stack_size );
    6d80:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    6d84:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    6d88:	e12fff12 	bx	r2                                             <== NOT EXECUTED
    6d8c:	ea000002 	b	6d9c <_Thread_Stack_Allocate+0x4c>              <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Stack_Adjust_size (                  
  size_t size                                                         
)                                                                     
{                                                                     
  return size + CPU_STACK_ALIGNMENT;                                  
    6d90:	e2844004 	add	r4, r4, #4	; 0x4                              
     *  get and keep the stack adjust factor, the stack alignment, and
     *  the context initialization sequence in sync.                  
     */                                                               
                                                                      
    the_stack_size = _Stack_Adjust_size( the_stack_size );            
    stack_addr = _Workspace_Allocate( the_stack_size );               
    6d94:	e1a00004 	mov	r0, r4                                        
    6d98:	eb000203 	bl	75ac <_Workspace_Allocate>                     
    6d9c:	e1a03000 	mov	r3, r0                                        
    the_stack_size = 0;                                               
                                                                      
  the_thread->Start.stack = stack_addr;                               
                                                                      
  return the_stack_size;                                              
}                                                                     
    6da0:	e3500000 	cmp	r0, #0	; 0x0                                  
    6da4:	11a00004 	movne	r0, r4                                      
    6da8:	03a00000 	moveq	r0, #0	; 0x0                                
  }                                                                   
                                                                      
  if ( !stack_addr )                                                  
    the_stack_size = 0;                                               
                                                                      
  the_thread->Start.stack = stack_addr;                               
    6dac:	e58530cc 	str	r3, [r5, #204]                                
                                                                      
  return the_stack_size;                                              
}                                                                     
    6db0:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00006dbc <_Thread_Stack_Free>: { /* * If the API provided the stack space, then don't free it. */ if ( !the_thread->Start.core_allocated_stack )
    6dbc:	e5d030c0 	ldrb	r3, [r0, #192]                               
    6dc0:	e3530000 	cmp	r3, #0	; 0x0                                  
 */                                                                   
                                                                      
void _Thread_Stack_Free(                                              
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
    6dc4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    /*                                                                
     *  If the API provided the stack space, then don't free it.      
     */                                                               
                                                                      
    if ( !the_thread->Start.core_allocated_stack )                    
    6dc8:	049df004 	popeq	{pc}		; (ldreq pc, [sp], #4)                
     * Call ONLY the CPU table stack free hook, or the                
     * the RTEMS workspace free.  This is so the free                 
     * routine properly matches the allocation of the stack.          
     */                                                               
                                                                      
    if ( _Configuration_Table->stack_free_hook )                      
    6dcc:	e59f3028 	ldr	r3, [pc, #40]	; 6dfc <_Thread_Stack_Free+0x40>
    6dd0:	e5933000 	ldr	r3, [r3]                                      
    6dd4:	e5933024 	ldr	r3, [r3, #36]                                 
    6dd8:	e3530000 	cmp	r3, #0	; 0x0                                  
    6ddc:	0a000003 	beq	6df0 <_Thread_Stack_Free+0x34>                
      (*_Configuration_Table->stack_free_hook)(                       
    6de0:	e59000c8 	ldr	r0, [r0, #200]                                <== NOT EXECUTED
    6de4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    6de8:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    6dec:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
        the_thread->Start.Initial_stack.area                          
      );                                                              
    else                                                              
        _Workspace_Free( the_thread->Start.Initial_stack.area );      
    6df0:	e59000c8 	ldr	r0, [r0, #200]                                
}                                                                     
    6df4:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    
    if ( _Configuration_Table->stack_free_hook )                      
      (*_Configuration_Table->stack_free_hook)(                       
        the_thread->Start.Initial_stack.area                          
      );                                                              
    else                                                              
        _Workspace_Free( the_thread->Start.Initial_stack.area );      
    6df8:	ea0001e7 	b	759c <_Workspace_Free>                          
                                                                      

00006e90 <_Thread_Tickle_timeslice>: void _Thread_Tickle_timeslice( void ) { Thread_Control *executing; executing = _Thread_Executing;
    6e90:	e59f3088 	ldr	r3, [pc, #136]	; 6f20 <_Thread_Tickle_timeslice+0x90>
 *                                                                    
 *  Output parameters:  NONE                                          
 */                                                                   
                                                                      
void _Thread_Tickle_timeslice( void )                                 
{                                                                     
    6e94:	e92d4010 	push	{r4, lr}                                     
  Thread_Control *executing;                                          
                                                                      
  executing = _Thread_Executing;                                      
    6e98:	e5934000 	ldr	r4, [r3]                                      
  /*                                                                  
   *  If the thread is not preemptible or is not ready, then          
   *  just return.                                                    
   */                                                                 
                                                                      
  if ( !executing->is_preemptible )                                   
    6e9c:	e5d43076 	ldrb	r3, [r4, #118]                               
    6ea0:	e3530000 	cmp	r3, #0	; 0x0                                  
    6ea4:	08bd8010 	popeq	{r4, pc}                                    
    return;                                                           
                                                                      
  if ( !_States_Is_ready( executing->current_state ) )                
    6ea8:	e5943010 	ldr	r3, [r4, #16]                                 
    6eac:	e3530000 	cmp	r3, #0	; 0x0                                  
    6eb0:	18bd8010 	popne	{r4, pc}                                    
                                                                      
  /*                                                                  
   *  The cpu budget algorithm determines what happens next.          
   */                                                                 
                                                                      
  switch ( executing->budget_algorithm ) {                            
    6eb4:	e594307c 	ldr	r3, [r4, #124]                                
    6eb8:	e3530001 	cmp	r3, #1	; 0x1                                  
    6ebc:	38bd8010 	popcc	{r4, pc}                                    
    6ec0:	e3530002 	cmp	r3, #2	; 0x2                                  
    6ec4:	9a000002 	bls	6ed4 <_Thread_Tickle_timeslice+0x44>          
    6ec8:	e3530003 	cmp	r3, #3	; 0x3                                  <== NOT EXECUTED
    6ecc:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
    6ed0:	ea000009 	b	6efc <_Thread_Tickle_timeslice+0x6c>            <== NOT EXECUTED
    case THREAD_CPU_BUDGET_ALGORITHM_NONE:                            
      break;                                                          
                                                                      
    case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:                 
    case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:               
      if ( (int)(--executing->cpu_time_budget) <= 0 ) {               
    6ed4:	e5943078 	ldr	r3, [r4, #120]                                
    6ed8:	e2433001 	sub	r3, r3, #1	; 0x1                              
    6edc:	e3530000 	cmp	r3, #0	; 0x0                                  
    6ee0:	e5843078 	str	r3, [r4, #120]                                
    6ee4:	c8bd8010 	popgt	{r4, pc}                                    
        _Thread_Reset_timeslice();                                    
    6ee8:	eb000bb0 	bl	9db0 <_Thread_Reset_timeslice>                 
        executing->cpu_time_budget = _Thread_Ticks_per_timeslice;     
    6eec:	e59f3030 	ldr	r3, [pc, #48]	; 6f24 <_Thread_Tickle_timeslice+0x94>
    6ef0:	e5933000 	ldr	r3, [r3]                                      
    6ef4:	e5843078 	str	r3, [r4, #120]                                
    6ef8:	e8bd8010 	pop	{r4, pc}                                      
      }                                                               
      break;                                                          
                                                                      
    case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:                         
      if ( --executing->cpu_time_budget == 0 )                        
    6efc:	e5943078 	ldr	r3, [r4, #120]                                <== NOT EXECUTED
    6f00:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    6f04:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    6f08:	e5843078 	str	r3, [r4, #120]                                <== NOT EXECUTED
    6f0c:	18bd8010 	popne	{r4, pc}                                    <== NOT EXECUTED
        (*executing->budget_callout)( executing );                    
    6f10:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    6f14:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    6f18:	e594f080 	ldr	pc, [r4, #128]                                <== NOT EXECUTED
    6f1c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

00005c1c <_Thread_blocking_operation_Cancel>: /* * If the sync state is timed out, this is very likely not needed. * But better safe than sorry when it comes to critical sections. */ if ( _Watchdog_Is_active( &the_thread->Timer ) ) {
    5c1c:	e5913050 	ldr	r3, [r1, #80]                                 <== NOT EXECUTED
    5c20:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
    5c24:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
void _Thread_blocking_operation_Cancel(                               
  Thread_blocking_operation_States  sync_state,                       
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
    5c28:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   * The thread is not waiting on anything after this completes.      
   */                                                                 
  the_thread->Wait.queue = NULL;                                      
    5c2c:	e5813044 	str	r3, [r1, #68]                                 <== NOT EXECUTED
void _Thread_blocking_operation_Cancel(                               
  Thread_blocking_operation_States  sync_state,                       
  Thread_Control                   *the_thread,                       
  ISR_Level                         level                             
)                                                                     
{                                                                     
    5c30:	e1a04001 	mov	r4, r1                                        <== 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 ) ) {                  
    5c34:	1a000005 	bne	5c50 <_Thread_blocking_operation_Cancel+0x34> <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(                       
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_REMOVE_IT;                           
    5c38:	e2833003 	add	r3, r3, #3	; 0x3                              <== NOT EXECUTED
    5c3c:	e5813050 	str	r3, [r1, #80]                                 <== NOT EXECUTED
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    5c40:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
    (void) _Watchdog_Remove( &the_thread->Timer );                    
    5c44:	e2810048 	add	r0, r1, #72	; 0x48                            <== NOT EXECUTED
    5c48:	eb000605 	bl	7464 <_Watchdog_Remove>                        <== NOT EXECUTED
    5c4c:	ea000000 	b	5c54 <_Thread_blocking_operation_Cancel+0x38>   <== NOT EXECUTED
  } else                                                              
    _ISR_Enable( level );                                             
    5c50:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
    5c54:	e59f1008 	ldr	r1, [pc, #8]	; 5c64 <_Thread_blocking_operation_Cancel+0x48><== NOT EXECUTED
    5c58:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
    5c5c:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
    5c60:	ea000068 	b	5e08 <_Thread_Clear_state>                      <== NOT EXECUTED
                                                                      

0000679c <_Thread_queue_Enqueue_priority>: Thread_blocking_operation_States _Thread_queue_Enqueue_priority ( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, ISR_Level *level_p ) {
    679c:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
    67a0:	e1a0c001 	mov	ip, r1                                        
  Priority_Control     priority;                                      
  States_Control       block_state;                                   
                                                                      
  _Chain_Initialize_empty( &the_thread->Wait.Block2n );               
                                                                      
  priority     = the_thread->current_priority;                        
    67a4:	e5915014 	ldr	r5, [r1, #20]                                 
 */                                                                   
RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty(                    
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  the_chain->first          = _Chain_Tail(the_chain);                 
    67a8:	e281303c 	add	r3, r1, #60	; 0x3c                            
    67ac:	e58c3038 	str	r3, [ip, #56]                                 
  the_chain->permanent_null = NULL;                                   
    67b0:	e3a03000 	mov	r3, #0	; 0x0                                  
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
    67b4:	e1a04000 	mov	r4, r0                                        
    67b8:	e58c303c 	str	r3, [ip, #60]                                 
                                                                      
RTEMS_INLINE_ROUTINE uint32_t   _Thread_queue_Header_number (         
  Priority_Control the_priority                                       
)                                                                     
{                                                                     
  return (the_priority / TASK_QUEUE_DATA_PRIORITIES_PER_HEADER);      
    67bc:	e1a00325 	lsr	r0, r5, #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 ];  
    67c0:	e283300c 	add	r3, r3, #12	; 0xc                             
    67c4:	e0264093 	mla	r6, r3, r0, r4                                
  block_state  = the_thread_queue->state;                             
                                                                      
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    67c8:	e3150020 	tst	r5, #32	; 0x20                                
  the_chain->last           = _Chain_Head(the_chain);                 
    67cc:	e2811038 	add	r1, r1, #56	; 0x38                            
    67d0:	e58c1040 	str	r1, [ip, #64]                                 
Thread_blocking_operation_States _Thread_queue_Enqueue_priority (     
  Thread_queue_Control *the_thread_queue,                             
  Thread_Control       *the_thread,                                   
  ISR_Level            *level_p                                       
)                                                                     
{                                                                     
    67d4:	e1a09002 	mov	r9, r2                                        
  _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;                             
    67d8:	e5948038 	ldr	r8, [r4, #56]                                 
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
    67dc:	159fa19c 	ldrne	sl, [pc, #412]	; 6980 <_Thread_queue_Enqueue_priority+0x1e4>
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->last;                    
    67e0:	12860008 	addne	r0, r6, #8	; 0x8                            
  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 ) )                  
    67e4:	1a00002d 	bne	68a0 <_Thread_queue_Enqueue_priority+0x104>   
 */                                                                   
RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail(                         
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
   return (Chain_Node *) &the_chain->permanent_null;                  
    67e8:	e3a03003 	mov	r3, #3	; 0x3                                  
    67ec:	e0030390 	mul	r3, r0, r3                                    
    67f0:	e2833001 	add	r3, r3, #1	; 0x1                              
    67f4:	e0840103 	add	r0, r4, r3, lsl #2                            
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->first;                   
    67f8:	e1a07006 	mov	r7, r6                                        
  if ( _Thread_queue_Is_reverse_search( priority ) )                  
    goto restart_reverse_search;                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
    67fc:	e10f6000 	mrs	r6, CPSR                                      
    6800:	e38630c0 	orr	r3, r6, #192	; 0xc0                           
    6804:	e129f003 	msr	CPSR_fc, r3                                   
  search_thread = (Thread_Control *) header->first;                   
    6808:	e3e02000 	mvn	r2, #0	; 0x0                                  
    680c:	e5971000 	ldr	r1, [r7]                                      
    6810:	ea000011 	b	685c <_Thread_queue_Enqueue_priority+0xc0>      
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
    search_priority = search_thread->current_priority;                
    6814:	e5912014 	ldr	r2, [r1, #20]                                 
    if ( priority <= search_priority )                                
    6818:	e1550002 	cmp	r5, r2                                        
    681c:	9a000010 	bls	6864 <_Thread_queue_Enqueue_priority+0xc8>    
      break;                                                          
                                                                      
#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE )                           
    search_thread = (Thread_Control *) search_thread->Object.Node.next;
    6820:	e5911000 	ldr	r1, [r1]                                      
    if ( _Chain_Is_tail( header, (Chain_Node *)search_thread ) )      
    6824:	e1510000 	cmp	r1, r0                                        
    6828:	0a00000d 	beq	6864 <_Thread_queue_Enqueue_priority+0xc8>    
      break;                                                          
    search_priority = search_thread->current_priority;                
    682c:	e5912014 	ldr	r2, [r1, #20]                                 
    if ( priority <= search_priority )                                
    6830:	e1550002 	cmp	r5, r2                                        
    6834:	9a00000a 	bls	6864 <_Thread_queue_Enqueue_priority+0xc8>    
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    6838:	e10f3000 	mrs	r3, CPSR                                      
    683c:	e129f006 	msr	CPSR_fc, r6                                   
    6840:	e129f003 	msr	CPSR_fc, r3                                   
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
    6844:	e5913010 	ldr	r3, [r1, #16]                                 
    6848:	e1180003 	tst	r8, r3                                        
    684c:	1a000001 	bne	6858 <_Thread_queue_Enqueue_priority+0xbc>    
      _ISR_Enable( level );                                           
    6850:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
    6854:	eaffffe8 	b	67fc <_Thread_queue_Enqueue_priority+0x60>      <== NOT EXECUTED
      goto restart_forward_search;                                    
    }                                                                 
    search_thread =                                                   
    6858:	e5911000 	ldr	r1, [r1]                                      
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->first;                   
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
    685c:	e1510000 	cmp	r1, r0                                        
    6860:	1affffeb 	bne	6814 <_Thread_queue_Enqueue_priority+0x78>    
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
    6864:	e5943030 	ldr	r3, [r4, #48]                                 
    6868:	e3530001 	cmp	r3, #1	; 0x1                                  
                                                                      
restart_forward_search:                                               
  search_priority = PRIORITY_MINIMUM - 1;                             
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->first;                   
  while ( !_Chain_Is_tail( header, (Chain_Node *)search_thread ) ) {  
    686c:	e1a00006 	mov	r0, r6                                        
    }                                                                 
    search_thread =                                                   
       (Thread_Control *)search_thread->Object.Node.next;             
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
    6870:	1a00003f 	bne	6974 <_Thread_queue_Enqueue_priority+0x1d8>   
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
    6874:	e3a03000 	mov	r3, #0	; 0x0                                  
                                                                      
  if ( priority == search_priority )                                  
    6878:	e1550002 	cmp	r5, r2                                        
                                                                      
  if ( the_thread_queue->sync_state !=                                
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
    687c:	e5843030 	str	r3, [r4, #48]                                 
                                                                      
  if ( priority == search_priority )                                  
    6880:	0a000031 	beq	694c <_Thread_queue_Enqueue_priority+0x1b0>   
    goto equal_priority;                                              
                                                                      
  search_node   = (Chain_Node *) search_thread;                       
  previous_node = search_node->previous;                              
    6884:	e5913004 	ldr	r3, [r1, #4]                                  
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
    6888:	e88c000a 	stm	ip, {r1, r3}                                  
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
    688c:	e58c4044 	str	r4, [ip, #68]                                 
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
    6890:	e583c000 	str	ip, [r3]                                      
  search_node->previous  = the_node;                                  
    6894:	e581c004 	str	ip, [r1, #4]                                  
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
    6898:	e129f006 	msr	CPSR_fc, r6                                   
    689c:	ea000032 	b	696c <_Thread_queue_Enqueue_priority+0x1d0>     
  return THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED;                  
                                                                      
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
    68a0:	e5da3000 	ldrb	r3, [sl]                                     
    68a4:	e2832001 	add	r2, r3, #1	; 0x1                              
                                                                      
  _ISR_Disable( level );                                              
    68a8:	e10f7000 	mrs	r7, CPSR                                      
    68ac:	e38730c0 	orr	r3, r7, #192	; 0xc0                           
    68b0:	e129f003 	msr	CPSR_fc, r3                                   
  search_thread = (Thread_Control *) header->last;                    
    68b4:	e5901000 	ldr	r1, [r0]                                      
    68b8:	ea000011 	b	6904 <_Thread_queue_Enqueue_priority+0x168>     
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
    search_priority = search_thread->current_priority;                
    68bc:	e5912014 	ldr	r2, [r1, #20]                                 
    if ( priority >= search_priority )                                
    68c0:	e1550002 	cmp	r5, r2                                        
    68c4:	2a000010 	bcs	690c <_Thread_queue_Enqueue_priority+0x170>   
      break;                                                          
#if ( CPU_UNROLL_ENQUEUE_PRIORITY == TRUE )                           
    search_thread = (Thread_Control *) search_thread->Object.Node.previous;
    68c8:	e5911004 	ldr	r1, [r1, #4]                                  
    if ( _Chain_Is_head( header, (Chain_Node *)search_thread ) )      
    68cc:	e1510006 	cmp	r1, r6                                        
    68d0:	0a00000d 	beq	690c <_Thread_queue_Enqueue_priority+0x170>   
      break;                                                          
    search_priority = search_thread->current_priority;                
    68d4:	e5912014 	ldr	r2, [r1, #20]                                 
    if ( priority >= search_priority )                                
    68d8:	e1550002 	cmp	r5, r2                                        
    68dc:	2a00000a 	bcs	690c <_Thread_queue_Enqueue_priority+0x170>   
      break;                                                          
#endif                                                                
    _ISR_Flash( level );                                              
    68e0:	e10f3000 	mrs	r3, CPSR                                      
    68e4:	e129f007 	msr	CPSR_fc, r7                                   
    68e8:	e129f003 	msr	CPSR_fc, r3                                   
    if ( !_States_Are_set( search_thread->current_state, block_state) ) {
    68ec:	e5913010 	ldr	r3, [r1, #16]                                 
    68f0:	e1180003 	tst	r8, r3                                        
    68f4:	1a000001 	bne	6900 <_Thread_queue_Enqueue_priority+0x164>   
      _ISR_Enable( level );                                           
    68f8:	e129f007 	msr	CPSR_fc, r7                                   <== NOT EXECUTED
    68fc:	eaffffe7 	b	68a0 <_Thread_queue_Enqueue_priority+0x104>     <== NOT EXECUTED
      goto restart_reverse_search;                                    
    }                                                                 
    search_thread = (Thread_Control *)                                
    6900:	e5911004 	ldr	r1, [r1, #4]                                  
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->last;                    
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
    6904:	e1510006 	cmp	r1, r6                                        
    6908:	1affffeb 	bne	68bc <_Thread_queue_Enqueue_priority+0x120>   
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
    690c:	e5943030 	ldr	r3, [r4, #48]                                 
    6910:	e3530001 	cmp	r3, #1	; 0x1                                  
restart_reverse_search:                                               
  search_priority     = PRIORITY_MAXIMUM + 1;                         
                                                                      
  _ISR_Disable( level );                                              
  search_thread = (Thread_Control *) header->last;                    
  while ( !_Chain_Is_head( header, (Chain_Node *)search_thread ) ) {  
    6914:	e1a00007 	mov	r0, r7                                        
    }                                                                 
    search_thread = (Thread_Control *)                                
                         search_thread->Object.Node.previous;         
  }                                                                   
                                                                      
  if ( the_thread_queue->sync_state !=                                
    6918:	1a000015 	bne	6974 <_Thread_queue_Enqueue_priority+0x1d8>   
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
    691c:	e3a03000 	mov	r3, #0	; 0x0                                  
                                                                      
  if ( priority == search_priority )                                  
    6920:	e1550002 	cmp	r5, r2                                        
                                                                      
  if ( the_thread_queue->sync_state !=                                
       THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )                   
    goto synchronize;                                                 
                                                                      
  the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_SYNCHRONIZED;
    6924:	e5843030 	str	r3, [r4, #48]                                 
                                                                      
  if ( priority == search_priority )                                  
    6928:	0a000007 	beq	694c <_Thread_queue_Enqueue_priority+0x1b0>   
    goto equal_priority;                                              
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
    692c:	e5913000 	ldr	r3, [r1]                                      
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
    6930:	e58c1004 	str	r1, [ip, #4]                                  
                                                                      
  search_node = (Chain_Node *) search_thread;                         
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
    6934:	e58c3000 	str	r3, [ip]                                      
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
  next_node->previous    = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
    6938:	e58c4044 	str	r4, [ip, #68]                                 
  next_node   = search_node->next;                                    
  the_node    = (Chain_Node *) the_thread;                            
                                                                      
  the_node->next          = next_node;                                
  the_node->previous      = search_node;                              
  search_node->next       = the_node;                                 
    693c:	e581c000 	str	ip, [r1]                                      
  next_node->previous    = the_node;                                  
    6940:	e583c004 	str	ip, [r3, #4]                                  
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
    6944:	e129f007 	msr	CPSR_fc, r7                                   
    6948:	ea000007 	b	696c <_Thread_queue_Enqueue_priority+0x1d0>     
    694c:	e281303c 	add	r3, r1, #60	; 0x3c                            
  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;                              
    6950:	e5932004 	ldr	r2, [r3, #4]                                  
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
    6954:	e58c3000 	str	r3, [ip]                                      
  the_node->previous     = previous_node;                             
    6958:	e58c2004 	str	r2, [ip, #4]                                  
  previous_node->next    = the_node;                                  
  search_node->previous  = the_node;                                  
  the_thread->Wait.queue = the_thread_queue;                          
    695c:	e58c4044 	str	r4, [ip, #68]                                 
  previous_node = search_node->previous;                              
  the_node      = (Chain_Node *) the_thread;                          
                                                                      
  the_node->next         = search_node;                               
  the_node->previous     = previous_node;                             
  previous_node->next    = the_node;                                  
    6960:	e582c000 	str	ip, [r2]                                      
  search_node->previous  = the_node;                                  
    6964:	e583c004 	str	ip, [r3, #4]                                  
  the_thread->Wait.queue = the_thread_queue;                          
  _ISR_Enable( level );                                               
    6968:	e129f000 	msr	CPSR_fc, r0                                   
    696c:	e3a00001 	mov	r0, #1	; 0x1                                  
    6970:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
   *  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;                                                   
    6974:	e5890000 	str	r0, [r9]                                      <== NOT EXECUTED
  return the_thread_queue->sync_state;                                
    6978:	e5940030 	ldr	r0, [r4, #48]                                 <== NOT EXECUTED
}                                                                     
    697c:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      

000066f4 <_Thread_queue_Enqueue_with_handler>: void _Thread_queue_Enqueue_with_handler( Thread_queue_Control *the_thread_queue, Watchdog_Interval timeout, Thread_queue_Timeout_callout handler ) {
    66f4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
    Thread_queue_Control *,                                           
    Thread_Control *,                                                 
    ISR_Level *                                                       
  );                                                                  
                                                                      
  the_thread = _Thread_Executing;                                     
    66f8:	e59f308c 	ldr	r3, [pc, #140]	; 678c <_Thread_queue_Enqueue_with_handler+0x98><== NOT EXECUTED
    66fc:	e5934000 	ldr	r4, [r3]                                      <== NOT EXECUTED
void _Thread_queue_Enqueue_with_handler(                              
  Thread_queue_Control         *the_thread_queue,                     
  Watchdog_Interval             timeout,                              
  Thread_queue_Timeout_callout  handler                               
)                                                                     
{                                                                     
    6700:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
    6704:	e1a07001 	mov	r7, r1                                        <== NOT EXECUTED
    6708:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
  else                                                                
#endif                                                                
  /*                                                                  
   *  Set the blocking state for this thread queue in the thread.     
   */                                                                 
  _Thread_Set_state( the_thread, the_thread_queue->state );           
    670c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    6710:	e5951038 	ldr	r1, [r5, #56]                                 <== NOT EXECUTED
void _Thread_queue_Enqueue_with_handler(                              
  Thread_queue_Control         *the_thread_queue,                     
  Watchdog_Interval             timeout,                              
  Thread_queue_Timeout_callout  handler                               
)                                                                     
{                                                                     
    6714:	e1a06002 	mov	r6, r2                                        <== NOT EXECUTED
  else                                                                
#endif                                                                
  /*                                                                  
   *  Set the blocking state for this thread queue in the thread.     
   */                                                                 
  _Thread_Set_state( the_thread, the_thread_queue->state );           
    6718:	eb000117 	bl	6b7c <_Thread_Set_state>                       <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  If the thread wants to timeout, then schedule its timer.        
   */                                                                 
  if ( timeout ) {                                                    
    671c:	e3570000 	cmp	r7, #0	; 0x0                                  <== NOT EXECUTED
    6720:	0a000009 	beq	674c <_Thread_queue_Enqueue_with_handler+0x58><== NOT EXECUTED
    _Watchdog_Initialize(                                             
    6724:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
    6728:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
  the_watchdog->routine   = routine;                                  
    672c:	e5846064 	str	r6, [r4, #100]                                <== NOT EXECUTED
  the_watchdog->id        = id;                                       
    6730:	e5843068 	str	r3, [r4, #104]                                <== NOT EXECUTED
  the_watchdog->user_data = user_data;                                
    6734:	e584206c 	str	r2, [r4, #108]                                <== NOT EXECUTED
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
    6738:	e5847054 	str	r7, [r4, #84]                                 <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
    673c:	e5842050 	str	r2, [r4, #80]                                 <== NOT EXECUTED
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
    6740:	e59f0048 	ldr	r0, [pc, #72]	; 6790 <_Thread_queue_Enqueue_with_handler+0x9c><== NOT EXECUTED
    6744:	e2841048 	add	r1, r4, #72	; 0x48                            <== NOT EXECUTED
    6748:	eb0002e9 	bl	72f4 <_Watchdog_Insert>                        <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  Now enqueue the thread per the discipline for this thread queue.
   */                                                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
    674c:	e5951034 	ldr	r1, [r5, #52]                                 <== NOT EXECUTED
    6750:	e59f203c 	ldr	r2, [pc, #60]	; 6794 <_Thread_queue_Enqueue_with_handler+0xa0><== NOT EXECUTED
    6754:	e3510001 	cmp	r1, #1	; 0x1                                  <== NOT EXECUTED
    6758:	e59f3038 	ldr	r3, [pc, #56]	; 6798 <_Thread_queue_Enqueue_with_handler+0xa4><== NOT EXECUTED
    enqueue_p = _Thread_queue_Enqueue_priority;                       
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    enqueue_p = _Thread_queue_Enqueue_fifo;                           
                                                                      
  sync_state = (*enqueue_p)( the_thread_queue, the_thread, &level );  
    675c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  Now enqueue the thread per the discipline for this thread queue.
   */                                                                 
  if ( the_thread_queue->discipline == THREAD_QUEUE_DISCIPLINE_PRIORITY )
    6760:	11a03002 	movne	r3, r2                                      <== NOT EXECUTED
    enqueue_p = _Thread_queue_Enqueue_priority;                       
  else /* must be THREAD_QUEUE_DISCIPLINE_FIFO */                     
    enqueue_p = _Thread_queue_Enqueue_fifo;                           
                                                                      
  sync_state = (*enqueue_p)( the_thread_queue, the_thread, &level );  
    6764:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    6768:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    676c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    6770:	e12fff13 	bx	r3                                             <== NOT EXECUTED
  if ( sync_state != THREAD_BLOCKING_OPERATION_NOTHING_HAPPENED )     
    6774:	e3500001 	cmp	r0, #1	; 0x1                                  <== NOT EXECUTED
    _Thread_blocking_operation_Cancel( sync_state, the_thread, level );
    6778:	11a01004 	movne	r1, r4                                      <== NOT EXECUTED
    677c:	159d2000 	ldrne	r2, [sp]                                    <== NOT EXECUTED
    6780:	1bfffd25 	blne	5c1c <_Thread_blocking_operation_Cancel>     <== NOT EXECUTED
}                                                                     
    6784:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    6788:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

0000a718 <_Thread_queue_Extract_fifo>: void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread ) {
    a718:	e92d4010 	push	{r4, lr}                                     
    a71c:	e1a04001 	mov	r4, r1                                        
  ISR_Level level;                                                    
                                                                      
  _ISR_Disable( level );                                              
    a720:	e10f0000 	mrs	r0, CPSR                                      
    a724:	e38030c0 	orr	r3, r0, #192	; 0xc0                           
    a728:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    a72c:	e59f3064 	ldr	r3, [pc, #100]	; a798 <_Thread_queue_Extract_fifo+0x80>
    a730:	e5912010 	ldr	r2, [r1, #16]                                 
    a734:	e0023003 	and	r3, r2, r3                                    
    a738:	e3530000 	cmp	r3, #0	; 0x0                                  
    a73c:	1a000001 	bne	a748 <_Thread_queue_Extract_fifo+0x30>        
    _ISR_Enable( level );                                             
    a740:	e129f000 	msr	CPSR_fc, r0                                   <== NOT EXECUTED
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
    a744:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    a748:	e5913050 	ldr	r3, [r1, #80]                                 
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
    a74c:	e5942004 	ldr	r2, [r4, #4]                                  
)                                                                     
{                                                                     
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
    a750:	e5911000 	ldr	r1, [r1]                                      
    a754:	e3530002 	cmp	r3, #2	; 0x2                                  
    return;                                                           
  }                                                                   
                                                                      
  _Chain_Extract_unprotected( &the_thread->Object.Node );             
                                                                      
  the_thread->Wait.queue = NULL;                                      
    a758:	e3a03000 	mov	r3, #0	; 0x0                                  
  previous       = the_node->previous;                                
  next->previous = previous;                                          
  previous->next = next;                                              
    a75c:	e5821000 	str	r1, [r2]                                      
    a760:	e5843044 	str	r3, [r4, #68]                                 
  Chain_Node *next;                                                   
  Chain_Node *previous;                                               
                                                                      
  next           = the_node->next;                                    
  previous       = the_node->previous;                                
  next->previous = previous;                                          
    a764:	e5812004 	str	r2, [r1, #4]                                  
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    a768:	0a000001 	beq	a774 <_Thread_queue_Extract_fifo+0x5c>        
    _ISR_Enable( level );                                             
    a76c:	e129f000 	msr	CPSR_fc, r0                                   
    a770:	ea000004 	b	a788 <_Thread_queue_Extract_fifo+0x70>          
    a774:	e3a03003 	mov	r3, #3	; 0x3                                  
    a778:	e5843050 	str	r3, [r4, #80]                                 
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    a77c:	e129f000 	msr	CPSR_fc, r0                                   
    (void) _Watchdog_Remove( &the_thread->Timer );                    
    a780:	e2840048 	add	r0, r4, #72	; 0x48                            
    a784:	ebfff336 	bl	7464 <_Watchdog_Remove>                        
                                                                      
RTEMS_INLINE_ROUTINE void _Thread_Unblock (                           
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
  _Thread_Clear_state( the_thread, STATES_BLOCKED );                  
    a788:	e59f100c 	ldr	r1, [pc, #12]	; a79c <_Thread_queue_Extract_fifo+0x84>
    a78c:	e1a00004 	mov	r0, r4                                        
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
                                                                      
}                                                                     
    a790:	e8bd4010 	pop	{r4, lr}                                      
    a794:	eaffed9b 	b	5e08 <_Thread_Clear_state>                      
                                                                      

00009b78 <_Thread_queue_Extract_priority_helper>: void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue, Thread_Control *the_thread, bool requeuing ) {
    9b78:	e92d4070 	push	{r4, r5, r6, lr}                             
    9b7c:	e1a04001 	mov	r4, r1                                        
    9b80:	e20260ff 	and	r6, r2, #255	; 0xff                           
  Chain_Node     *new_first_node;                                     
  Chain_Node     *new_second_node;                                    
  Chain_Node     *last_node;                                          
                                                                      
  the_node = (Chain_Node *) the_thread;                               
  _ISR_Disable( level );                                              
    9b84:	e10fc000 	mrs	ip, CPSR                                      
    9b88:	e38c30c0 	orr	r3, ip, #192	; 0xc0                           
    9b8c:	e129f003 	msr	CPSR_fc, r3                                   
  if ( !_States_Is_waiting_on_thread_queue( the_thread->current_state ) ) {
    9b90:	e59f30b4 	ldr	r3, [pc, #180]	; 9c4c <_Thread_queue_Extract_priority_helper+0xd4>
    9b94:	e5912010 	ldr	r2, [r1, #16]                                 
    9b98:	e0023003 	and	r3, r2, r3                                    
    9b9c:	e3530000 	cmp	r3, #0	; 0x0                                  
    9ba0:	1a000001 	bne	9bac <_Thread_queue_Extract_priority_helper+0x34>
    _ISR_Enable( level );                                             
    9ba4:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
    9ba8:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(                            
  Chain_Control *the_chain                                            
)                                                                     
{                                                                     
  return (the_chain->first == _Chain_Tail(the_chain));                
    9bac:	e5911038 	ldr	r1, [r1, #56]                                 
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
    9bb0:	e284303c 	add	r3, r4, #60	; 0x3c                            
    9bb4:	e1510003 	cmp	r1, r3                                        
                                                                      
  /*                                                                  
   *  The thread was actually waiting on a thread queue so let's remove it.
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
    9bb8:	e894000c 	ldm	r4, {r2, r3}                                  
      new_first_thread->Wait.Block2n.last = last_node;                
      last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n );
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
    next_node->previous = previous_node;                              
    9bbc:	05823004 	streq	r3, [r2, #4]                                
                                                                      
      new_first_thread->Wait.Block2n.last = last_node;                
      last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n );
    }                                                                 
  } else {                                                            
    previous_node->next = next_node;                                  
    9bc0:	05832000 	streq	r2, [r3]                                    
   */                                                                 
                                                                      
  next_node     = the_node->next;                                     
  previous_node = the_node->previous;                                 
                                                                      
  if ( !_Chain_Is_empty( &the_thread->Wait.Block2n ) ) {              
    9bc4:	0a00000e 	beq	9c04 <_Thread_queue_Extract_priority_helper+0x8c>
    new_first_node   = the_thread->Wait.Block2n.first;                
    new_first_thread = (Thread_Control *) new_first_node;             
    last_node        = the_thread->Wait.Block2n.last;                 
    9bc8:	e5945040 	ldr	r5, [r4, #64]                                 
    new_second_node  = new_first_node->next;                          
    9bcc:	e5910000 	ldr	r0, [r1]                                      
                                                                      
    previous_node->next      = new_first_node;                        
    next_node->previous      = new_first_node;                        
    9bd0:	e5821004 	str	r1, [r2, #4]                                  
    new_first_node   = the_thread->Wait.Block2n.first;                
    new_first_thread = (Thread_Control *) new_first_node;             
    last_node        = the_thread->Wait.Block2n.last;                 
    new_second_node  = new_first_node->next;                          
                                                                      
    previous_node->next      = new_first_node;                        
    9bd4:	e5831000 	str	r1, [r3]                                      
    next_node->previous      = new_first_node;                        
    new_first_node->next     = next_node;                             
    new_first_node->previous = previous_node;                         
    9bd8:	e881000c 	stm	r1, {r2, r3}                                  
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
    9bdc:	e5942038 	ldr	r2, [r4, #56]                                 
    9be0:	e5943040 	ldr	r3, [r4, #64]                                 
    9be4:	e1520003 	cmp	r2, r3                                        
    9be8:	0a000005 	beq	9c04 <_Thread_queue_Extract_priority_helper+0x8c>
      new_second_node->previous =                                     
                _Chain_Head( &new_first_thread->Wait.Block2n );       
      new_first_thread->Wait.Block2n.first = new_second_node;         
                                                                      
      new_first_thread->Wait.Block2n.last = last_node;                
      last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n );
    9bec:	e281203c 	add	r2, r1, #60	; 0x3c                            
    new_first_node->next     = next_node;                             
    new_first_node->previous = previous_node;                         
                                                                      
    if ( !_Chain_Has_only_one_node( &the_thread->Wait.Block2n ) ) {   
                                        /* > two threads on 2-n */    
      new_second_node->previous =                                     
    9bf0:	e2813038 	add	r3, r1, #56	; 0x38                            
    9bf4:	e5803004 	str	r3, [r0, #4]                                  
                _Chain_Head( &new_first_thread->Wait.Block2n );       
      new_first_thread->Wait.Block2n.first = new_second_node;         
    9bf8:	e5810038 	str	r0, [r1, #56]                                 
                                                                      
      new_first_thread->Wait.Block2n.last = last_node;                
    9bfc:	e5815040 	str	r5, [r1, #64]                                 
      last_node->next = _Chain_Tail( &new_first_thread->Wait.Block2n );
    9c00:	e5852000 	str	r2, [r5]                                      
                                                                      
  /*                                                                  
   *  If we are not supposed to touch timers or the thread's state, return.
   */                                                                 
                                                                      
  if ( requeuing ) {                                                  
    9c04:	e3560000 	cmp	r6, #0	; 0x0                                  
    9c08:	0a000001 	beq	9c14 <_Thread_queue_Extract_priority_helper+0x9c>
    _ISR_Enable( level );                                             
    9c0c:	e129f00c 	msr	CPSR_fc, ip                                   
    9c10:	e8bd8070 	pop	{r4, r5, r6, pc}                              
    return;                                                           
  }                                                                   
                                                                      
  if ( !_Watchdog_Is_active( &the_thread->Timer ) ) {                 
    9c14:	e5943050 	ldr	r3, [r4, #80]                                 
    9c18:	e3530002 	cmp	r3, #2	; 0x2                                  
    9c1c:	0a000001 	beq	9c28 <_Thread_queue_Extract_priority_helper+0xb0>
    _ISR_Enable( level );                                             
    9c20:	e129f00c 	msr	CPSR_fc, ip                                   
    9c24:	ea000004 	b	9c3c <_Thread_queue_Extract_priority_helper+0xc4>
    9c28:	e3a03003 	mov	r3, #3	; 0x3                                  <== NOT EXECUTED
    9c2c:	e5843050 	str	r3, [r4, #80]                                 <== NOT EXECUTED
  } else {                                                            
    _Watchdog_Deactivate( &the_thread->Timer );                       
    _ISR_Enable( level );                                             
    9c30:	e129f00c 	msr	CPSR_fc, ip                                   <== NOT EXECUTED
    (void) _Watchdog_Remove( &the_thread->Timer );                    
    9c34:	e2840048 	add	r0, r4, #72	; 0x48                            <== NOT EXECUTED
    9c38:	ebfff609 	bl	7464 <_Watchdog_Remove>                        <== NOT EXECUTED
    9c3c:	e59f100c 	ldr	r1, [pc, #12]	; 9c50 <_Thread_queue_Extract_priority_helper+0xd8>
    9c40:	e1a00004 	mov	r0, r4                                        
                                                                      
#if defined(RTEMS_MULTIPROCESSING)                                    
  if ( !_Objects_Is_local_id( the_thread->Object.id ) )               
    _Thread_MP_Free_proxy( the_thread );                              
#endif                                                                
}                                                                     
    9c44:	e8bd4070 	pop	{r4, r5, r6, lr}                              
    9c48:	eafff06e 	b	5e08 <_Thread_Clear_state>                      
                                                                      

00009c54 <_Thread_queue_Process_timeout>: void _Thread_queue_Process_timeout( Thread_Control *the_thread ) { Thread_queue_Control *the_thread_queue = the_thread->Wait.queue;
    9c54:	e5902044 	ldr	r2, [r0, #68]                                 
   *  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 &&
    9c58:	e5921030 	ldr	r1, [r2, #48]                                 
    9c5c:	e3510000 	cmp	r1, #0	; 0x0                                  
    9c60:	0a000009 	beq	9c8c <_Thread_queue_Process_timeout+0x38>     
    9c64:	e59f3034 	ldr	r3, [pc, #52]	; 9ca0 <_Thread_queue_Process_timeout+0x4c><== NOT EXECUTED
    9c68:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    9c6c:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
    9c70:	1a000005 	bne	9c8c <_Thread_queue_Process_timeout+0x38>     <== NOT EXECUTED
       _Thread_Is_executing( the_thread ) ) {                         
    if ( the_thread_queue->sync_state != THREAD_BLOCKING_OPERATION_SATISFIED ) {
    9c74:	e3510003 	cmp	r1, #3	; 0x3                                  <== NOT EXECUTED
      the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
    9c78:	1592303c 	ldrne	r3, [r2, #60]                               <== NOT EXECUTED
    9c7c:	15803034 	strne	r3, [r0, #52]                               <== NOT EXECUTED
      the_thread_queue->sync_state = THREAD_BLOCKING_OPERATION_TIMEOUT;
    9c80:	13a03002 	movne	r3, #2	; 0x2                                <== NOT EXECUTED
    9c84:	15823030 	strne	r3, [r2, #48]                               <== NOT EXECUTED
    9c88:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
    }                                                                 
  } else {                                                            
    the_thread->Wait.return_code = the_thread->Wait.queue->timeout_status;
    9c8c:	e592303c 	ldr	r3, [r2, #60]                                 
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
    9c90:	e1a01000 	mov	r1, r0                                        
    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;
    9c94:	e5803034 	str	r3, [r0, #52]                                 
    _Thread_queue_Extract( the_thread->Wait.queue, the_thread );      
    9c98:	e5900044 	ldr	r0, [r0, #68]                                 
    9c9c:	eaffffaf 	b	9b60 <_Thread_queue_Extract>                    
                                                                      

00008d44 <_Timespec_Divide_by_integer>: /* * For math simplicity just convert the timespec to nanoseconds * in a 64-bit integer. */ t = time->tv_sec;
    8d44:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
  t *= TOD_NANOSECONDS_PER_SECOND;                                    
    8d48:	e59fc06c 	ldr	ip, [pc, #108]	; 8dbc <_Timespec_Divide_by_integer+0x78><== NOT EXECUTED
void _Timespec_Divide_by_integer(                                     
  const struct timespec *time,                                        
  uint32_t               iterations,                                  
  struct timespec       *result                                       
)                                                                     
{                                                                     
    8d4c:	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;                                                  
    8d50:	e1a04fc3 	asr	r4, r3, #31                                   <== NOT EXECUTED
  t *= TOD_NANOSECONDS_PER_SECOND;                                    
    8d54:	e086539c 	umull	r5, r6, ip, r3                              <== NOT EXECUTED
    8d58:	e026649c 	mla	r6, ip, r4, r6                                <== NOT EXECUTED
  t += time->tv_nsec;                                                 
    8d5c:	e5900004 	ldr	r0, [r0, #4]                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Divide to get nanoseconds per iteration                         
   */                                                                 
                                                                      
  t /= iterations;                                                    
    8d60:	e0957000 	adds	r7, r5, r0                                   <== NOT EXECUTED
    8d64:	e0a68fc0 	adc	r8, r6, r0, asr #31                           <== NOT EXECUTED
    8d68:	e1a03001 	mov	r3, r1                                        <== NOT EXECUTED
    8d6c:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
void _Timespec_Divide_by_integer(                                     
  const struct timespec *time,                                        
  uint32_t               iterations,                                  
  struct timespec       *result                                       
)                                                                     
{                                                                     
    8d70:	e1a06002 	mov	r6, r2                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Divide to get nanoseconds per iteration                         
   */                                                                 
                                                                      
  t /= iterations;                                                    
    8d74:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    8d78:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
    8d7c:	e1a01008 	mov	r1, r8                                        <== NOT EXECUTED
    8d80:	e1a03004 	mov	r3, r4                                        <== NOT EXECUTED
    8d84:	eb0032f6 	bl	15964 <__udivdi3>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
    8d88:	e59f202c 	ldr	r2, [pc, #44]	; 8dbc <_Timespec_Divide_by_integer+0x78><== NOT EXECUTED
    8d8c:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Divide to get nanoseconds per iteration                         
   */                                                                 
                                                                      
  t /= iterations;                                                    
    8d90:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    8d94:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
    8d98:	eb0032f1 	bl	15964 <__udivdi3>                              <== NOT EXECUTED
  result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND;                   
    8d9c:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Put it back in the timespec result                              
   */                                                                 
                                                                      
  result->tv_sec  = t / TOD_NANOSECONDS_PER_SECOND;                   
    8da0:	e5860000 	str	r0, [r6]                                      <== NOT EXECUTED
  result->tv_nsec = t % TOD_NANOSECONDS_PER_SECOND;                   
    8da4:	e59f2010 	ldr	r2, [pc, #16]	; 8dbc <_Timespec_Divide_by_integer+0x78><== NOT EXECUTED
    8da8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    8dac:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    8db0:	eb003433 	bl	15e84 <__umoddi3>                              <== NOT EXECUTED
    8db4:	e5860004 	str	r0, [r6, #4]                                  <== NOT EXECUTED
}                                                                     
    8db8:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

000093c8 <_User_extensions_Remove_set>: */ void _User_extensions_Remove_set ( User_extensions_Control *the_extension ) {
    93c8:	e92d4010 	push	{r4, lr}                                     
    93cc:	e1a04000 	mov	r4, r0                                        
  _Chain_Extract( &the_extension->Node );                             
    93d0:	eb000925 	bl	b86c <_Chain_Extract>                          
                                                                      
  /*                                                                  
   * If a switch handler is present, remove it.                       
   */                                                                 
                                                                      
  if ( the_extension->Callouts.thread_switch != NULL )                
    93d4:	e5943024 	ldr	r3, [r4, #36]                                 
    93d8:	e3530000 	cmp	r3, #0	; 0x0                                  
    93dc:	08bd8010 	popeq	{r4, pc}                                    
    _Chain_Extract( &the_extension->Switch.Node );                    
    93e0:	e2840008 	add	r0, r4, #8	; 0x8                              <== NOT EXECUTED
}                                                                     
    93e4:	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 );                    
    93e8:	ea00091f 	b	b86c <_Chain_Extract>                           <== NOT EXECUTED
                                                                      

00007224 <_User_extensions_Thread_delete>: ) { Chain_Node *the_node; User_extensions_Control *the_extension; for ( the_node = _User_extensions_List.last ;
    7224:	e59f303c 	ldr	r3, [pc, #60]	; 7268 <_User_extensions_Thread_delete+0x44>
 */                                                                   
                                                                      
void _User_extensions_Thread_delete (                                 
  Thread_Control *the_thread                                          
)                                                                     
{                                                                     
    7228:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
    722c:	e1a05000 	mov	r5, r0                                        
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
    7230:	e1a07003 	mov	r7, r3                                        
)                                                                     
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
    7234:	e5934008 	ldr	r4, [r3, #8]                                  
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_delete != NULL )              
      (*the_extension->Callouts.thread_delete)(                       
    7238:	e59f602c 	ldr	r6, [pc, #44]	; 726c <_User_extensions_Thread_delete+0x48>
    723c:	ea000005 	b	7258 <_User_extensions_Thread_delete+0x34>      
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_delete != NULL )              
    7240:	e5943020 	ldr	r3, [r4, #32]                                 
    7244:	e3530000 	cmp	r3, #0	; 0x0                                  
      (*the_extension->Callouts.thread_delete)(                       
    7248:	15960000 	ldrne	r0, [r6]                                    
    724c:	11a0e00f 	movne	lr, pc                                      
    7250:	112fff13 	bxne	r3                                           
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
        the_node = the_node->previous ) {                             
    7254:	e5944004 	ldr	r4, [r4, #4]                                  
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
    7258:	e1540007 	cmp	r4, r7                                        
        the_node = the_node->previous ) {                             
                                                                      
    the_extension = (User_extensions_Control *) the_node;             
                                                                      
    if ( the_extension->Callouts.thread_delete != NULL )              
      (*the_extension->Callouts.thread_delete)(                       
    725c:	e1a01005 	mov	r1, r5                                        
{                                                                     
  Chain_Node              *the_node;                                  
  User_extensions_Control *the_extension;                             
                                                                      
  for ( the_node = _User_extensions_List.last ;                       
        !_Chain_Is_head( &_User_extensions_List, the_node ) ;         
    7260:	1afffff6 	bne	7240 <_User_extensions_Thread_delete+0x1c>    
      (*the_extension->Callouts.thread_delete)(                       
        _Thread_Executing,                                            
        the_thread                                                    
      );                                                              
  }                                                                   
}                                                                     
    7264:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

000072f4 <_Watchdog_Insert>: Watchdog_Control *after; uint32_t insert_isr_nest_level; Watchdog_Interval delta_interval; insert_isr_nest_level = _ISR_Nest_level;
    72f4:	e59f30fc 	ldr	r3, [pc, #252]	; 73f8 <_Watchdog_Insert+0x104>
                                                                      
void _Watchdog_Insert(                                                
  Chain_Control         *header,                                      
  Watchdog_Control      *the_watchdog                                 
)                                                                     
{                                                                     
    72f8:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
    72fc:	e1a0c001 	mov	ip, r1                                        
    7300:	e1a07000 	mov	r7, r0                                        
  Watchdog_Control  *after;                                           
  uint32_t           insert_isr_nest_level;                           
  Watchdog_Interval  delta_interval;                                  
                                                                      
                                                                      
  insert_isr_nest_level   = _ISR_Nest_level;                          
    7304:	e5934000 	ldr	r4, [r3]                                      
                                                                      
  _ISR_Disable( level );                                              
    7308:	e10f5000 	mrs	r5, CPSR                                      
    730c:	e38530c0 	orr	r3, r5, #192	; 0xc0                           
    7310:	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_watchdog->state != WATCHDOG_INACTIVE ) {                   
    7314:	e5913008 	ldr	r3, [r1, #8]                                  
    7318:	e3530000 	cmp	r3, #0	; 0x0                                  
    731c:	0a000001 	beq	7328 <_Watchdog_Insert+0x34>                  
    _ISR_Enable( level );                                             
    7320:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
    7324:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  _Watchdog_Sync_count++;                                             
    7328:	e59f30cc 	ldr	r3, [pc, #204]	; 73fc <_Watchdog_Insert+0x108>
    732c:	e5932000 	ldr	r2, [r3]                                      
    7330:	e2822001 	add	r2, r2, #1	; 0x1                              
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
    7334:	e59f60c4 	ldr	r6, [pc, #196]	; 7400 <_Watchdog_Insert+0x10c>
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  _Watchdog_Sync_count++;                                             
    7338:	e5832000 	str	r2, [r3]                                      
  if ( the_watchdog->state != WATCHDOG_INACTIVE ) {                   
    _ISR_Enable( level );                                             
    return;                                                           
  }                                                                   
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
    733c:	e3a03001 	mov	r3, #1	; 0x1                                  
    7340:	e5813008 	str	r3, [r1, #8]                                  
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
    7344:	e1a08006 	mov	r8, r6                                        
                                                                      
  the_watchdog->state = WATCHDOG_BEING_INSERTED;                      
  _Watchdog_Sync_count++;                                             
                                                                      
restart:                                                              
  delta_interval = the_watchdog->initial;                             
    7348:	e59c000c 	ldr	r0, [ip, #12]                                 
   * cache *header!!                                                  
   *                                                                  
   *  Till Straumann, 7/2003 (gcc-3.2.2 -O4 on powerpc)               
   *                                                                  
   */                                                                 
  for ( after = (Watchdog_Control *) ((volatile Chain_Control *)header)->first ;
    734c:	e5971000 	ldr	r1, [r7]                                      
        ;                                                             
        after = _Watchdog_Next( after ) ) {                           
                                                                      
     if ( delta_interval == 0 || !_Watchdog_Next( after ) )           
    7350:	e3500000 	cmp	r0, #0	; 0x0                                  
    7354:	0a000014 	beq	73ac <_Watchdog_Insert+0xb8>                  
    7358:	e5913000 	ldr	r3, [r1]                                      
    735c:	e3530000 	cmp	r3, #0	; 0x0                                  
    7360:	0a000011 	beq	73ac <_Watchdog_Insert+0xb8>                  
       break;                                                         
                                                                      
     if ( delta_interval < after->delta_interval ) {                  
    7364:	e5912010 	ldr	r2, [r1, #16]                                 
    7368:	e1500002 	cmp	r0, r2                                        
       after->delta_interval -= delta_interval;                       
    736c:	30603002 	rsbcc	r3, r0, r2                                  
    7370:	35813010 	strcc	r3, [r1, #16]                               
    7374:	3a00000c 	bcc	73ac <_Watchdog_Insert+0xb8>                  
      *  used around this flash point allowed interrupts to execute   
      *  which violated the design assumptions.  The critical section 
      *  mechanism used here WAS redesigned to address this.          
      */                                                              
                                                                      
     _ISR_Flash( level );                                             
    7378:	e10f3000 	mrs	r3, CPSR                                      
    737c:	e129f005 	msr	CPSR_fc, r5                                   
    7380:	e129f003 	msr	CPSR_fc, r3                                   
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
    7384:	e59c3008 	ldr	r3, [ip, #8]                                  
    7388:	e3530001 	cmp	r3, #1	; 0x1                                  
     if ( delta_interval < after->delta_interval ) {                  
       after->delta_interval -= delta_interval;                       
       break;                                                         
     }                                                                
                                                                      
     delta_interval -= after->delta_interval;                         
    738c:	e0620000 	rsb	r0, r2, r0                                    
      *  mechanism used here WAS redesigned to address this.          
      */                                                              
                                                                      
     _ISR_Flash( level );                                             
                                                                      
     if ( the_watchdog->state != WATCHDOG_BEING_INSERTED ) {          
    7390:	1a000010 	bne	73d8 <_Watchdog_Insert+0xe4>                  
       goto exit_insert;                                              
     }                                                                
                                                                      
     if ( _Watchdog_Sync_level > insert_isr_nest_level ) {            
    7394:	e5963000 	ldr	r3, [r6]                                      
    7398:	e1530004 	cmp	r3, r4                                        
       _Watchdog_Sync_level = insert_isr_nest_level;                  
    739c:	85884000 	strhi	r4, [r8]                                    
    73a0:	8affffe8 	bhi	7348 <_Watchdog_Insert+0x54>                  
RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next(                
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  return ( (Watchdog_Control *) the_watchdog->Node.next );            
    73a4:	e5911000 	ldr	r1, [r1]                                      
    73a8:	eaffffe8 	b	7350 <_Watchdog_Insert+0x5c>                    
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
    73ac:	e59f3050 	ldr	r3, [pc, #80]	; 7404 <_Watchdog_Insert+0x110> 
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
                                                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
    73b0:	e5912004 	ldr	r2, [r1, #4]                                  
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
    73b4:	e5933000 	ldr	r3, [r3]                                      
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
  before_node           = after_node->next;                           
    73b8:	e5921000 	ldr	r1, [r2]                                      
    73bc:	e58c3014 	str	r3, [ip, #20]                                 
RTEMS_INLINE_ROUTINE void _Watchdog_Activate(                         
  Watchdog_Control *the_watchdog                                      
)                                                                     
{                                                                     
                                                                      
  the_watchdog->state = WATCHDOG_ACTIVE;                              
    73c0:	e3a03002 	mov	r3, #2	; 0x2                                  
  after_node->next      = the_node;                                   
    73c4:	e582c000 	str	ip, [r2]                                      
  Chain_Node *the_node                                                
)                                                                     
{                                                                     
  Chain_Node *before_node;                                            
                                                                      
  the_node->previous    = after_node;                                 
    73c8:	e98c000c 	stmib	ip, {r2, r3}                                
     }                                                                
  }                                                                   
                                                                      
  _Watchdog_Activate( the_watchdog );                                 
                                                                      
  the_watchdog->delta_interval = delta_interval;                      
    73cc:	e58c0010 	str	r0, [ip, #16]                                 
  before_node           = after_node->next;                           
  after_node->next      = the_node;                                   
  the_node->next        = before_node;                                
  before_node->previous = the_node;                                   
    73d0:	e581c004 	str	ip, [r1, #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;                                
    73d4:	e58c1000 	str	r1, [ip]                                      
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
    73d8:	e59f3020 	ldr	r3, [pc, #32]	; 7400 <_Watchdog_Insert+0x10c> 
  _Watchdog_Sync_count--;                                             
    73dc:	e59f2018 	ldr	r2, [pc, #24]	; 73fc <_Watchdog_Insert+0x108> 
  _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node );
                                                                      
  the_watchdog->start_time = _Watchdog_Ticks_since_boot;              
                                                                      
exit_insert:                                                          
  _Watchdog_Sync_level = insert_isr_nest_level;                       
    73e0:	e5834000 	str	r4, [r3]                                      
  _Watchdog_Sync_count--;                                             
    73e4:	e5923000 	ldr	r3, [r2]                                      
    73e8:	e2433001 	sub	r3, r3, #1	; 0x1                              
    73ec:	e5823000 	str	r3, [r2]                                      
  _ISR_Enable( level );                                               
    73f0:	e129f005 	msr	CPSR_fc, r5                                   
    73f4:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

000075bc <_Workspace_Allocate_or_fatal_error>: * _Workspace_Allocate_or_fatal_error */ void *_Workspace_Allocate_or_fatal_error( size_t size ) {
    75bc:	e1a01000 	mov	r1, r0                                        
    75c0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
 */                                                                   
void *_Workspace_Allocate(                                            
  size_t   size                                                       
)                                                                     
{                                                                     
   return _Heap_Allocate( &_Workspace_Area, size );                   
    75c4:	e59f0014 	ldr	r0, [pc, #20]	; 75e0 <_Workspace_Allocate_or_fatal_error+0x24>
    75c8:	eb000849 	bl	96f4 <_Heap_Allocate>                          
{                                                                     
  void        *memory;                                                
                                                                      
  memory = _Workspace_Allocate( size );                               
                                                                      
  if ( memory == NULL )                                               
    75cc:	e3500000 	cmp	r0, #0	; 0x0                                  
    75d0:	149df004 	popne	{pc}		; (ldrne pc, [sp], #4)                
    _Internal_error_Occurred(                                         
    75d4:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    75d8:	e3a02004 	mov	r2, #4	; 0x4                                  <== NOT EXECUTED
    75dc:	ebfff7a1 	bl	5468 <_Internal_error_Occurred>                <== NOT EXECUTED
                                                                      

0000759c <_Workspace_Free>: * _Workspace_Free */ bool _Workspace_Free( void *block ) {
    759c:	e1a01000 	mov	r1, r0                                        
   return _Heap_Free( &_Workspace_Area, block );                      
    75a0:	e59f0000 	ldr	r0, [pc, #0]	; 75a8 <_Workspace_Free+0xc>     
    75a4:	ea000876 	b	9784 <_Heap_Free>                               
                                                                      

000075e4 <_Workspace_Handler_initialization>: */ void _Workspace_Handler_initialization( void *starting_address, size_t size ) {
    75e4:	e92d4030 	push	{r4, r5, lr}                                 
  uint32_t    memory_available;                                       
                                                                      
  if ( !starting_address || !_Addresses_Is_aligned( starting_address ) )
    75e8:	e2504000 	subs	r4, r0, #0	; 0x0                             
 */                                                                   
void _Workspace_Handler_initialization(                               
  void       *starting_address,                                       
  size_t      size                                                    
)                                                                     
{                                                                     
    75ec:	e1a05001 	mov	r5, r1                                        
  uint32_t    memory_available;                                       
                                                                      
  if ( !starting_address || !_Addresses_Is_aligned( starting_address ) )
    75f0:	0a000001 	beq	75fc <_Workspace_Handler_initialization+0x18> 
    75f4:	e2141003 	ands	r1, r4, #3	; 0x3                             
    75f8:	0a000003 	beq	760c <_Workspace_Handler_initialization+0x28> 
    _Internal_error_Occurred(                                         
    75fc:	e3a00000 	mov	r0, #0	; 0x0                                  
    7600:	e3a01001 	mov	r1, #1	; 0x1                                  
    7604:	e3a02002 	mov	r2, #2	; 0x2                                  
    7608:	ea00000e 	b	7648 <_Workspace_Handler_initialization+0x64>   
      INTERNAL_ERROR_CORE,                                            
      TRUE,                                                           
      INTERNAL_ERROR_INVALID_WORKSPACE_ADDRESS                        
    );                                                                
                                                                      
  if ( _Configuration_Table->do_zero_of_workspace )                   
    760c:	e59f3038 	ldr	r3, [pc, #56]	; 764c <_Workspace_Handler_initialization+0x68>
    7610:	e5933000 	ldr	r3, [r3]                                      
    7614:	e5d33028 	ldrb	r3, [r3, #40]                                
    7618:	e3530000 	cmp	r3, #0	; 0x0                                  
   memset( starting_address, 0, size );                               
    761c:	11a02005 	movne	r2, r5                                      
    7620:	1b000e84 	blne	b038 <memset>                                
                                                                      
  memory_available = _Heap_Initialize(                                
    7624:	e1a01004 	mov	r1, r4                                        
    7628:	e1a02005 	mov	r2, r5                                        
    762c:	e59f001c 	ldr	r0, [pc, #28]	; 7650 <_Workspace_Handler_initialization+0x6c>
    7630:	e3a03004 	mov	r3, #4	; 0x4                                  
    7634:	ebfff706 	bl	5254 <_Heap_Initialize>                        
    starting_address,                                                 
    size,                                                             
    CPU_HEAP_ALIGNMENT                                                
  );                                                                  
                                                                      
  if ( memory_available == 0 )                                        
    7638:	e3500000 	cmp	r0, #0	; 0x0                                  
    763c:	18bd8030 	popne	{r4, r5, pc}                                
    _Internal_error_Occurred(                                         
    7640:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    7644:	e3a02003 	mov	r2, #3	; 0x3                                  <== NOT EXECUTED
    7648:	ebfff786 	bl	5468 <_Internal_error_Occurred>                
                                                                      

000084c4 <__assert>: void __assert( const char *file, int line, const char *failedexpr ) {
    84c4:	e1a03002 	mov	r3, r2                                        <== NOT EXECUTED
  __assert_func (file, line, NULL, failedexpr);                       
    84c8:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    84cc:	eaffffe9 	b	8478 <__assert_func>                            <== NOT EXECUTED
                                                                      

00008478 <__assert_func>: const char *file, int line, const char *func, const char *failedexpr ) {
    8478:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
  printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n",       
    847c:	e252c000 	subs	ip, r2, #0	; 0x0                             <== NOT EXECUTED
    8480:	059fc030 	ldreq	ip, [pc, #48]	; 84b8 <__assert_func+0x40>   <== NOT EXECUTED
  const char *file,                                                   
  int         line,                                                   
  const char *func,                                                   
  const char *failedexpr                                              
)                                                                     
{                                                                     
    8484:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
  printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n",       
    8488:	159fe02c 	ldrne	lr, [pc, #44]	; 84bc <__assert_func+0x44>   <== NOT EXECUTED
  const char *file,                                                   
  int         line,                                                   
  const char *func,                                                   
  const char *failedexpr                                              
)                                                                     
{                                                                     
    848c:	e24dd008 	sub	sp, sp, #8	; 0x8                              <== NOT EXECUTED
    8490:	e1a01003 	mov	r1, r3                                        <== NOT EXECUTED
  printk("assertion \"%s\" failed: file \"%s\", line %d%s%s\n",       
    8494:	01a0e00c 	moveq	lr, ip                                      <== NOT EXECUTED
    8498:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
    849c:	e1a03004 	mov	r3, r4                                        <== NOT EXECUTED
    84a0:	e59f0018 	ldr	r0, [pc, #24]	; 84c0 <__assert_func+0x48>     <== NOT EXECUTED
    84a4:	e58de000 	str	lr, [sp]                                      <== NOT EXECUTED
    84a8:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
    84ac:	ebffe698 	bl	1f14 <printk>                                  <== NOT EXECUTED
    file,                                                             
    line,                                                             
    (func) ? ", function: " : "",                                     
    (func) ? func : ""                                                
  );                                                                  
  rtems_fatal_error_occurred(0);                                      
    84b0:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    84b4:	ebfff159 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
                                                                      

000163a4 <__kill>: #endif int __kill( pid_t pid, int sig ) { return 0; }
   163a4:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
   163a8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00012ea4 <_exit>: /* * If the toolset uses init/fini sections, then we need to * run the global destructors now. */ #if defined(__USE_INIT_FINI__) _fini();
   12ea4:	e1a04000 	mov	r4, r0                                        
   12ea8:	eb000264 	bl	13840 <___DTOR_END__>                          
   *  We need to do the exit processing on the global reentrancy structure.
   *  This has already been done on the per task reentrancy structure 
   *  associated with this task.                                      
   */                                                                 
                                                                      
  libc_wrapup();                                                      
   12eac:	ebffffe1 	bl	12e38 <libc_wrapup>                            
  rtems_shutdown_executive(status);                                   
   12eb0:	e1a00004 	mov	r0, r4                                        
   12eb4:	eb00003a 	bl	12fa4 <rtems_shutdown_executive>               
   12eb8:	eafffffe 	b	12eb8 <_exit+0x14>                              <== NOT EXECUTED
                                                                      

00016268 <_getpid_r>: pid_t _getpid_r( struct _reent *ptr ) { return getpid(); }
   16268:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
   1626c:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

000088a8 <_gettimeofday>: int _gettimeofday( struct timeval *tp, struct timezone *tzp ) { return gettimeofday( tp, tzp );
    88a8:	eaffffe6 	b	8848 <gettimeofday>                             <== NOT EXECUTED
                                                                      

0001639c <_kill_r>: #include <reent.h> int _kill_r( struct _reent *ptr, pid_t pid, int sig ) { return 0; }
   1639c:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
   163a0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00012e20 <_lseek_r>: int fd, off_t offset, int whence ) { return lseek( fd, offset, whence );
   12e20:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
   12e24:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
   12e28:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
   12e2c:	eaffffc6 	b	12d4c <lseek>                                   <== NOT EXECUTED
                                                                      

00001c28 <_open_r>: const char *buf, int flags, int mode ) { return open( buf, flags, mode );
    1c28:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
    1c2c:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
    1c30:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
    1c34:	eaffff6c 	b	19ec <open>                                     <== NOT EXECUTED
                                                                      

00012f78 <_read_r>: int fd, void *buf, size_t nbytes ) { return read( fd, buf, nbytes );
   12f78:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
   12f7c:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
   12f80:	e1a02003 	mov	r2, r3                                        <== NOT EXECUTED
   12f84:	eaffffcc 	b	12ebc <read>                                    <== NOT EXECUTED
                                                                      

00012f88 <_realloc_r>: struct _reent *ignored, void *ptr, size_t size ) { return realloc( ptr, size );
   12f88:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
   12f8c:	e1a01002 	mov	r1, r2                                        <== NOT EXECUTED
   12f90:	ea000011 	b	12fdc <realloc>                                 <== NOT EXECUTED
                                                                      

00008628 <close>: ) { rtems_libio_t *iop; rtems_status_code rc; rtems_libio_check_fd(fd);
    8628:	e59f3090 	ldr	r3, [pc, #144]	; 86c0 <close+0x98>            
    862c:	e5933000 	ldr	r3, [r3]                                      
    8630:	e1500003 	cmp	r0, r3                                        
#include <rtems/libio_.h>                                             
                                                                      
int close(                                                            
  int  fd                                                             
)                                                                     
{                                                                     
    8634:	e92d4030 	push	{r4, r5, lr}                                 
  rtems_libio_t      *iop;                                            
  rtems_status_code   rc;                                             
                                                                      
  rtems_libio_check_fd(fd);                                           
    8638:	2a000006 	bcs	8658 <close+0x30>                             
  iop = rtems_libio_iop(fd);                                          
    863c:	e59f3080 	ldr	r3, [pc, #128]	; 86c4 <close+0x9c>            
    8640:	e5932000 	ldr	r2, [r3]                                      
    8644:	e3a03034 	mov	r3, #52	; 0x34                                
    8648:	e0242093 	mla	r4, r3, r0, r2                                
  rtems_libio_check_is_open(iop);                                     
    864c:	e594300c 	ldr	r3, [r4, #12]                                 
    8650:	e3130c01 	tst	r3, #256	; 0x100                              
    8654:	1a000004 	bne	866c <close+0x44>                             
    8658:	eb00086d 	bl	a814 <__errno>                                 <== NOT EXECUTED
    865c:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
    8660:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8664:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    8668:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      
  rc = RTEMS_SUCCESSFUL;                                              
  if ( iop->handlers->close_h )                                       
    866c:	e5943030 	ldr	r3, [r4, #48]                                 
    8670:	e5933004 	ldr	r3, [r3, #4]                                  
    8674:	e3530000 	cmp	r3, #0	; 0x0                                  
    8678:	01a05003 	moveq	r5, r3                                      
    867c:	0a000003 	beq	8690 <close+0x68>                             
    rc = (*iop->handlers->close_h)( iop );                            
    8680:	e1a00004 	mov	r0, r4                                        
    8684:	e1a0e00f 	mov	lr, pc                                        
    8688:	e12fff13 	bx	r3                                             
    868c:	e1a05000 	mov	r5, r0                                        
                                                                      
  rtems_filesystem_freenode( &iop->pathinfo );                        
    8690:	e5943018 	ldr	r3, [r4, #24]                                 
    8694:	e3530000 	cmp	r3, #0	; 0x0                                  
    8698:	0a000004 	beq	86b0 <close+0x88>                             
    869c:	e593301c 	ldr	r3, [r3, #28]                                 
    86a0:	e3530000 	cmp	r3, #0	; 0x0                                  
    86a4:	12840010 	addne	r0, r4, #16	; 0x10                          
    86a8:	11a0e00f 	movne	lr, pc                                      
    86ac:	112fff13 	bxne	r3                                           
  rtems_libio_free( iop );                                            
    86b0:	e1a00004 	mov	r0, r4                                        
    86b4:	eb0000d1 	bl	8a00 <rtems_libio_free>                        
                                                                      
  return rc;                                                          
    86b8:	e1a00005 	mov	r0, r5                                        
}                                                                     
    86bc:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00009ee4 <device_ftruncate>: rtems_libio_t *iop, off_t length ) { return 0; }
    9ee4:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    9ee8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00009f18 <device_ioctl>: int device_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) {
    9f18:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
    9f1c:	e24dd010 	sub	sp, sp, #16	; 0x10                            <== NOT EXECUTED
  rtems_status_code         status;                                   
  IMFS_jnode_t             *the_jnode;                                
                                                                      
  args.iop     = iop;                                                 
  args.command = command;                                             
  args.buffer  = buffer;                                              
    9f20:	e88d0007 	stm	sp, {r0, r1, r2}                              <== NOT EXECUTED
                                                                      
  the_jnode = iop->file_info;                                         
    9f24:	e590302c 	ldr	r3, [r0, #44]                                 <== NOT EXECUTED
                                                                      
  status = rtems_io_control(                                          
    9f28:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    9f2c:	e2830050 	add	r0, r3, #80	; 0x50                            <== NOT EXECUTED
    9f30:	e8900003 	ldm	r0, {r0, r1}                                  <== NOT EXECUTED
    9f34:	eb000161 	bl	a4c0 <rtems_io_control>                        <== NOT EXECUTED
    the_jnode->info.device.major,                                     
    the_jnode->info.device.minor,                                     
    (void *) &args                                                    
  );                                                                  
                                                                      
  if ( status )                                                       
    9f38:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    return rtems_deviceio_errno(status);                              
                                                                      
  return args.ioctl_return;                                           
    9f3c:	059d000c 	ldreq	r0, [sp, #12]                               <== NOT EXECUTED
    the_jnode->info.device.minor,                                     
    (void *) &args                                                    
  );                                                                  
                                                                      
  if ( status )                                                       
    return rtems_deviceio_errno(status);                              
    9f40:	1bffffe9 	blne	9eec <rtems_deviceio_errno>                  <== NOT EXECUTED
                                                                      
  return args.ioctl_return;                                           
}                                                                     
    9f44:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    9f48:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

00009edc <device_lseek>: off_t offset, int whence ) { return offset; }
    9edc:	e1a00001 	mov	r0, r1                                        <== NOT EXECUTED
    9ee0:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00009fa0 <device_read>: ssize_t device_read( rtems_libio_t *iop, void *buffer, size_t count ) {
    9fa0:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  IMFS_jnode_t           *the_jnode;                                  
                                                                      
  the_jnode = iop->file_info;                                         
                                                                      
  args.iop         = iop;                                             
  args.offset      = iop->offset;                                     
    9fa4:	e5903008 	ldr	r3, [r0, #8]                                  <== NOT EXECUTED
ssize_t device_read(                                                  
  rtems_libio_t *iop,                                                 
  void          *buffer,                                              
  size_t         count                                                
)                                                                     
{                                                                     
    9fa8:	e24dd018 	sub	sp, sp, #24	; 0x18                            <== NOT EXECUTED
                                                                      
  args.iop         = iop;                                             
  args.offset      = iop->offset;                                     
  args.buffer      = buffer;                                          
  args.count       = count;                                           
  args.flags       = iop->flags;                                      
    9fac:	e590c00c 	ldr	ip, [r0, #12]                                 <== NOT EXECUTED
  IMFS_jnode_t           *the_jnode;                                  
                                                                      
  the_jnode = iop->file_info;                                         
                                                                      
  args.iop         = iop;                                             
  args.offset      = iop->offset;                                     
    9fb0:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
  args.buffer      = buffer;                                          
  args.count       = count;                                           
  args.flags       = iop->flags;                                      
  args.bytes_moved = 0;                                               
    9fb4:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
  the_jnode = iop->file_info;                                         
                                                                      
  args.iop         = iop;                                             
  args.offset      = iop->offset;                                     
  args.buffer      = buffer;                                          
  args.count       = count;                                           
    9fb8:	e58d200c 	str	r2, [sp, #12]                                 <== NOT EXECUTED
  args.flags       = iop->flags;                                      
  args.bytes_moved = 0;                                               
    9fbc:	e58d3014 	str	r3, [sp, #20]                                 <== NOT EXECUTED
                                                                      
  the_jnode = iop->file_info;                                         
                                                                      
  args.iop         = iop;                                             
  args.offset      = iop->offset;                                     
  args.buffer      = buffer;                                          
    9fc0:	e58d1008 	str	r1, [sp, #8]                                  <== NOT EXECUTED
  args.count       = count;                                           
  args.flags       = iop->flags;                                      
    9fc4:	e58dc010 	str	ip, [sp, #16]                                 <== NOT EXECUTED
  rtems_status_code       status;                                     
  IMFS_jnode_t           *the_jnode;                                  
                                                                      
  the_jnode = iop->file_info;                                         
                                                                      
  args.iop         = iop;                                             
    9fc8:	e58d0000 	str	r0, [sp]                                      <== NOT EXECUTED
{                                                                     
  rtems_libio_rw_args_t   args;                                       
  rtems_status_code       status;                                     
  IMFS_jnode_t           *the_jnode;                                  
                                                                      
  the_jnode = iop->file_info;                                         
    9fcc:	e590302c 	ldr	r3, [r0, #44]                                 <== NOT EXECUTED
  args.buffer      = buffer;                                          
  args.count       = count;                                           
  args.flags       = iop->flags;                                      
  args.bytes_moved = 0;                                               
                                                                      
  status = rtems_io_read(                                             
    9fd0:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    9fd4:	e2830050 	add	r0, r3, #80	; 0x50                            <== NOT EXECUTED
    9fd8:	e8900003 	ldm	r0, {r0, r1}                                  <== NOT EXECUTED
    9fdc:	eb00015f 	bl	a560 <rtems_io_read>                           <== NOT EXECUTED
    the_jnode->info.device.major,                                     
    the_jnode->info.device.minor,                                     
    (void *) &args                                                    
  );                                                                  
                                                                      
  if ( status )                                                       
    9fe0:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    return rtems_deviceio_errno(status);                              
                                                                      
  return (ssize_t) args.bytes_moved;                                  
    9fe4:	059d0014 	ldreq	r0, [sp, #20]                               <== NOT EXECUTED
    the_jnode->info.device.minor,                                     
    (void *) &args                                                    
  );                                                                  
                                                                      
  if ( status )                                                       
    return rtems_deviceio_errno(status);                              
    9fe8:	1bffffbf 	blne	9eec <rtems_deviceio_errno>                  <== NOT EXECUTED
                                                                      
  return (ssize_t) args.bytes_moved;                                  
}                                                                     
    9fec:	e28dd018 	add	sp, sp, #24	; 0x18                            <== NOT EXECUTED
    9ff0:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

00002c38 <drainOutput>: drainOutput (struct rtems_termios_tty *tty) { rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {
    2c38:	e59030b4 	ldr	r3, [r0, #180]                                
    2c3c:	e3530000 	cmp	r3, #0	; 0x0                                  
/*                                                                    
 * Drain output queue                                                 
 */                                                                   
static void                                                           
drainOutput (struct rtems_termios_tty *tty)                           
{                                                                     
    2c40:	e92d4030 	push	{r4, r5, lr}                                 
    2c44:	e1a04000 	mov	r4, r0                                        
	rtems_interrupt_level level;                                         
	rtems_status_code sc;                                                
                                                                      
	if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {            
    2c48:	08bd8030 	popeq	{r4, r5, pc}                                
		rtems_interrupt_disable (level);                                    
    2c4c:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
    2c50:	e38130c0 	orr	r3, r1, #192	; 0xc0                           <== NOT EXECUTED
    2c54:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
		while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) {                
			tty->rawOutBufState = rob_wait;                                    
    2c58:	e3a05002 	mov	r5, #2	; 0x2                                  <== NOT EXECUTED
    2c5c:	ea00000a 	b	2c8c <drainOutput+0x54>                         <== NOT EXECUTED
    2c60:	e5845094 	str	r5, [r4, #148]                                <== NOT EXECUTED
			rtems_interrupt_enable (level);                                    
    2c64:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
			sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore,             
    2c68:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    2c6c:	e594008c 	ldr	r0, [r4, #140]                                <== NOT EXECUTED
    2c70:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
    2c74:	eb0005b1 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
							RTEMS_WAIT,                                                    
							RTEMS_NO_TIMEOUT);                                             
			if (sc != RTEMS_SUCCESSFUL)                                        
    2c78:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
    2c7c:	1b000767 	blne	4a20 <rtems_fatal_error_occurred>            <== NOT EXECUTED
			rtems_interrupt_disable (level);                                   
    2c80:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
    2c84:	e38130c0 	orr	r3, r1, #192	; 0xc0                           <== NOT EXECUTED
    2c88:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
	rtems_interrupt_level level;                                         
	rtems_status_code sc;                                                
                                                                      
	if (tty->device.outputUsesInterrupts != TERMIOS_POLLED) {            
		rtems_interrupt_disable (level);                                    
		while (tty->rawOutBuf.Tail != tty->rawOutBuf.Head) {                
    2c8c:	e5942084 	ldr	r2, [r4, #132]                                <== NOT EXECUTED
    2c90:	e5943080 	ldr	r3, [r4, #128]                                <== NOT EXECUTED
    2c94:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2c98:	1afffff0 	bne	2c60 <drainOutput+0x28>                       <== NOT EXECUTED
							RTEMS_NO_TIMEOUT);                                             
			if (sc != RTEMS_SUCCESSFUL)                                        
				rtems_fatal_error_occurred (sc);                                  
			rtems_interrupt_disable (level);                                   
		}                                                                   
		rtems_interrupt_enable (level);                                     
    2c9c:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    2ca0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

0000273c <echo>: /* * Echo a typed character */ static void echo (unsigned char c, struct rtems_termios_tty *tty) {
    273c:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
	if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) {
    2740:	e591303c 	ldr	r3, [r1, #60]                                 <== NOT EXECUTED
    2744:	e3130c02 	tst	r3, #512	; 0x200                              <== NOT EXECUTED
/*                                                                    
 * Echo a typed character                                             
 */                                                                   
static void                                                           
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
    2748:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    274c:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
    2750:	e20000ff 	and	r0, r0, #255	; 0xff                           <== NOT EXECUTED
	if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) {
    2754:	0a000014 	beq	27ac <echo+0x70>                              <== NOT EXECUTED
    2758:	e59f305c 	ldr	r3, [pc, #92]	; 27bc <echo+0x80>              <== NOT EXECUTED
    275c:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    2760:	e7d32000 	ldrb	r2, [r3, r0]                                 <== NOT EXECUTED
    2764:	e2503009 	subs	r3, r0, #9	; 0x9                             <== NOT EXECUTED
    2768:	13a03001 	movne	r3, #1	; 0x1                                <== NOT EXECUTED
    276c:	e01332a2 	ands	r3, r3, r2, lsr #5                           <== NOT EXECUTED
    2770:	0a00000d 	beq	27ac <echo+0x70>                              <== NOT EXECUTED
    2774:	e350000a 	cmp	r0, #10	; 0xa                                 <== NOT EXECUTED
    2778:	0a00000b 	beq	27ac <echo+0x70>                              <== NOT EXECUTED
		char echobuf[2];                                                    
                                                                      
		echobuf[0] = '^';                                                   
		echobuf[1] = c ^ 0x40;                                              
    277c:	e220c040 	eor	ip, r0, #64	; 0x40                            <== NOT EXECUTED
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
	if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) {
		char echobuf[2];                                                    
                                                                      
		echobuf[0] = '^';                                                   
    2780:	e3a0305e 	mov	r3, #94	; 0x5e                                <== NOT EXECUTED
		echobuf[1] = c ^ 0x40;                                              
		rtems_termios_puts (echobuf, 2, tty);                               
    2784:	e28d0002 	add	r0, sp, #2	; 0x2                              <== NOT EXECUTED
    2788:	e3a01002 	mov	r1, #2	; 0x2                                  <== NOT EXECUTED
    278c:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
echo (unsigned char c, struct rtems_termios_tty *tty)                 
{                                                                     
	if ((tty->termios.c_lflag & ECHOCTL) && iscntrl(c) && (c != '\t') && (c != '\n')) {
		char echobuf[2];                                                    
                                                                      
		echobuf[0] = '^';                                                   
    2790:	e5cd3002 	strb	r3, [sp, #2]                                 <== NOT EXECUTED
		echobuf[1] = c ^ 0x40;                                              
    2794:	e5cdc003 	strb	ip, [sp, #3]                                 <== NOT EXECUTED
		rtems_termios_puts (echobuf, 2, tty);                               
    2798:	ebffff4e 	bl	24d8 <rtems_termios_puts>                      <== NOT EXECUTED
		tty->column += 2;                                                   
    279c:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    27a0:	e2833002 	add	r3, r3, #2	; 0x2                              <== NOT EXECUTED
    27a4:	e5843028 	str	r3, [r4, #40]                                 <== NOT EXECUTED
    27a8:	ea000001 	b	27b4 <echo+0x78>                                <== NOT EXECUTED
	}                                                                    
	else {                                                               
		oproc (c, tty);                                                     
    27ac:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    27b0:	ebffff8c 	bl	25e8 <oproc>                                   <== NOT EXECUTED
	}                                                                    
}                                                                     
    27b4:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    27b8:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

000027c0 <erase>: * FIXME: Some of the tests should check for IEXTEN, too. */ static void erase (struct rtems_termios_tty *tty, int lineFlag) { if (tty->ccount == 0)
    27c0:	e5903020 	ldr	r3, [r0, #32]                                 <== NOT EXECUTED
    27c4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
 * FIXME: Needs support for WERASE and ECHOPRT.                       
 * FIXME: Some of the tests should check for IEXTEN, too.             
 */                                                                   
static void                                                           
erase (struct rtems_termios_tty *tty, int lineFlag)                   
{                                                                     
    27c8:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
    27cc:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    27d0:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
	if (tty->ccount == 0)                                                
    27d4:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
		return;                                                             
	if (lineFlag) {                                                      
    27d8:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
    27dc:	0a000060 	beq	2964 <erase+0x1a4>                            <== NOT EXECUTED
		if (!(tty->termios.c_lflag & ECHO)) {                               
    27e0:	e590303c 	ldr	r3, [r0, #60]                                 <== NOT EXECUTED
    27e4:	e2132008 	ands	r2, r3, #8	; 0x8                             <== NOT EXECUTED
			tty->ccount = 0;                                                   
    27e8:	05802020 	streq	r2, [r0, #32]                               <== NOT EXECUTED
erase (struct rtems_termios_tty *tty, int lineFlag)                   
{                                                                     
	if (tty->ccount == 0)                                                
		return;                                                             
	if (lineFlag) {                                                      
		if (!(tty->termios.c_lflag & ECHO)) {                               
    27ec:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
			tty->ccount = 0;                                                   
			return;                                                            
		}                                                                   
		if (!(tty->termios.c_lflag & ECHOE)) {                              
    27f0:	e2133010 	ands	r3, r3, #16	; 0x10                           <== NOT EXECUTED
    27f4:	1a00005a 	bne	2964 <erase+0x1a4>                            <== NOT EXECUTED
			tty->ccount = 0;                                                   
    27f8:	e5803020 	str	r3, [r0, #32]                                 <== NOT EXECUTED
			echo (tty->termios.c_cc[VKILL], tty);                              
    27fc:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2800:	e5d00044 	ldrb	r0, [r0, #68]                                <== NOT EXECUTED
    2804:	ebffffcc 	bl	273c <echo>                                    <== NOT EXECUTED
			if (tty->termios.c_lflag & ECHOK)                                  
    2808:	e594303c 	ldr	r3, [r4, #60]                                 <== NOT EXECUTED
    280c:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
				echo ('\n', tty);                                                 
    2810:	11a01004 	movne	r1, r4                                      <== NOT EXECUTED
    2814:	13a0000a 	movne	r0, #10	; 0xa                               <== NOT EXECUTED
			return;                                                            
		}                                                                   
		if (!(tty->termios.c_lflag & ECHOE)) {                              
			tty->ccount = 0;                                                   
			echo (tty->termios.c_cc[VKILL], tty);                              
			if (tty->termios.c_lflag & ECHOK)                                  
    2818:	08bd80f0 	popeq	{r4, r5, r6, r7, pc}                        <== NOT EXECUTED
    281c:	ea00000c 	b	2854 <erase+0x94>                               <== NOT EXECUTED
				echo ('\n', tty);                                                 
			return;                                                            
		}                                                                   
	}                                                                    
	while (tty->ccount) {                                                
		unsigned char c = tty->cbuf[--tty->ccount];                         
    2820:	e2431001 	sub	r1, r3, #1	; 0x1                              <== NOT EXECUTED
                                                                      
		if (tty->termios.c_lflag & ECHO) {                                  
    2824:	e594203c 	ldr	r2, [r4, #60]                                 <== NOT EXECUTED
				echo ('\n', tty);                                                 
			return;                                                            
		}                                                                   
	}                                                                    
	while (tty->ccount) {                                                
		unsigned char c = tty->cbuf[--tty->ccount];                         
    2828:	e5841020 	str	r1, [r4, #32]                                 <== NOT EXECUTED
    282c:	e594301c 	ldr	r3, [r4, #28]                                 <== NOT EXECUTED
                                                                      
		if (tty->termios.c_lflag & ECHO) {                                  
    2830:	e3120008 	tst	r2, #8	; 0x8                                  <== NOT EXECUTED
				echo ('\n', tty);                                                 
			return;                                                            
		}                                                                   
	}                                                                    
	while (tty->ccount) {                                                
		unsigned char c = tty->cbuf[--tty->ccount];                         
    2834:	e7d35001 	ldrb	r5, [r3, r1]                                 <== NOT EXECUTED
                                                                      
		if (tty->termios.c_lflag & ECHO) {                                  
    2838:	0a000046 	beq	2958 <erase+0x198>                            <== NOT EXECUTED
			if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) {                
    283c:	e3560000 	cmp	r6, #0	; 0x0                                  <== NOT EXECUTED
    2840:	1a000005 	bne	285c <erase+0x9c>                             <== NOT EXECUTED
    2844:	e3120010 	tst	r2, #16	; 0x10                                <== NOT EXECUTED
    2848:	1a000003 	bne	285c <erase+0x9c>                             <== NOT EXECUTED
				echo (tty->termios.c_cc[VERASE], tty);                            
    284c:	e5d40043 	ldrb	r0, [r4, #67]                                <== NOT EXECUTED
    2850:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
			}                                                                  
		}                                                                   
		if (!lineFlag)                                                      
			break;                                                             
	}                                                                    
}                                                                     
    2854:	e8bd40f0 	pop	{r4, r5, r6, r7, lr}                          <== NOT EXECUTED
	while (tty->ccount) {                                                
		unsigned char c = tty->cbuf[--tty->ccount];                         
                                                                      
		if (tty->termios.c_lflag & ECHO) {                                  
			if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) {                
				echo (tty->termios.c_cc[VERASE], tty);                            
    2858:	eaffffb7 	b	273c <echo>                                     <== NOT EXECUTED
			}                                                                  
			else if (c == '\t') {                                              
    285c:	e3550009 	cmp	r5, #9	; 0x9                                  <== NOT EXECUTED
    2860:	1a00001f 	bne	28e4 <erase+0x124>                            <== NOT EXECUTED
					c = tty->cbuf[i++];                                              
					if (c == '\t') {                                                 
						col = (col | 7) + 1;                                            
					}                                                                
					else if (iscntrl (c)) {                                          
						if (tty->termios.c_lflag & ECHOCTL)                             
    2864:	e202cc02 	and	ip, r2, #512	; 0x200                          <== NOT EXECUTED
		if (tty->termios.c_lflag & ECHO) {                                  
			if (!lineFlag && !(tty->termios.c_lflag & ECHOE)) {                
				echo (tty->termios.c_cc[VERASE], tty);                            
			}                                                                  
			else if (c == '\t') {                                              
				int col = tty->read_start_column;                                 
    2868:	e594502c 	ldr	r5, [r4, #44]                                 <== NOT EXECUTED
				while (i != tty->ccount) {                                        
					c = tty->cbuf[i++];                                              
					if (c == '\t') {                                                 
						col = (col | 7) + 1;                                            
					}                                                                
					else if (iscntrl (c)) {                                          
    286c:	e5970000 	ldr	r0, [r7]                                      <== NOT EXECUTED
    2870:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    2874:	ea00000c 	b	28ac <erase+0xec>                               <== NOT EXECUTED
                                                                      
				/*                                                                
				 * Find the character before the tab                              
				 */                                                               
				while (i != tty->ccount) {                                        
					c = tty->cbuf[i++];                                              
    2878:	e594301c 	ldr	r3, [r4, #28]                                 <== NOT EXECUTED
    287c:	e7d33002 	ldrb	r3, [r3, r2]                                 <== NOT EXECUTED
					if (c == '\t') {                                                 
    2880:	e3530009 	cmp	r3, #9	; 0x9                                  <== NOT EXECUTED
						col = (col | 7) + 1;                                            
    2884:	03853007 	orreq	r3, r5, #7	; 0x7                            <== NOT EXECUTED
    2888:	02835001 	addeq	r5, r3, #1	; 0x1                            <== NOT EXECUTED
				/*                                                                
				 * Find the character before the tab                              
				 */                                                               
				while (i != tty->ccount) {                                        
					c = tty->cbuf[i++];                                              
					if (c == '\t') {                                                 
    288c:	0a000005 	beq	28a8 <erase+0xe8>                             <== NOT EXECUTED
						col = (col | 7) + 1;                                            
					}                                                                
					else if (iscntrl (c)) {                                          
    2890:	e7d03003 	ldrb	r3, [r0, r3]                                 <== NOT EXECUTED
    2894:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
						if (tty->termios.c_lflag & ECHOCTL)                             
							col += 2;                                                      
					}                                                                
					else {                                                           
						col++;                                                          
    2898:	02855001 	addeq	r5, r5, #1	; 0x1                            <== NOT EXECUTED
				while (i != tty->ccount) {                                        
					c = tty->cbuf[i++];                                              
					if (c == '\t') {                                                 
						col = (col | 7) + 1;                                            
					}                                                                
					else if (iscntrl (c)) {                                          
    289c:	0a000001 	beq	28a8 <erase+0xe8>                             <== NOT EXECUTED
						if (tty->termios.c_lflag & ECHOCTL)                             
    28a0:	e35c0000 	cmp	ip, #0	; 0x0                                  <== NOT EXECUTED
							col += 2;                                                      
    28a4:	12855002 	addne	r5, r5, #2	; 0x2                            <== NOT EXECUTED
                                                                      
				/*                                                                
				 * Find the character before the tab                              
				 */                                                               
				while (i != tty->ccount) {                                        
					c = tty->cbuf[i++];                                              
    28a8:	e2822001 	add	r2, r2, #1	; 0x1                              <== NOT EXECUTED
				int i = 0;                                                        
                                                                      
				/*                                                                
				 * Find the character before the tab                              
				 */                                                               
				while (i != tty->ccount) {                                        
    28ac:	e1520001 	cmp	r2, r1                                        <== NOT EXECUTED
    28b0:	1afffff0 	bne	2878 <erase+0xb8>                             <== NOT EXECUTED
    28b4:	ea000003 	b	28c8 <erase+0x108>                              <== NOT EXECUTED
                                                                      
				/*                                                                
				 * Back up over the tab                                           
				 */                                                               
				while (tty->column > col) {                                       
					rtems_termios_puts ("\b", 1, tty);                               
    28b8:	ebffff06 	bl	24d8 <rtems_termios_puts>                      <== NOT EXECUTED
					tty->column--;                                                   
    28bc:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    28c0:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    28c4:	e5843028 	str	r3, [r4, #40]                                 <== NOT EXECUTED
				}                                                                 
                                                                      
				/*                                                                
				 * Back up over the tab                                           
				 */                                                               
				while (tty->column > col) {                                       
    28c8:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    28cc:	e1530005 	cmp	r3, r5                                        <== NOT EXECUTED
					rtems_termios_puts ("\b", 1, tty);                               
    28d0:	e59f00a0 	ldr	r0, [pc, #160]	; 2978 <erase+0x1b8>           <== NOT EXECUTED
    28d4:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    28d8:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
				}                                                                 
                                                                      
				/*                                                                
				 * Back up over the tab                                           
				 */                                                               
				while (tty->column > col) {                                       
    28dc:	cafffff5 	bgt	28b8 <erase+0xf8>                             <== NOT EXECUTED
    28e0:	ea00001c 	b	2958 <erase+0x198>                              <== NOT EXECUTED
					rtems_termios_puts ("\b", 1, tty);                               
					tty->column--;                                                   
				}                                                                 
			}                                                                  
			else {                                                             
				if (iscntrl (c) && (tty->termios.c_lflag & ECHOCTL)) {            
    28e4:	e5973000 	ldr	r3, [r7]                                      <== NOT EXECUTED
    28e8:	e7d33005 	ldrb	r3, [r3, r5]                                 <== NOT EXECUTED
    28ec:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
    28f0:	0a000009 	beq	291c <erase+0x15c>                            <== NOT EXECUTED
    28f4:	e3120c02 	tst	r2, #512	; 0x200                              <== NOT EXECUTED
    28f8:	0a000007 	beq	291c <erase+0x15c>                            <== NOT EXECUTED
					rtems_termios_puts ("\b \b", 3, tty);                            
    28fc:	e59f0078 	ldr	r0, [pc, #120]	; 297c <erase+0x1bc>           <== NOT EXECUTED
    2900:	e3a01003 	mov	r1, #3	; 0x3                                  <== NOT EXECUTED
    2904:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    2908:	ebfffef2 	bl	24d8 <rtems_termios_puts>                      <== NOT EXECUTED
					if (tty->column)                                                 
    290c:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    2910:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
						tty->column--;                                                  
    2914:	12433001 	subne	r3, r3, #1	; 0x1                            <== NOT EXECUTED
    2918:	15843028 	strne	r3, [r4, #40]                               <== NOT EXECUTED
				}                                                                 
				if (!iscntrl (c) || (tty->termios.c_lflag & ECHOCTL)) {           
    291c:	e5973000 	ldr	r3, [r7]                                      <== NOT EXECUTED
    2920:	e7d33005 	ldrb	r3, [r3, r5]                                 <== NOT EXECUTED
    2924:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
    2928:	0a000002 	beq	2938 <erase+0x178>                            <== NOT EXECUTED
    292c:	e594303c 	ldr	r3, [r4, #60]                                 <== NOT EXECUTED
    2930:	e3130c02 	tst	r3, #512	; 0x200                              <== NOT EXECUTED
    2934:	0a000007 	beq	2958 <erase+0x198>                            <== NOT EXECUTED
					rtems_termios_puts ("\b \b", 3, tty);                            
    2938:	e59f003c 	ldr	r0, [pc, #60]	; 297c <erase+0x1bc>            <== NOT EXECUTED
    293c:	e3a01003 	mov	r1, #3	; 0x3                                  <== NOT EXECUTED
    2940:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    2944:	ebfffee3 	bl	24d8 <rtems_termios_puts>                      <== NOT EXECUTED
					if (tty->column)                                                 
    2948:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    294c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
						tty->column--;                                                  
    2950:	12433001 	subne	r3, r3, #1	; 0x1                            <== NOT EXECUTED
    2954:	15843028 	strne	r3, [r4, #40]                               <== NOT EXECUTED
				}                                                                 
			}                                                                  
		}                                                                   
		if (!lineFlag)                                                      
    2958:	e3560000 	cmp	r6, #0	; 0x0                                  <== NOT EXECUTED
    295c:	1a000001 	bne	2968 <erase+0x1a8>                            <== NOT EXECUTED
    2960:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
    2964:	e59f7014 	ldr	r7, [pc, #20]	; 2980 <erase+0x1c0>            <== NOT EXECUTED
			if (tty->termios.c_lflag & ECHOK)                                  
				echo ('\n', tty);                                                 
			return;                                                            
		}                                                                   
	}                                                                    
	while (tty->ccount) {                                                
    2968:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    296c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2970:	1affffaa 	bne	2820 <erase+0x60>                             <== NOT EXECUTED
    2974:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

000086d0 <free>: void free( void *ptr ) { MSBUMP(free_calls, 1);
    86d0:	e59f2084 	ldr	r2, [pc, #132]	; 875c <free+0x8c>             
    86d4:	e592300c 	ldr	r3, [r2, #12]                                 
    86d8:	e92d4030 	push	{r4, r5, lr}                                 
    86dc:	e2833001 	add	r3, r3, #1	; 0x1                              
                                                                      
  if ( !ptr )                                                         
    86e0:	e2504000 	subs	r4, r0, #0	; 0x0                             
                                                                      
void free(                                                            
  void *ptr                                                           
)                                                                     
{                                                                     
  MSBUMP(free_calls, 1);                                              
    86e4:	e582300c 	str	r3, [r2, #12]                                 
                                                                      
  if ( !ptr )                                                         
    86e8:	08bd8030 	popeq	{r4, r5, pc}                                
                                                                      
  /*                                                                  
   *  Do not attempt to free memory if in a critical section or ISR.  
   */                                                                 
                                                                      
  if ( _System_state_Is_up(_System_state_Get()) &&                    
    86ec:	e59f306c 	ldr	r3, [pc, #108]	; 8760 <free+0x90>             
    86f0:	e5933000 	ldr	r3, [r3]                                      
    86f4:	e3530003 	cmp	r3, #3	; 0x3                                  
    86f8:	1a000005 	bne	8714 <free+0x44>                              
    86fc:	eb000116 	bl	8b5c <malloc_is_system_state_OK>               
    8700:	e3500000 	cmp	r0, #0	; 0x0                                  
    8704:	1a000002 	bne	8714 <free+0x44>                              
       !malloc_is_system_state_OK() ) {                               
      malloc_deferred_free(ptr);                                      
    8708:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
      RTEMS_Malloc_Heap.begin,                                        
      RTEMS_Malloc_Heap.end                                           
    );                                                                
  }                                                                   
                                                                      
}                                                                     
    870c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
   *  Do not attempt to free memory if in a critical section or ISR.  
   */                                                                 
                                                                      
  if ( _System_state_Is_up(_System_state_Get()) &&                    
       !malloc_is_system_state_OK() ) {                               
      malloc_deferred_free(ptr);                                      
    8710:	ea000124 	b	8ba8 <malloc_deferred_free>                     <== NOT EXECUTED
  #endif                                                              
                                                                      
  /*                                                                  
   *  If configured, update the statistics                            
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    8714:	e59f3048 	ldr	r3, [pc, #72]	; 8764 <free+0x94>              
    8718:	e5933000 	ldr	r3, [r3]                                      
    871c:	e3530000 	cmp	r3, #0	; 0x0                                  
    (*rtems_malloc_statistics_helpers->at_free)(ptr);                 
    8720:	11a00004 	movne	r0, r4                                      
    8724:	11a0e00f 	movne	lr, pc                                      
    8728:	1593f008 	ldrne	pc, [r3, #8]                                
                                                                      
  if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) {           
    872c:	e59f5034 	ldr	r5, [pc, #52]	; 8768 <free+0x98>              
    8730:	e1a01004 	mov	r1, r4                                        
    8734:	e1a00005 	mov	r0, r5                                        
    8738:	eb0004af 	bl	99fc <_Protected_heap_Free>                    
    873c:	e3500000 	cmp	r0, #0	; 0x0                                  
    8740:	18bd8030 	popne	{r4, r5, pc}                                
    printk( "Program heap: free of bad pointer %p -- range %p - %p \n",
    8744:	e595301c 	ldr	r3, [r5, #28]                                 <== NOT EXECUTED
    8748:	e59f001c 	ldr	r0, [pc, #28]	; 876c <free+0x9c>              <== NOT EXECUTED
    874c:	e5952018 	ldr	r2, [r5, #24]                                 <== NOT EXECUTED
    8750:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
      RTEMS_Malloc_Heap.begin,                                        
      RTEMS_Malloc_Heap.end                                           
    );                                                                
  }                                                                   
                                                                      
}                                                                     
    8754:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    (*rtems_malloc_statistics_helpers->at_free)(ptr);                 
                                                                      
  if ( !_Protected_heap_Free( &RTEMS_Malloc_Heap, ptr ) ) {           
    printk( "Program heap: free of bad pointer %p -- range %p - %p \n",
    8758:	eaffe5ed 	b	1f14 <printk>                                   <== NOT EXECUTED
                                                                      

00012c5c <fstat>: int fstat( int fd, struct stat *sbuf ) {
   12c5c:	e92d4030 	push	{r4, r5, lr}                                 
                                                                      
  /*                                                                  
   *  Check to see if we were passed a valid pointer.                 
   */                                                                 
                                                                      
  if ( !sbuf )                                                        
   12c60:	e2515000 	subs	r5, r1, #0	; 0x0                             
   12c64:	1a000002 	bne	12c74 <fstat+0x18>                            
    rtems_set_errno_and_return_minus_one( EFAULT );                   
   12c68:	ebffdee9 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12c6c:	e3a0300e 	mov	r3, #14	; 0xe                                 <== NOT EXECUTED
   12c70:	ea00001f 	b	12cf4 <fstat+0x98>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Now process the stat() request.                                 
   */                                                                 
                                                                      
  iop = rtems_libio_iop( fd );                                        
   12c74:	e59f3084 	ldr	r3, [pc, #132]	; 12d00 <fstat+0xa4>           
   12c78:	e5933000 	ldr	r3, [r3]                                      
   12c7c:	e1500003 	cmp	r0, r3                                        
   12c80:	2a000019 	bcs	12cec <fstat+0x90>                            
   12c84:	e59f3078 	ldr	r3, [pc, #120]	; 12d04 <fstat+0xa8>           
   12c88:	e5932000 	ldr	r2, [r3]                                      
   12c8c:	e3a03034 	mov	r3, #52	; 0x34                                
   12c90:	e0242093 	mla	r4, r3, r0, r2                                
  rtems_libio_check_fd( fd );                                         
  rtems_libio_check_is_open(iop);                                     
   12c94:	e594300c 	ldr	r3, [r4, #12]                                 
   12c98:	e3130c01 	tst	r3, #256	; 0x100                              
   12c9c:	0a000012 	beq	12cec <fstat+0x90>                            
                                                                      
  if ( !iop->handlers )                                               
   12ca0:	e5943030 	ldr	r3, [r4, #48]                                 
   12ca4:	e3530000 	cmp	r3, #0	; 0x0                                  
   12ca8:	0a00000f 	beq	12cec <fstat+0x90>                            
    rtems_set_errno_and_return_minus_one( EBADF );                    
                                                                      
  if ( !iop->handlers->fstat_h )                                      
   12cac:	e5933018 	ldr	r3, [r3, #24]                                 
   12cb0:	e3530000 	cmp	r3, #0	; 0x0                                  
   12cb4:	1a000002 	bne	12cc4 <fstat+0x68>                            
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   12cb8:	ebffded5 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12cbc:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
   12cc0:	ea00000b 	b	12cf4 <fstat+0x98>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Zero out the stat structure so the various support              
   *  versions of stat don't have to.                                 
   */                                                                 
  memset( sbuf, 0, sizeof(struct stat) );                             
   12cc4:	e3a01000 	mov	r1, #0	; 0x0                                  
   12cc8:	e3a0204c 	mov	r2, #76	; 0x4c                                
   12ccc:	e1a00005 	mov	r0, r5                                        
   12cd0:	ebffe0d8 	bl	b038 <memset>                                  
                                                                      
  return (*iop->handlers->fstat_h)( &iop->pathinfo, sbuf );           
   12cd4:	e2840010 	add	r0, r4, #16	; 0x10                            
   12cd8:	e1a01005 	mov	r1, r5                                        
   12cdc:	e5943030 	ldr	r3, [r4, #48]                                 
   12ce0:	e1a0e00f 	mov	lr, pc                                        
   12ce4:	e593f018 	ldr	pc, [r3, #24]                                 
}                                                                     
   12ce8:	e8bd8030 	pop	{r4, r5, pc}                                  
  /*                                                                  
   *  Now process the stat() request.                                 
   */                                                                 
                                                                      
  iop = rtems_libio_iop( fd );                                        
  rtems_libio_check_fd( fd );                                         
   12cec:	ebffdec8 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12cf0:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
   12cf4:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
   12cf8:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
   12cfc:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00008770 <ftruncate>: int ftruncate( int fd, off_t length ) {
    8770:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  rtems_libio_t                    *iop;                              
  rtems_filesystem_location_info_t  loc;                              
                                                                      
  rtems_libio_check_fd( fd );                                         
    8774:	e59f30c4 	ldr	r3, [pc, #196]	; 8840 <ftruncate+0xd0>        <== NOT EXECUTED
    8778:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    877c:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
                                                                      
int ftruncate(                                                        
  int     fd,                                                         
  off_t   length                                                      
)                                                                     
{                                                                     
    8780:	e24dd010 	sub	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    8784:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  rtems_libio_t                    *iop;                              
  rtems_filesystem_location_info_t  loc;                              
                                                                      
  rtems_libio_check_fd( fd );                                         
    8788:	2a000006 	bcs	87a8 <ftruncate+0x38>                         <== NOT EXECUTED
  iop = rtems_libio_iop( fd );                                        
    878c:	e59f30b0 	ldr	r3, [pc, #176]	; 8844 <ftruncate+0xd4>        <== NOT EXECUTED
    8790:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
    8794:	e3a03034 	mov	r3, #52	; 0x34                                <== NOT EXECUTED
    8798:	e0242093 	mla	r4, r3, r0, r2                                <== NOT EXECUTED
  rtems_libio_check_is_open(iop);                                     
    879c:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
    87a0:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
    87a4:	1a000002 	bne	87b4 <ftruncate+0x44>                         <== NOT EXECUTED
    87a8:	eb000819 	bl	a814 <__errno>                                 <== NOT EXECUTED
    87ac:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
    87b0:	ea000019 	b	881c <ftruncate+0xac>                           <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Make sure we are not working on a directory                     
   */                                                                 
                                                                      
  loc = iop->pathinfo;                                                
    87b4:	e2843010 	add	r3, r4, #16	; 0x10                            <== NOT EXECUTED
    87b8:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    87bc:	e88d000f 	stm	sp, {r0, r1, r2, r3}                          <== NOT EXECUTED
  if ( !loc.ops->node_type_h )                                        
    87c0:	e5923010 	ldr	r3, [r2, #16]                                 <== NOT EXECUTED
    87c4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    87c8:	0a000011 	beq	8814 <ftruncate+0xa4>                         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
                                                                      
  if ( (*loc.ops->node_type_h)( &loc ) == RTEMS_FILESYSTEM_DIRECTORY )
    87cc:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    87d0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    87d4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    87d8:	e3500001 	cmp	r0, #1	; 0x1                                  <== NOT EXECUTED
    87dc:	1a000002 	bne	87ec <ftruncate+0x7c>                         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EISDIR );                   
    87e0:	eb00080b 	bl	a814 <__errno>                                 <== NOT EXECUTED
    87e4:	e3a03015 	mov	r3, #21	; 0x15                                <== NOT EXECUTED
    87e8:	ea00000b 	b	881c <ftruncate+0xac>                           <== NOT EXECUTED
                                                                      
  rtems_libio_check_permissions( iop, LIBIO_FLAGS_WRITE );            
    87ec:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
    87f0:	e3130004 	tst	r3, #4	; 0x4                                  <== NOT EXECUTED
    87f4:	1a000002 	bne	8804 <ftruncate+0x94>                         <== NOT EXECUTED
    87f8:	eb000805 	bl	a814 <__errno>                                 <== NOT EXECUTED
    87fc:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
    8800:	ea000005 	b	881c <ftruncate+0xac>                           <== NOT EXECUTED
                                                                      
  if ( !iop->handlers->ftruncate_h )                                  
    8804:	e5943030 	ldr	r3, [r4, #48]                                 <== NOT EXECUTED
    8808:	e5933020 	ldr	r3, [r3, #32]                                 <== NOT EXECUTED
    880c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8810:	1a000004 	bne	8828 <ftruncate+0xb8>                         <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
    8814:	eb0007fe 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8818:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    881c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8820:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    8824:	ea000003 	b	8838 <ftruncate+0xc8>                           <== NOT EXECUTED
                                                                      
  return (*iop->handlers->ftruncate_h)( iop, length );                
    8828:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    882c:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    8830:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8834:	e12fff13 	bx	r3                                             <== NOT EXECUTED
}                                                                     
    8838:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    883c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00016260 <getpid>: */ pid_t getpid( void ) { return _Objects_Local_node; }
   16260:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
   16264:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00008848 <gettimeofday>: int gettimeofday( struct timeval *tp, void * __tz ) {
    8848:	e92d4030 	push	{r4, r5, lr}                                 
  /* struct timezone* tzp = (struct timezone*) __tz; */               
  if ( !tp ) {                                                        
    884c:	e2505000 	subs	r5, r0, #0	; 0x0                             
                                                                      
int gettimeofday(                                                     
  struct timeval  *tp,                                                
  void * __tz                                                         
)                                                                     
{                                                                     
    8850:	e24dd008 	sub	sp, sp, #8	; 0x8                              
  /* struct timezone* tzp = (struct timezone*) __tz; */               
  if ( !tp ) {                                                        
    8854:	1a000004 	bne	886c <gettimeofday+0x24>                      
    errno = EFAULT;                                                   
    8858:	eb0007ed 	bl	a814 <__errno>                                 <== NOT EXECUTED
    885c:	e3a0300e 	mov	r3, #14	; 0xe                                 <== NOT EXECUTED
    8860:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8864:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    8868:	ea00000c 	b	88a0 <gettimeofday+0x58>                        <== NOT EXECUTED
)                                                                     
{                                                                     
  ISR_Level level;                                                    
  struct timespec now;                                                
                                                                      
  _ISR_Disable(level);                                                
    886c:	e10f4000 	mrs	r4, CPSR                                      
    8870:	e38430c0 	orr	r3, r4, #192	; 0xc0                           
    8874:	e129f003 	msr	CPSR_fc, r3                                   
    _TOD_Get( &now );                                                 
    8878:	e1a0000d 	mov	r0, sp                                        
    887c:	ebfff225 	bl	5118 <_TOD_Get>                                
  _ISR_Enable(level);                                                 
    8880:	e129f004 	msr	CPSR_fc, r4                                   
                                                                      
  time->tv_sec  = now.tv_sec;                                         
    8884:	e59d3000 	ldr	r3, [sp]                                      
    8888:	e5853000 	str	r3, [r5]                                      
  time->tv_usec = now.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND;      
    888c:	e59d0004 	ldr	r0, [sp, #4]                                  
    8890:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             
    8894:	eb002309 	bl	114c0 <__aeabi_uidiv>                          
    8898:	e5850004 	str	r0, [r5, #4]                                  
    889c:	e3a00000 	mov	r0, #0	; 0x0                                  
   *  with Eric Norum, this is how GNU/Linux, Solaris, and MacOS X    
   *  do it.  This puts us in good company.                           
   */                                                                 
                                                                      
  return 0;                                                           
}                                                                     
    88a0:	e28dd008 	add	sp, sp, #8	; 0x8                              
    88a4:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00002984 <iproc>: * Process a single input character */ static int iproc (unsigned char c, struct rtems_termios_tty *tty) { if (tty->termios.c_iflag & ISTRIP)
    2984:	e5912030 	ldr	r2, [r1, #48]                                 <== NOT EXECUTED
    2988:	e3120020 	tst	r2, #32	; 0x20                                <== NOT EXECUTED
/*                                                                    
 * Process a single input character                                   
 */                                                                   
static int                                                            
iproc (unsigned char c, struct rtems_termios_tty *tty)                
{                                                                     
    298c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
    2990:	e20040ff 	and	r4, r0, #255	; 0xff                           <== NOT EXECUTED
	if (tty->termios.c_iflag & ISTRIP)                                   
		c &= 0x7f;                                                          
    2994:	1200407f 	andne	r4, r0, #127	; 0x7f                         <== NOT EXECUTED
	if (tty->termios.c_iflag & IUCLC)                                    
    2998:	e3120c02 	tst	r2, #512	; 0x200                              <== NOT EXECUTED
/*                                                                    
 * Process a single input character                                   
 */                                                                   
static int                                                            
iproc (unsigned char c, struct rtems_termios_tty *tty)                
{                                                                     
    299c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
	if (tty->termios.c_iflag & ISTRIP)                                   
		c &= 0x7f;                                                          
	if (tty->termios.c_iflag & IUCLC)                                    
    29a0:	0a000006 	beq	29c0 <iproc+0x3c>                             <== NOT EXECUTED
		c = tolower (c);                                                    
    29a4:	e59f3164 	ldr	r3, [pc, #356]	; 2b10 <iproc+0x18c>           <== NOT EXECUTED
    29a8:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    29ac:	e7d33004 	ldrb	r3, [r3, r4]                                 <== NOT EXECUTED
    29b0:	e3130001 	tst	r3, #1	; 0x1                                  <== NOT EXECUTED
    29b4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    29b8:	12840020 	addne	r0, r4, #32	; 0x20                          <== NOT EXECUTED
    29bc:	e20040ff 	and	r4, r0, #255	; 0xff                           <== NOT EXECUTED
	if (c == '\r') {                                                     
    29c0:	e354000d 	cmp	r4, #13	; 0xd                                 <== NOT EXECUTED
    29c4:	1a000005 	bne	29e0 <iproc+0x5c>                             <== NOT EXECUTED
		if (tty->termios.c_iflag & IGNCR)                                   
    29c8:	e3120080 	tst	r2, #128	; 0x80                               <== NOT EXECUTED
    29cc:	1a00004d 	bne	2b08 <iproc+0x184>                            <== NOT EXECUTED
			return 0;                                                          
		if (tty->termios.c_iflag & ICRNL)                                   
    29d0:	e3120c01 	tst	r2, #256	; 0x100                              <== NOT EXECUTED
    29d4:	03a0400d 	moveq	r4, #13	; 0xd                               <== NOT EXECUTED
    29d8:	13a0400a 	movne	r4, #10	; 0xa                               <== NOT EXECUTED
    29dc:	ea000007 	b	2a00 <iproc+0x7c>                               <== NOT EXECUTED
			c = '\n';                                                          
	}                                                                    
	else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) {            
    29e0:	e354000a 	cmp	r4, #10	; 0xa                                 <== NOT EXECUTED
    29e4:	1a000003 	bne	29f8 <iproc+0x74>                             <== NOT EXECUTED
	 * FIXME: Should do IMAXBEL handling somehow                         
	 */                                                                  
	if (tty->ccount < (CBUFSIZE-1)) {                                    
		if (tty->termios.c_lflag & ECHO)                                    
			echo (c, tty);                                                     
		tty->cbuf[tty->ccount++] = c;                                       
    29e8:	e3120040 	tst	r2, #64	; 0x40                                <== NOT EXECUTED
    29ec:	03a0400a 	moveq	r4, #10	; 0xa                               <== NOT EXECUTED
    29f0:	13a0400d 	movne	r4, #13	; 0xd                               <== NOT EXECUTED
    29f4:	ea000001 	b	2a00 <iproc+0x7c>                               <== NOT EXECUTED
			c = '\n';                                                          
	}                                                                    
	else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) {            
		c = '\r';                                                           
	}                                                                    
	if ((c != '\0') && (tty->termios.c_lflag & ICANON)) {                
    29f8:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    29fc:	0a00002f 	beq	2ac0 <iproc+0x13c>                            <== NOT EXECUTED
    2a00:	e595203c 	ldr	r2, [r5, #60]                                 <== NOT EXECUTED
    2a04:	e3120002 	tst	r2, #2	; 0x2                                  <== NOT EXECUTED
    2a08:	0a00002c 	beq	2ac0 <iproc+0x13c>                            <== NOT EXECUTED
		if (c == tty->termios.c_cc[VERASE]) {                               
    2a0c:	e5d53043 	ldrb	r3, [r5, #67]                                <== NOT EXECUTED
    2a10:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
			erase (tty, 0);                                                    
    2a14:	01a00005 	moveq	r0, r5                                      <== NOT EXECUTED
    2a18:	03a01000 	moveq	r1, #0	; 0x0                                <== NOT EXECUTED
	}                                                                    
	else if ((c == '\n') && (tty->termios.c_iflag & INLCR)) {            
		c = '\r';                                                           
	}                                                                    
	if ((c != '\0') && (tty->termios.c_lflag & ICANON)) {                
		if (c == tty->termios.c_cc[VERASE]) {                               
    2a1c:	0a000004 	beq	2a34 <iproc+0xb0>                             <== NOT EXECUTED
			erase (tty, 0);                                                    
			return 0;                                                          
		}                                                                   
		else if (c == tty->termios.c_cc[VKILL]) {                           
    2a20:	e5d53044 	ldrb	r3, [r5, #68]                                <== NOT EXECUTED
    2a24:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    2a28:	1a000003 	bne	2a3c <iproc+0xb8>                             <== NOT EXECUTED
			erase (tty, 1);                                                    
    2a2c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    2a30:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    2a34:	ebffff61 	bl	27c0 <erase>                                   <== NOT EXECUTED
    2a38:	ea000030 	b	2b00 <iproc+0x17c>                              <== NOT EXECUTED
			return 0;                                                          
		}                                                                   
		else if (c == tty->termios.c_cc[VEOF]) {                            
    2a3c:	e5d53045 	ldrb	r3, [r5, #69]                                <== NOT EXECUTED
    2a40:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    2a44:	0a00001b 	beq	2ab8 <iproc+0x134>                            <== NOT EXECUTED
			return 1;                                                          
		}                                                                   
		else if (c == '\n') {                                               
    2a48:	e354000a 	cmp	r4, #10	; 0xa                                 <== NOT EXECUTED
    2a4c:	1a00000a 	bne	2a7c <iproc+0xf8>                             <== NOT EXECUTED
			if (tty->termios.c_lflag & (ECHO | ECHONL))                        
    2a50:	e3120048 	tst	r2, #72	; 0x48                                <== NOT EXECUTED
				echo (c, tty);                                                    
    2a54:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
    2a58:	11a01005 	movne	r1, r5                                      <== NOT EXECUTED
    2a5c:	1bffff36 	blne	273c <echo>                                  <== NOT EXECUTED
			tty->cbuf[tty->ccount++] = c;                                      
    2a60:	e285101c 	add	r1, r5, #28	; 0x1c                            <== NOT EXECUTED
    2a64:	e8910006 	ldm	r1, {r1, r2}                                  <== NOT EXECUTED
    2a68:	e2820001 	add	r0, r2, #1	; 0x1                              <== NOT EXECUTED
    2a6c:	e3a0300a 	mov	r3, #10	; 0xa                                 <== NOT EXECUTED
    2a70:	e7c13002 	strb	r3, [r1, r2]                                 <== NOT EXECUTED
    2a74:	e5850020 	str	r0, [r5, #32]                                 <== NOT EXECUTED
    2a78:	ea00000e 	b	2ab8 <iproc+0x134>                              <== NOT EXECUTED
			return 1;                                                          
		}                                                                   
		else if ((c == tty->termios.c_cc[VEOL])                             
    2a7c:	e5d5304c 	ldrb	r3, [r5, #76]                                <== NOT EXECUTED
    2a80:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    2a84:	0a000002 	beq	2a94 <iproc+0x110>                            <== NOT EXECUTED
    2a88:	e5d53051 	ldrb	r3, [r5, #81]                                <== NOT EXECUTED
    2a8c:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    2a90:	1a00000a 	bne	2ac0 <iproc+0x13c>                            <== NOT EXECUTED
		      || (c == tty->termios.c_cc[VEOL2])) {                         
			if (tty->termios.c_lflag & ECHO)                                   
    2a94:	e3120008 	tst	r2, #8	; 0x8                                  <== NOT EXECUTED
				echo (c, tty);                                                    
    2a98:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
    2a9c:	11a01005 	movne	r1, r5                                      <== NOT EXECUTED
    2aa0:	1bffff25 	blne	273c <echo>                                  <== NOT EXECUTED
			tty->cbuf[tty->ccount++] = c;                                      
    2aa4:	e285201c 	add	r2, r5, #28	; 0x1c                            <== NOT EXECUTED
    2aa8:	e892000c 	ldm	r2, {r2, r3}                                  <== NOT EXECUTED
    2aac:	e2831001 	add	r1, r3, #1	; 0x1                              <== NOT EXECUTED
    2ab0:	e7c24003 	strb	r4, [r2, r3]                                 <== NOT EXECUTED
    2ab4:	e5851020 	str	r1, [r5, #32]                                 <== NOT EXECUTED
    2ab8:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
    2abc:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
	}                                                                    
                                                                      
	/*                                                                   
	 * FIXME: Should do IMAXBEL handling somehow                         
	 */                                                                  
	if (tty->ccount < (CBUFSIZE-1)) {                                    
    2ac0:	e59f304c 	ldr	r3, [pc, #76]	; 2b14 <iproc+0x190>            <== NOT EXECUTED
    2ac4:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    2ac8:	e5952020 	ldr	r2, [r5, #32]                                 <== NOT EXECUTED
    2acc:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    2ad0:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2ad4:	aa00000b 	bge	2b08 <iproc+0x184>                            <== NOT EXECUTED
		if (tty->termios.c_lflag & ECHO)                                    
    2ad8:	e595303c 	ldr	r3, [r5, #60]                                 <== NOT EXECUTED
    2adc:	e3130008 	tst	r3, #8	; 0x8                                  <== NOT EXECUTED
			echo (c, tty);                                                     
    2ae0:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
    2ae4:	11a01005 	movne	r1, r5                                      <== NOT EXECUTED
    2ae8:	1bffff13 	blne	273c <echo>                                  <== NOT EXECUTED
		tty->cbuf[tty->ccount++] = c;                                       
    2aec:	e285201c 	add	r2, r5, #28	; 0x1c                            <== NOT EXECUTED
    2af0:	e892000c 	ldm	r2, {r2, r3}                                  <== NOT EXECUTED
    2af4:	e2831001 	add	r1, r3, #1	; 0x1                              <== NOT EXECUTED
    2af8:	e7c24003 	strb	r4, [r2, r3]                                 <== NOT EXECUTED
    2afc:	e5851020 	str	r1, [r5, #32]                                 <== NOT EXECUTED
    2b00:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    2b04:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
    2b08:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
	}                                                                    
	return 0;                                                            
}                                                                     
    2b0c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00016394 <kill>: #if !defined(RTEMS_POSIX_API) int kill( pid_t pid, int sig ) { return 0; }
   16394:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
   16398:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00001740 <libc_delete_hook>: /* * The reentrancy structure was allocated by newlib using malloc() */ if (current_task == deleted_task) {
    1740:	e1500001 	cmp	r0, r1                                        <== NOT EXECUTED
    ptr = _REENT;                                                     
    1744:	059f3050 	ldreq	r3, [pc, #80]	; 179c <libc_delete_hook+0x5c><== NOT EXECUTED
                                                                      
rtems_extension libc_delete_hook(                                     
  rtems_tcb *current_task,                                            
  rtems_tcb *deleted_task                                             
)                                                                     
{                                                                     
    1748:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  /*                                                                  
   * The reentrancy structure was allocated by newlib using malloc()  
   */                                                                 
                                                                      
  if (current_task == deleted_task) {                                 
    ptr = _REENT;                                                     
    174c:	05934000 	ldreq	r4, [r3]                                    <== NOT EXECUTED
  } else {                                                            
    ptr = deleted_task->libc_reent;                                   
    1750:	15914100 	ldrne	r4, [r1, #256]                              <== NOT EXECUTED
  }                                                                   
                                                                      
  if (ptr && ptr != &libc_global_reent) {                             
    1754:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
rtems_extension libc_delete_hook(                                     
  rtems_tcb *current_task,                                            
  rtems_tcb *deleted_task                                             
)                                                                     
{                                                                     
    1758:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
    175c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
    ptr = _REENT;                                                     
  } else {                                                            
    ptr = deleted_task->libc_reent;                                   
  }                                                                   
                                                                      
  if (ptr && ptr != &libc_global_reent) {                             
    1760:	0a000007 	beq	1784 <libc_delete_hook+0x44>                  <== NOT EXECUTED
    1764:	e59f3034 	ldr	r3, [pc, #52]	; 17a0 <libc_delete_hook+0x60>  <== NOT EXECUTED
    1768:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
    176c:	0a000004 	beq	1784 <libc_delete_hook+0x44>                  <== NOT EXECUTED
    _reclaim_reent(ptr);                                              
*/                                                                    
    /*                                                                
     *  Just in case there are some buffers lying around.             
     */                                                               
    _fwalk(ptr, newlib_free_buffers);                                 
    1770:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    1774:	e59f1028 	ldr	r1, [pc, #40]	; 17a4 <libc_delete_hook+0x64>  <== NOT EXECUTED
    1778:	eb0025cc 	bl	aeb0 <_fwalk>                                  <== NOT EXECUTED
#if REENT_MALLOCED                                                    
    free(ptr);                                                        
#else                                                                 
    _Workspace_Free(ptr);                                             
    177c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    1780:	eb001785 	bl	759c <_Workspace_Free>                         <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Require the switch back to another task to install its own       
   */                                                                 
                                                                      
  if ( current_task == deleted_task ) {                               
    1784:	e1560005 	cmp	r6, r5                                        <== NOT EXECUTED
    _REENT = 0;                                                       
    1788:	059f300c 	ldreq	r3, [pc, #12]	; 179c <libc_delete_hook+0x5c><== NOT EXECUTED
#else                                                                 
    _Workspace_Free(ptr);                                             
#endif                                                                
  }                                                                   
                                                                      
  deleted_task->libc_reent = NULL;                                    
    178c:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    1790:	e5852100 	str	r2, [r5, #256]                                <== NOT EXECUTED
  /*                                                                  
   * Require the switch back to another task to install its own       
   */                                                                 
                                                                      
  if ( current_task == deleted_task ) {                               
    _REENT = 0;                                                       
    1794:	05832000 	streq	r2, [r3]                                    <== NOT EXECUTED
    1798:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

00012d4c <lseek>: { rtems_libio_t *iop; off_t old_offset; off_t status; rtems_libio_check_fd( fd );
   12d4c:	e59f30c4 	ldr	r3, [pc, #196]	; 12e18 <lseek+0xcc>           <== NOT EXECUTED
   12d50:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
   12d54:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
off_t lseek(                                                          
  int     fd,                                                         
  off_t   offset,                                                     
  int     whence                                                      
)                                                                     
{                                                                     
   12d58:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
   12d5c:	e1a0c002 	mov	ip, r2                                        <== NOT EXECUTED
  rtems_libio_t *iop;                                                 
  off_t          old_offset;                                          
  off_t          status;                                              
                                                                      
  rtems_libio_check_fd( fd );                                         
   12d60:	2a000006 	bcs	12d80 <lseek+0x34>                            <== NOT EXECUTED
  iop = rtems_libio_iop( fd );                                        
   12d64:	e59f30b0 	ldr	r3, [pc, #176]	; 12e1c <lseek+0xd0>           <== NOT EXECUTED
   12d68:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
   12d6c:	e3a03034 	mov	r3, #52	; 0x34                                <== NOT EXECUTED
   12d70:	e0242093 	mla	r4, r3, r0, r2                                <== NOT EXECUTED
  rtems_libio_check_is_open(iop);                                     
   12d74:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
   12d78:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
   12d7c:	1a000002 	bne	12d8c <lseek+0x40>                            <== NOT EXECUTED
   12d80:	ebffdea3 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12d84:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
   12d88:	ea000017 	b	12dec <lseek+0xa0>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Check as many errors as possible before touching iop->offset.   
   */                                                                 
                                                                      
  if ( !iop->handlers->lseek_h )                                      
   12d8c:	e5943030 	ldr	r3, [r4, #48]                                 <== NOT EXECUTED
   12d90:	e5933014 	ldr	r3, [r3, #20]                                 <== NOT EXECUTED
   12d94:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
   12d98:	1a000002 	bne	12da8 <lseek+0x5c>                            <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   12d9c:	ebffde9c 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12da0:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
   12da4:	ea000010 	b	12dec <lseek+0xa0>                              <== NOT EXECUTED
  /*                                                                  
   *  Now process the lseek().                                        
   */                                                                 
                                                                      
  old_offset = iop->offset;                                           
  switch ( whence ) {                                                 
   12da8:	e35c0001 	cmp	ip, #1	; 0x1                                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Now process the lseek().                                        
   */                                                                 
                                                                      
  old_offset = iop->offset;                                           
   12dac:	e5945008 	ldr	r5, [r4, #8]                                  <== NOT EXECUTED
  switch ( whence ) {                                                 
   12db0:	0a000005 	beq	12dcc <lseek+0x80>                            <== NOT EXECUTED
   12db4:	e35c0002 	cmp	ip, #2	; 0x2                                  <== NOT EXECUTED
   12db8:	0a000005 	beq	12dd4 <lseek+0x88>                            <== NOT EXECUTED
   12dbc:	e35c0000 	cmp	ip, #0	; 0x0                                  <== NOT EXECUTED
    case SEEK_SET:                                                    
      iop->offset = offset;                                           
   12dc0:	05841008 	streq	r1, [r4, #8]                                <== NOT EXECUTED
  /*                                                                  
   *  Now process the lseek().                                        
   */                                                                 
                                                                      
  old_offset = iop->offset;                                           
  switch ( whence ) {                                                 
   12dc4:	0a00000b 	beq	12df8 <lseek+0xac>                            <== NOT EXECUTED
   12dc8:	ea000005 	b	12de4 <lseek+0x98>                              <== NOT EXECUTED
    case SEEK_SET:                                                    
      iop->offset = offset;                                           
      break;                                                          
                                                                      
    case SEEK_CUR:                                                    
      iop->offset += offset;                                          
   12dcc:	e0813005 	add	r3, r1, r5                                    <== NOT EXECUTED
   12dd0:	ea000001 	b	12ddc <lseek+0x90>                              <== NOT EXECUTED
      break;                                                          
                                                                      
    case SEEK_END:                                                    
      iop->offset = iop->size + offset;                               
   12dd4:	e5943004 	ldr	r3, [r4, #4]                                  <== NOT EXECUTED
   12dd8:	e0813003 	add	r3, r1, r3                                    <== NOT EXECUTED
   12ddc:	e5843008 	str	r3, [r4, #8]                                  <== NOT EXECUTED
   12de0:	ea000004 	b	12df8 <lseek+0xac>                              <== NOT EXECUTED
      break;                                                          
                                                                      
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
   12de4:	ebffde8a 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12de8:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
   12dec:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
   12df0:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
   12df4:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
  /*                                                                  
   *  At this time, handlers assume iop->offset has the desired       
   *  new offset.                                                     
   */                                                                 
                                                                      
  status = (*iop->handlers->lseek_h)( iop, offset, whence );          
   12df8:	e1a0200c 	mov	r2, ip                                        <== NOT EXECUTED
   12dfc:	e5943030 	ldr	r3, [r4, #48]                                 <== NOT EXECUTED
   12e00:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
   12e04:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
   12e08:	e593f014 	ldr	pc, [r3, #20]                                 <== NOT EXECUTED
  if ( status == (off_t) -1 )                                         
   12e0c:	e3700001 	cmn	r0, #1	; 0x1                                  <== NOT EXECUTED
    iop->offset = old_offset;                                         
   12e10:	05845008 	streq	r5, [r4, #8]                                <== NOT EXECUTED
  /*                                                                  
   *  So if the operation failed, we have to restore iop->offset.     
   */                                                                 
                                                                      
  return status;                                                      
}                                                                     
   12e14:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

00008bdc <malloc>: size_t size ) { void *return_this; MSBUMP(malloc_calls, 1);
    8bdc:	e59f20cc 	ldr	r2, [pc, #204]	; 8cb0 <malloc+0xd4>           
    8be0:	e5923004 	ldr	r3, [r2, #4]                                  
    8be4:	e2833001 	add	r3, r3, #1	; 0x1                              
    8be8:	e92d4030 	push	{r4, r5, lr}                                 
    8bec:	e5823004 	str	r3, [r2, #4]                                  
    8bf0:	e1a05000 	mov	r5, r0                                        
                                                                      
  /*                                                                  
   *  If some free's have been deferred, then do them now.            
   */                                                                 
  malloc_deferred_frees_process();                                    
    8bf4:	ebffffef 	bl	8bb8 <malloc_deferred_frees_process>           
                                                                      
  /*                                                                  
   * Validate the parameters                                          
   */                                                                 
  if ( !size )                                                        
    8bf8:	e3550000 	cmp	r5, #0	; 0x0                                  
    8bfc:	0a000028 	beq	8ca4 <malloc+0xc8>                            
    return (void *) 0;                                                
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if not in correct system state.
   */                                                                 
  if ( _System_state_Is_up(_System_state_Get()) &&                    
    8c00:	e59f30ac 	ldr	r3, [pc, #172]	; 8cb4 <malloc+0xd8>           
    8c04:	e5933000 	ldr	r3, [r3]                                      
    8c08:	e3530003 	cmp	r3, #3	; 0x3                                  
    8c0c:	1a000002 	bne	8c1c <malloc+0x40>                            
    8c10:	ebffffd1 	bl	8b5c <malloc_is_system_state_OK>               <== NOT EXECUTED
    8c14:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    8c18:	0a000021 	beq	8ca4 <malloc+0xc8>                            <== NOT EXECUTED
   * Try to give a segment in the current heap if there is not        
   * enough space then try to grow the heap.                          
   * If this fails then return a NULL pointer.                        
   */                                                                 
                                                                      
  return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); 
    8c1c:	e59f0094 	ldr	r0, [pc, #148]	; 8cb8 <malloc+0xdc>           
    8c20:	e1a01005 	mov	r1, r5                                        
    8c24:	eb000365 	bl	99c0 <_Protected_heap_Allocate>                
                                                                      
  if ( !return_this ) {                                               
    8c28:	e2504000 	subs	r4, r0, #0	; 0x0                             
    8c2c:	1a00000d 	bne	8c68 <malloc+0x8c>                            
    if (rtems_malloc_sbrk_helpers)                                    
    8c30:	e59f3084 	ldr	r3, [pc, #132]	; 8cbc <malloc+0xe0>           <== NOT EXECUTED
    8c34:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    8c38:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8c3c:	0a000005 	beq	8c58 <malloc+0x7c>                            <== NOT EXECUTED
      return_this = (*rtems_malloc_sbrk_helpers->extend)( size );     
    8c40:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    8c44:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8c48:	e593f004 	ldr	pc, [r3, #4]                                  <== NOT EXECUTED
    if ( !return_this ) {                                             
    8c4c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
      errno = ENOMEM;                                                 
      return (void *) 0;                                              
    8c50:	11a04000 	movne	r4, r0                                      <== NOT EXECUTED
  return_this = _Protected_heap_Allocate( &RTEMS_Malloc_Heap, size ); 
                                                                      
  if ( !return_this ) {                                               
    if (rtems_malloc_sbrk_helpers)                                    
      return_this = (*rtems_malloc_sbrk_helpers->extend)( size );     
    if ( !return_this ) {                                             
    8c54:	1a000003 	bne	8c68 <malloc+0x8c>                            <== NOT EXECUTED
      errno = ENOMEM;                                                 
    8c58:	eb0006ed 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8c5c:	e3a0300c 	mov	r3, #12	; 0xc                                 <== NOT EXECUTED
    8c60:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8c64:	ea00000f 	b	8ca8 <malloc+0xcc>                              <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   *  If the user wants us to dirty the allocated memory, then do it. 
   */                                                                 
  if ( rtems_malloc_dirty_helper )                                    
    8c68:	e59f3050 	ldr	r3, [pc, #80]	; 8cc0 <malloc+0xe4>            
    8c6c:	e5933000 	ldr	r3, [r3]                                      
    8c70:	e3530000 	cmp	r3, #0	; 0x0                                  
    (*rtems_malloc_dirty_helper)( return_this, size );                
    8c74:	11a01005 	movne	r1, r5                                      
    8c78:	11a00004 	movne	r0, r4                                      
    8c7c:	11a0e00f 	movne	lr, pc                                      
    8c80:	112fff13 	bxne	r3                                           
                                                                      
  /*                                                                  
   *  If configured, update the statistics                            
   */                                                                 
  if ( rtems_malloc_statistics_helpers )                              
    8c84:	e59f3038 	ldr	r3, [pc, #56]	; 8cc4 <malloc+0xe8>            
    8c88:	e5933000 	ldr	r3, [r3]                                      
    8c8c:	e3530000 	cmp	r3, #0	; 0x0                                  
    8c90:	0a000004 	beq	8ca8 <malloc+0xcc>                            
    (*rtems_malloc_statistics_helpers->at_malloc)(return_this);       
    8c94:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    8c98:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8c9c:	e593f004 	ldr	pc, [r3, #4]                                  <== NOT EXECUTED
    8ca0:	ea000000 	b	8ca8 <malloc+0xcc>                              <== NOT EXECUTED
    8ca4:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
    if (rtems_malloc_boundary_helpers)                                
      (*rtems_malloc_boundary_helpers->at_malloc)(return_this, size); 
  #endif                                                              
                                                                      
  return return_this;                                                 
}                                                                     
    8ca8:	e1a00004 	mov	r0, r4                                        
    8cac:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00008ba8 <malloc_deferred_free>: } void malloc_deferred_free( void *pointer ) {
    8ba8:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void rtems_chain_append(                         
  rtems_chain_control *the_chain,                                     
  rtems_chain_node    *the_node                                       
)                                                                     
{                                                                     
  _Chain_Append( the_chain, the_node );                               
    8bac:	e59f0000 	ldr	r0, [pc, #0]	; 8bb4 <malloc_deferred_free+0xc><== NOT EXECUTED
    8bb0:	eafff063 	b	4d44 <_Chain_Append>                            <== NOT EXECUTED
                                                                      

00008bb8 <malloc_deferred_frees_process>: { rtems_chain_initialize_empty(&RTEMS_Malloc_GC_list); } void malloc_deferred_frees_process(void) {
    8bb8:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    8bbc:	ea000000 	b	8bc4 <malloc_deferred_frees_process+0xc>        
                                                                      
  /*                                                                  
   *  If some free's have been deferred, then do them now.            
   */                                                                 
  while ((to_be_freed = rtems_chain_get(&RTEMS_Malloc_GC_list)) != NULL)
    free(to_be_freed);                                                
    8bc0:	ebfffec2 	bl	86d0 <free>                                    <== NOT EXECUTED
 */                                                                   
RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(               
  rtems_chain_control *the_chain                                      
)                                                                     
{                                                                     
  return _Chain_Get( the_chain );                                     
    8bc4:	e59f000c 	ldr	r0, [pc, #12]	; 8bd8 <malloc_deferred_frees_process+0x20>
    8bc8:	eb000241 	bl	94d4 <_Chain_Get>                              
  rtems_chain_node  *to_be_freed;                                     
                                                                      
  /*                                                                  
   *  If some free's have been deferred, then do them now.            
   */                                                                 
  while ((to_be_freed = rtems_chain_get(&RTEMS_Malloc_GC_list)) != NULL)
    8bcc:	e3500000 	cmp	r0, #0	; 0x0                                  
    8bd0:	1afffffa 	bne	8bc0 <malloc_deferred_frees_process+0x8>      
    free(to_be_freed);                                                
}                                                                     
    8bd4:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
                                                                      

00008b5c <malloc_is_system_state_OK>: rtems_chain_control RTEMS_Malloc_GC_list; bool malloc_is_system_state_OK(void) { if ( _Thread_Dispatch_disable_level > 0 )
    8b5c:	e59f3020 	ldr	r3, [pc, #32]	; 8b84 <malloc_is_system_state_OK+0x28>
    8b60:	e5933000 	ldr	r3, [r3]                                      
    8b64:	e3530000 	cmp	r3, #0	; 0x0                                  
    8b68:	13a00000 	movne	r0, #0	; 0x0                                
    8b6c:	112fff1e 	bxne	lr                                           
    return false;                                                     
                                                                      
  if ( _ISR_Nest_level > 0 )                                          
    8b70:	e59f3010 	ldr	r3, [pc, #16]	; 8b88 <malloc_is_system_state_OK+0x2c>
    8b74:	e5933000 	ldr	r3, [r3]                                      
    8b78:	e2730001 	rsbs	r0, r3, #1	; 0x1                             
    8b7c:	33a00000 	movcc	r0, #0	; 0x0                                
    return false;                                                     
                                                                      
  return true;                                                        
}                                                                     
    8b80:	e12fff1e 	bx	lr                                             
                                                                      

000015a4 <mknod>: int mknod( const char *pathname, mode_t mode, dev_t dev ) {
    15a4:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
    15a8:	e1a08001 	mov	r8, r1                                        
  int                                 result;                         
                                                                      
  /*                                                                  
   * The file type is field within the mode. Check we have a sane mode set.
   */                                                                 
  switch (mode & S_IFMT) {                                            
    15ac:	e2011a0f 	and	r1, r1, #61440	; 0xf000                       
    15b0:	e3510901 	cmp	r1, #16384	; 0x4000                           
int mknod(                                                            
  const char *pathname,                                               
  mode_t      mode,                                                   
  dev_t       dev                                                     
)                                                                     
{                                                                     
    15b4:	e24dd018 	sub	sp, sp, #24	; 0x18                            
    15b8:	e1a04000 	mov	r4, r0                                        
    15bc:	e1a06002 	mov	r6, r2                                        
    15c0:	e1a07003 	mov	r7, r3                                        
  int                                 result;                         
                                                                      
  /*                                                                  
   * The file type is field within the mode. Check we have a sane mode set.
   */                                                                 
  switch (mode & S_IFMT) {                                            
    15c4:	0a00000b 	beq	15f8 <mknod+0x54>                             
    15c8:	8a000003 	bhi	15dc <mknod+0x38>                             
    15cc:	e3510a01 	cmp	r1, #4096	; 0x1000                            
    15d0:	0a00000a 	beq	1600 <mknod+0x5c>                             
    15d4:	e3510a02 	cmp	r1, #8192	; 0x2000                            
    15d8:	ea000002 	b	15e8 <mknod+0x44>                               
    15dc:	e3510a06 	cmp	r1, #24576	; 0x6000                           <== NOT EXECUTED
    15e0:	0a000004 	beq	15f8 <mknod+0x54>                             <== NOT EXECUTED
    15e4:	e3510902 	cmp	r1, #32768	; 0x8000                           <== NOT EXECUTED
    15e8:	0a000002 	beq	15f8 <mknod+0x54>                             
    case S_IFBLK:                                                     
    case S_IFREG:                                                     
    case S_IFIFO:                                                     
      break;                                                          
    default:                                                          
      rtems_set_errno_and_return_minus_one( EINVAL );                 
    15ec:	eb002488 	bl	a814 <__errno>                                 <== NOT EXECUTED
    15f0:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
    15f4:	ea000003 	b	1608 <mknod+0x64>                               <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( S_ISFIFO(mode) )                                               
    15f8:	e3510a01 	cmp	r1, #4096	; 0x1000                            
    15fc:	1a000004 	bne	1614 <mknod+0x70>                             
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
    1600:	eb002483 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1604:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    1608:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    160c:	e3e04000 	mvn	r4, #0	; 0x0                                  <== NOT EXECUTED
    1610:	ea00003d 	b	170c <mknod+0x168>                              <== NOT EXECUTED
                                                                      
  rtems_filesystem_get_start_loc( pathname, &i, &temp_loc );          
    1614:	e5d43000 	ldrb	r3, [r4]                                     
    1618:	e353005c 	cmp	r3, #92	; 0x5c                                
    161c:	1353002f 	cmpne	r3, #47	; 0x2f                              
    1620:	13a0e000 	movne	lr, #0	; 0x0                                
    1624:	03a0e001 	moveq	lr, #1	; 0x1                                
    1628:	0a000001 	beq	1634 <mknod+0x90>                             
    162c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1630:	1a000007 	bne	1654 <mknod+0xb0>                             <== NOT EXECUTED
    1634:	e59f30dc 	ldr	r3, [pc, #220]	; 1718 <mknod+0x174>           
    1638:	e5933000 	ldr	r3, [r3]                                      
    163c:	e2833014 	add	r3, r3, #20	; 0x14                            
    1640:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          
    1644:	e28dc004 	add	ip, sp, #4	; 0x4                              
    1648:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
    164c:	e3a02001 	mov	r2, #1	; 0x1                                  
    1650:	ea000006 	b	1670 <mknod+0xcc>                               
    1654:	e59f30bc 	ldr	r3, [pc, #188]	; 1718 <mknod+0x174>           <== NOT EXECUTED
    1658:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    165c:	e2833004 	add	r3, r3, #4	; 0x4                              <== NOT EXECUTED
    1660:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    1664:	e28dc004 	add	ip, sp, #4	; 0x4                              <== NOT EXECUTED
    1668:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          <== NOT EXECUTED
    166c:	e1a0200e 	mov	r2, lr                                        <== NOT EXECUTED
                                                                      
  if ( !temp_loc.ops->evalformake_h ) {                               
    1670:	e59d300c 	ldr	r3, [sp, #12]                                 
    1674:	e5933004 	ldr	r3, [r3, #4]                                  
    1678:	e3530000 	cmp	r3, #0	; 0x0                                  
    167c:	0affffdf 	beq	1600 <mknod+0x5c>                             
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
  }                                                                   
                                                                      
  result = (*temp_loc.ops->evalformake_h)(                            
    1680:	e28d5004 	add	r5, sp, #4	; 0x4                              
    1684:	e0840002 	add	r0, r4, r2                                    
    1688:	e1a01005 	mov	r1, r5                                        
    168c:	e28d2014 	add	r2, sp, #20	; 0x14                            
    1690:	e1a0e00f 	mov	lr, pc                                        
    1694:	e12fff13 	bx	r3                                             
    &pathname[i],                                                     
    &temp_loc,                                                        
    &name_start                                                       
  );                                                                  
  if ( result != 0 )                                                  
    1698:	e3500000 	cmp	r0, #0	; 0x0                                  
    169c:	1affffda 	bne	160c <mknod+0x68>                             
    return -1;                                                        
                                                                      
  if ( !temp_loc.ops->mknod_h ) {                                     
    16a0:	e59d300c 	ldr	r3, [sp, #12]                                 
    16a4:	e593c014 	ldr	ip, [r3, #20]                                 
    16a8:	e35c0000 	cmp	ip, #0	; 0x0                                  
    16ac:	1a000006 	bne	16cc <mknod+0x128>                            
    rtems_filesystem_freenode( &temp_loc );                           
    16b0:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
    16b4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    16b8:	0affffd0 	beq	1600 <mknod+0x5c>                             <== NOT EXECUTED
    16bc:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    16c0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    16c4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    16c8:	eaffffcc 	b	1600 <mknod+0x5c>                               <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
  }                                                                   
                                                                      
  result =  (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc );
    16cc:	e1a03007 	mov	r3, r7                                        
    16d0:	e58d5000 	str	r5, [sp]                                      
    16d4:	e1a01008 	mov	r1, r8                                        
    16d8:	e1a02006 	mov	r2, r6                                        
    16dc:	e59d0014 	ldr	r0, [sp, #20]                                 
    16e0:	e1a0e00f 	mov	lr, pc                                        
    16e4:	e12fff1c 	bx	ip                                             
                                                                      
  rtems_filesystem_freenode( &temp_loc );                             
    16e8:	e59d300c 	ldr	r3, [sp, #12]                                 
    16ec:	e3530000 	cmp	r3, #0	; 0x0                                  
  if ( !temp_loc.ops->mknod_h ) {                                     
    rtems_filesystem_freenode( &temp_loc );                           
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
  }                                                                   
                                                                      
  result =  (*temp_loc.ops->mknod_h)( name_start, mode, dev, &temp_loc );
    16f0:	e1a04000 	mov	r4, r0                                        
                                                                      
  rtems_filesystem_freenode( &temp_loc );                             
    16f4:	0a000004 	beq	170c <mknod+0x168>                            
    16f8:	e593301c 	ldr	r3, [r3, #28]                                 
    16fc:	e3530000 	cmp	r3, #0	; 0x0                                  
    1700:	11a00005 	movne	r0, r5                                      
    1704:	11a0e00f 	movne	lr, pc                                      
    1708:	112fff13 	bxne	r3                                           
                                                                      
  return result;                                                      
}                                                                     
    170c:	e1a00004 	mov	r0, r4                                        
    1710:	e28dd018 	add	sp, sp, #24	; 0x18                            
    1714:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

00008cf4 <mount>: const rtems_filesystem_operations_table *fs_ops, rtems_filesystem_options_t options, const char *device, const char *mount_point ) {
    8cf4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
                                                                      
  /*                                                                  
   *  Is there a file system operations table?                        
   */                                                                 
                                                                      
  if ( fs_ops == NULL ) {                                             
    8cf8:	e2519000 	subs	r9, r1, #0	; 0x0                             
  const rtems_filesystem_operations_table  *fs_ops,                   
  rtems_filesystem_options_t                options,                  
  const char                               *device,                   
  const char                               *mount_point               
)                                                                     
{                                                                     
    8cfc:	e24dd010 	sub	sp, sp, #16	; 0x10                            
    8d00:	e1a08000 	mov	r8, r0                                        
    8d04:	e1a07002 	mov	r7, r2                                        
    8d08:	e1a05003 	mov	r5, r3                                        
    8d0c:	e59d6030 	ldr	r6, [sp, #48]                                 
                                                                      
  /*                                                                  
   *  Is there a file system operations table?                        
   */                                                                 
                                                                      
  if ( fs_ops == NULL ) {                                             
    8d10:	0a000001 	beq	8d1c <mount+0x28>                             
                                                                      
  /*                                                                  
   *  Are the file system options valid?                              
   */                                                                 
                                                                      
  if ( options != RTEMS_FILESYSTEM_READ_ONLY &&                       
    8d14:	e3520001 	cmp	r2, #1	; 0x1                                  
    8d18:	9a000002 	bls	8d28 <mount+0x34>                             
       options != RTEMS_FILESYSTEM_READ_WRITE ) {                     
    errno = EINVAL;                                                   
    8d1c:	eb0006bc 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8d20:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
    8d24:	ea000015 	b	8d80 <mount+0x8c>                               <== NOT EXECUTED
    return -1;                                                        
  }                                                                   
                                                                      
  /* Do they support being mounted at all ? */                        
  if ( !fs_ops->fsmount_me_h ) {                                      
    8d28:	e5994024 	ldr	r4, [r9, #36]                                 
    8d2c:	e3540000 	cmp	r4, #0	; 0x0                                  
    8d30:	1a000005 	bne	8d4c <mount+0x58>                             
    errno = ENOTSUP;                                                  
    8d34:	eb0006b6 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8d38:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    8d3c:	e1a0a004 	mov	sl, r4                                        <== NOT EXECUTED
    8d40:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8d44:	e1a05004 	mov	r5, r4                                        <== NOT EXECUTED
    8d48:	ea000064 	b	8ee0 <mount+0x1ec>                              <== NOT EXECUTED
  /*                                                                  
   * Allocate a mount table entry                                     
   */                                                                 
                                                                      
   size = sizeof(rtems_filesystem_mount_table_entry_t);               
   if ( device )                                                      
    8d4c:	e3530000 	cmp	r3, #0	; 0x0                                  
    8d50:	03a00064 	moveq	r0, #100	; 0x64                             
    8d54:	0a000002 	beq	8d64 <mount+0x70>                             
     size += strlen( device ) + 1;                                    
    8d58:	e1a00003 	mov	r0, r3                                        <== NOT EXECUTED
    8d5c:	eb000be2 	bl	bcec <strlen>                                  <== NOT EXECUTED
    8d60:	e2800065 	add	r0, r0, #101	; 0x65                           <== NOT EXECUTED
   temp_mt_entry = malloc( size );                                    
    8d64:	ebffff9c 	bl	8bdc <malloc>                                  
                                                                      
   if ( !temp_mt_entry ) {                                            
    8d68:	e3500000 	cmp	r0, #0	; 0x0                                  
   */                                                                 
                                                                      
   size = sizeof(rtems_filesystem_mount_table_entry_t);               
   if ( device )                                                      
     size += strlen( device ) + 1;                                    
   temp_mt_entry = malloc( size );                                    
    8d6c:	e1a04000 	mov	r4, r0                                        
    8d70:	e1a0a000 	mov	sl, r0                                        
                                                                      
   if ( !temp_mt_entry ) {                                            
    8d74:	1a000003 	bne	8d88 <mount+0x94>                             
     errno = ENOMEM;                                                  
    8d78:	eb0006a5 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8d7c:	e3a0300c 	mov	r3, #12	; 0xc                                 <== NOT EXECUTED
    8d80:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8d84:	ea000061 	b	8f10 <mount+0x21c>                              <== NOT EXECUTED
     return -1;                                                       
   }                                                                  
                                                                      
   temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;                
   temp_mt_entry->options = options;                                  
   if ( device ) {                                                    
    8d88:	e3550000 	cmp	r5, #0	; 0x0                                  
     errno = ENOMEM;                                                  
     return -1;                                                       
   }                                                                  
                                                                      
   temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;                
   temp_mt_entry->options = options;                                  
    8d8c:	e5807028 	str	r7, [r0, #40]                                 
   if ( !temp_mt_entry ) {                                            
     errno = ENOMEM;                                                  
     return -1;                                                       
   }                                                                  
                                                                      
   temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;                
    8d90:	e5840024 	str	r0, [r4, #36]                                 
   if ( device ) {                                                    
     temp_mt_entry->dev =                                             
       (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t );
     strcpy( temp_mt_entry->dev, device );                            
   } else                                                             
     temp_mt_entry->dev = 0;                                          
    8d94:	05805060 	streq	r5, [r0, #96]                               
   }                                                                  
                                                                      
   temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;                
   temp_mt_entry->options = options;                                  
   if ( device ) {                                                    
     temp_mt_entry->dev =                                             
    8d98:	12803064 	addne	r3, r0, #100	; 0x64                         
       (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t );
     strcpy( temp_mt_entry->dev, device );                            
    8d9c:	11a00003 	movne	r0, r3                                      
    8da0:	11a01005 	movne	r1, r5                                      
   }                                                                  
                                                                      
   temp_mt_entry->mt_fs_root.mt_entry = temp_mt_entry;                
   temp_mt_entry->options = options;                                  
   if ( device ) {                                                    
     temp_mt_entry->dev =                                             
    8da4:	15843060 	strne	r3, [r4, #96]                               
       (char *)temp_mt_entry + sizeof( rtems_filesystem_mount_table_entry_t );
     strcpy( temp_mt_entry->dev, device );                            
    8da8:	1b000ba1 	blne	bc34 <strcpy>                                
  /*                                                                  
   *  The mount_point should be a directory with read/write/execute   
   *  permissions in the existing tree.                               
   */                                                                 
                                                                      
  if ( mount_point ) {                                                
    8dac:	e3560000 	cmp	r6, #0	; 0x0                                  
    8db0:	0a00002c 	beq	8e68 <mount+0x174>                            
                                                                      
    if ( rtems_filesystem_evaluate_path(                              
    8db4:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    8db8:	e3a01007 	mov	r1, #7	; 0x7                                  <== NOT EXECUTED
    8dbc:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    8dc0:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    8dc4:	ebffe14b 	bl	12f8 <rtems_filesystem_evaluate_path>          <== NOT EXECUTED
    8dc8:	e3700001 	cmn	r0, #1	; 0x1                                  <== NOT EXECUTED
    8dcc:	0a000042 	beq	8edc <mount+0x1e8>                            <== NOT EXECUTED
                                                                      
    /*                                                                
     * Test for node_type_h                                           
     */                                                               
                                                                      
    if (!loc.ops->node_type_h) {                                      
    8dd0:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
    8dd4:	e5933010 	ldr	r3, [r3, #16]                                 <== NOT EXECUTED
    8dd8:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8ddc:	0a000017 	beq	8e40 <mount+0x14c>                            <== NOT EXECUTED
                                                                      
    /*                                                                
     *  Test to see if it is a directory                              
     */                                                               
                                                                      
    if ( loc.ops->node_type_h( &loc ) != RTEMS_FILESYSTEM_DIRECTORY ) {
    8de0:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    8de4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8de8:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    8dec:	e3500001 	cmp	r0, #1	; 0x1                                  <== NOT EXECUTED
    8df0:	0a000004 	beq	8e08 <mount+0x114>                            <== NOT EXECUTED
      errno = ENOTDIR;                                                
    8df4:	eb000686 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8df8:	e3a03014 	mov	r3, #20	; 0x14                                <== NOT EXECUTED
    8dfc:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    8e00:	e1a0500d 	mov	r5, sp                                        <== NOT EXECUTED
    8e04:	ea000035 	b	8ee0 <mount+0x1ec>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   * For each mount table entry                                       
   */                                                                 
                                                                      
  for ( the_node = rtems_filesystem_mount_table_control.first;        
    8e08:	e59f1134 	ldr	r1, [pc, #308]	; 8f44 <mount+0x250>           <== NOT EXECUTED
        !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node );
        the_node = the_node->next ) {                                 
     the_mount_entry = (rtems_filesystem_mount_table_entry_t *) the_node;
     if ( the_mount_entry->mt_fs_root.node_access  == loc->node_access )
    8e0c:	e59d0000 	ldr	r0, [sp]                                      <== NOT EXECUTED
                                                                      
  /*                                                                  
   * For each mount table entry                                       
   */                                                                 
                                                                      
  for ( the_node = rtems_filesystem_mount_table_control.first;        
    8e10:	e4912004 	ldr	r2, [r1], #4                                  <== NOT EXECUTED
    8e14:	ea000003 	b	8e28 <mount+0x134>                              <== NOT EXECUTED
        !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node );
        the_node = the_node->next ) {                                 
     the_mount_entry = (rtems_filesystem_mount_table_entry_t *) the_node;
     if ( the_mount_entry->mt_fs_root.node_access  == loc->node_access )
    8e18:	e5923018 	ldr	r3, [r2, #24]                                 <== NOT EXECUTED
    8e1c:	e1530000 	cmp	r3, r0                                        <== NOT EXECUTED
    8e20:	0a000003 	beq	8e34 <mount+0x140>                            <== NOT EXECUTED
   * For each mount table entry                                       
   */                                                                 
                                                                      
  for ( the_node = rtems_filesystem_mount_table_control.first;        
        !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node );
        the_node = the_node->next ) {                                 
    8e24:	e5922000 	ldr	r2, [r2]                                      <== NOT EXECUTED
  /*                                                                  
   * For each mount table entry                                       
   */                                                                 
                                                                      
  for ( the_node = rtems_filesystem_mount_table_control.first;        
        !rtems_chain_is_tail( &rtems_filesystem_mount_table_control, the_node );
    8e28:	e1520001 	cmp	r2, r1                                        <== NOT EXECUTED
    8e2c:	1afffff9 	bne	8e18 <mount+0x124>                            <== NOT EXECUTED
    8e30:	ea000039 	b	8f1c <mount+0x228>                              <== NOT EXECUTED
    /*                                                                
     *  You can only mount one file system onto a single mount point. 
     */                                                               
                                                                      
    if ( Is_node_fs_root(  &loc ) ){                                  
      errno = EBUSY;                                                  
    8e34:	eb000676 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8e38:	e3a03010 	mov	r3, #16	; 0x10                                <== NOT EXECUTED
    8e3c:	eaffffee 	b	8dfc <mount+0x108>                              <== NOT EXECUTED
     *  This link to the parent is only done when we are dealing with system
     *  below the base file system                                    
     */                                                               
                                                                      
    if ( !loc.ops->mount_h ){                                         
      errno = ENOTSUP;                                                
    8e40:	eb000673 	bl	a814 <__errno>                                 <== NOT EXECUTED
    8e44:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    8e48:	eaffffeb 	b	8dfc <mount+0x108>                              <== NOT EXECUTED
      goto cleanup_and_bail;                                          
    }                                                                 
                                                                      
    if ( loc.ops->mount_h( temp_mt_entry ) ) {                        
    8e4c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    8e50:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8e54:	e12fff11 	bx	r1                                             <== NOT EXECUTED
    8e58:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    8e5c:	01a0500d 	moveq	r5, sp                                      <== NOT EXECUTED
    8e60:	0a000008 	beq	8e88 <mount+0x194>                            <== NOT EXECUTED
    8e64:	eaffffe5 	b	8e00 <mount+0x10c>                              <== NOT EXECUTED
     *  This is a mount of the base file system --> The               
     *  mt_point_node.node_access will be set to null to indicate that this
     *  is the root of the entire file system.                        
     */                                                               
                                                                      
    temp_mt_entry->mt_fs_root.node_access = NULL;                     
    8e68:	e5846018 	str	r6, [r4, #24]                                 
    temp_mt_entry->mt_fs_root.handlers = NULL;                        
    8e6c:	e584601c 	str	r6, [r4, #28]                                 
    temp_mt_entry->mt_fs_root.ops = NULL;                             
    8e70:	e5846020 	str	r6, [r4, #32]                                 
                                                                      
    temp_mt_entry->mt_point_node.node_access = NULL;                  
    8e74:	e5846008 	str	r6, [r4, #8]                                  
    temp_mt_entry->mt_point_node.handlers = NULL;                     
    8e78:	e584600c 	str	r6, [r4, #12]                                 
    temp_mt_entry->mt_point_node.ops = NULL;                          
    8e7c:	e5846010 	str	r6, [r4, #16]                                 
    temp_mt_entry->mt_point_node.mt_entry = NULL;                     
    8e80:	e5846014 	str	r6, [r4, #20]                                 
    8e84:	e1a05006 	mov	r5, r6                                        
  }                                                                   
                                                                      
  if ( fs_ops->fsmount_me_h( temp_mt_entry ) ) {                      
    8e88:	e1a00004 	mov	r0, r4                                        
    8e8c:	e1a0e00f 	mov	lr, pc                                        
    8e90:	e599f024 	ldr	pc, [r9, #36]                                 
    8e94:	e2506000 	subs	r6, r0, #0	; 0x0                             
    8e98:	0a000007 	beq	8ebc <mount+0x1c8>                            
	/* try to undo the mount operation */                                
	if ( loc.ops->unmount_h ) {                                          
    8e9c:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
    8ea0:	e5933028 	ldr	r3, [r3, #40]                                 <== NOT EXECUTED
    8ea4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8ea8:	0a00000c 	beq	8ee0 <mount+0x1ec>                            <== NOT EXECUTED
		loc.ops->unmount_h( temp_mt_entry );                                
    8eac:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    8eb0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    8eb4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    8eb8:	ea000008 	b	8ee0 <mount+0x1ec>                              <== NOT EXECUTED
RTEMS_INLINE_ROUTINE void rtems_chain_append(                         
  rtems_chain_control *the_chain,                                     
  rtems_chain_node    *the_node                                       
)                                                                     
{                                                                     
  _Chain_Append( the_chain, the_node );                               
    8ebc:	e59f0080 	ldr	r0, [pc, #128]	; 8f44 <mount+0x250>           
    8ec0:	e1a01004 	mov	r1, r4                                        
    8ec4:	ebffef9e 	bl	4d44 <_Chain_Append>                           
   */                                                                 
                                                                      
  rtems_chain_append( &rtems_filesystem_mount_table_control,          
                      &temp_mt_entry->Node );                         
                                                                      
  if ( mt_entry )                                                     
    8ec8:	e3580000 	cmp	r8, #0	; 0x0                                  
    8ecc:	01a00008 	moveq	r0, r8                                      
    *mt_entry = temp_mt_entry;                                        
    8ed0:	15884000 	strne	r4, [r8]                                    
    8ed4:	11a00006 	movne	r0, r6                                      
    8ed8:	ea00000d 	b	8f14 <mount+0x220>                              
    8edc:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return 0;                                                           
                                                                      
cleanup_and_bail:                                                     
                                                                      
  free( temp_mt_entry );                                              
    8ee0:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
    8ee4:	ebfffdf9 	bl	86d0 <free>                                    <== NOT EXECUTED
                                                                      
  if ( loc_to_free )                                                  
    8ee8:	e3550000 	cmp	r5, #0	; 0x0                                  <== NOT EXECUTED
    8eec:	0a000007 	beq	8f10 <mount+0x21c>                            <== NOT EXECUTED
    rtems_filesystem_freenode( loc_to_free );                         
    8ef0:	e5953008 	ldr	r3, [r5, #8]                                  <== NOT EXECUTED
    8ef4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8ef8:	0a000004 	beq	8f10 <mount+0x21c>                            <== NOT EXECUTED
    8efc:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
    8f00:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    8f04:	11a00005 	movne	r0, r5                                      <== NOT EXECUTED
    8f08:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    8f0c:	112fff13 	bxne	r3                                           <== NOT EXECUTED
    8f10:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  return -1;                                                          
}                                                                     
    8f14:	e28dd010 	add	sp, sp, #16	; 0x10                            
    8f18:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
     *  traverse the tree.                                            
     */                                                               
                                                                      
    temp_mt_entry->mt_point_node.node_access = loc.node_access;       
    temp_mt_entry->mt_point_node.handlers = loc.handlers;             
    temp_mt_entry->mt_point_node.ops = loc.ops;                       
    8f1c:	e99d000c 	ldmib	sp, {r2, r3}                                <== NOT EXECUTED
    /*                                                                
     *  This link to the parent is only done when we are dealing with system
     *  below the base file system                                    
     */                                                               
                                                                      
    if ( !loc.ops->mount_h ){                                         
    8f20:	e5931020 	ldr	r1, [r3, #32]                                 <== NOT EXECUTED
     *  until the system is unmounted.  It may be needed to correctly 
     *  traverse the tree.                                            
     */                                                               
                                                                      
    temp_mt_entry->mt_point_node.node_access = loc.node_access;       
    temp_mt_entry->mt_point_node.handlers = loc.handlers;             
    8f24:	e584200c 	str	r2, [r4, #12]                                 <== NOT EXECUTED
    temp_mt_entry->mt_point_node.ops = loc.ops;                       
    temp_mt_entry->mt_point_node.mt_entry = loc.mt_entry;             
    8f28:	e59d200c 	ldr	r2, [sp, #12]                                 <== NOT EXECUTED
    /*                                                                
     *  This link to the parent is only done when we are dealing with system
     *  below the base file system                                    
     */                                                               
                                                                      
    if ( !loc.ops->mount_h ){                                         
    8f2c:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
     *  may have been allocated in loc should not be sent to freenode 
     *  until the system is unmounted.  It may be needed to correctly 
     *  traverse the tree.                                            
     */                                                               
                                                                      
    temp_mt_entry->mt_point_node.node_access = loc.node_access;       
    8f30:	e5840008 	str	r0, [r4, #8]                                  <== NOT EXECUTED
    temp_mt_entry->mt_point_node.handlers = loc.handlers;             
    temp_mt_entry->mt_point_node.ops = loc.ops;                       
    temp_mt_entry->mt_point_node.mt_entry = loc.mt_entry;             
    8f34:	e5842014 	str	r2, [r4, #20]                                 <== NOT EXECUTED
     *  traverse the tree.                                            
     */                                                               
                                                                      
    temp_mt_entry->mt_point_node.node_access = loc.node_access;       
    temp_mt_entry->mt_point_node.handlers = loc.handlers;             
    temp_mt_entry->mt_point_node.ops = loc.ops;                       
    8f38:	e5843010 	str	r3, [r4, #16]                                 <== NOT EXECUTED
    /*                                                                
     *  This link to the parent is only done when we are dealing with system
     *  below the base file system                                    
     */                                                               
                                                                      
    if ( !loc.ops->mount_h ){                                         
    8f3c:	1affffc2 	bne	8e4c <mount+0x158>                            <== NOT EXECUTED
    8f40:	eaffffbe 	b	8e40 <mount+0x14c>                              <== NOT EXECUTED
                                                                      

000017a8 <newlib_free_buffers>: */ int newlib_free_buffers( FILE *fp ) {
    17a8:	e92d4010 	push	{r4, lr}                                     
    17ac:	e1a04000 	mov	r4, r0                                        
  switch ( fileno(fp) ) {                                             
    17b0:	eb0024e4 	bl	ab48 <fileno>                                  
    17b4:	e3500002 	cmp	r0, #2	; 0x2                                  
    17b8:	8a00000b 	bhi	17ec <newlib_free_buffers+0x44>               
    case 0:                                                           
    case 1:                                                           
    case 2:                                                           
      if (fp->_flags & __SMBF) {                                      
    17bc:	e1d430bc 	ldrh	r3, [r4, #12]                                
    17c0:	e3130080 	tst	r3, #128	; 0x80                               
    17c4:	0a00000a 	beq	17f4 <newlib_free_buffers+0x4c>               
        free( fp->_bf._base );                                        
    17c8:	e5940010 	ldr	r0, [r4, #16]                                 
    17cc:	eb001bbf 	bl	86d0 <free>                                    
        fp->_flags &= ~__SMBF;                                        
    17d0:	e1d430bc 	ldrh	r3, [r4, #12]                                
        fp->_bf._base = fp->_p = (unsigned char *) NULL;              
    17d4:	e3a02000 	mov	r2, #0	; 0x0                                  
    case 0:                                                           
    case 1:                                                           
    case 2:                                                           
      if (fp->_flags & __SMBF) {                                      
        free( fp->_bf._base );                                        
        fp->_flags &= ~__SMBF;                                        
    17d8:	e3c33080 	bic	r3, r3, #128	; 0x80                           
        fp->_bf._base = fp->_p = (unsigned char *) NULL;              
    17dc:	e5842010 	str	r2, [r4, #16]                                 
    case 0:                                                           
    case 1:                                                           
    case 2:                                                           
      if (fp->_flags & __SMBF) {                                      
        free( fp->_bf._base );                                        
        fp->_flags &= ~__SMBF;                                        
    17e0:	e1c430bc 	strh	r3, [r4, #12]                                
        fp->_bf._base = fp->_p = (unsigned char *) NULL;              
    17e4:	e5842000 	str	r2, [r4]                                      
    17e8:	ea000001 	b	17f4 <newlib_free_buffers+0x4c>                 
      }                                                               
      break;                                                          
    default:                                                          
     fclose(fp);                                                      
    17ec:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    17f0:	eb002458 	bl	a958 <fclose>                                  <== NOT EXECUTED
  }                                                                   
  return 0;                                                           
}                                                                     
    17f4:	e3a00000 	mov	r0, #0	; 0x0                                  
    17f8:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

000019ec <open>: int open( const char *pathname, int flags, ... ) {
    19ec:	e92d000e 	push	{r1, r2, r3}                                 
    19f0:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
    19f4:	e24dd010 	sub	sp, sp, #16	; 0x10                            
    19f8:	e59da030 	ldr	sl, [sp, #48]                                 
  /*                                                                  
   * Set the Evaluation flags                                         
   */                                                                 
                                                                      
  eval_flags = 0;                                                     
  status = flags + 1;                                                 
    19fc:	e28a3001 	add	r3, sl, #1	; 0x1                              
  if ( ( status & _FREAD ) == _FREAD )                                
    1a00:	e2132001 	ands	r2, r3, #1	; 0x1                             
    1a04:	01a04002 	moveq	r4, r2                                      
    1a08:	13a04004 	movne	r4, #4	; 0x4                                
    eval_flags |= RTEMS_LIBIO_PERMS_READ;                             
  if ( ( status & _FWRITE ) == _FWRITE )                              
    1a0c:	e3130002 	tst	r3, #2	; 0x2                                  
    eval_flags |= RTEMS_LIBIO_PERMS_WRITE;                            
    1a10:	13844002 	orrne	r4, r4, #2	; 0x2                            
int open(                                                             
  const char   *pathname,                                             
  int           flags,                                                
  ...                                                                 
)                                                                     
{                                                                     
    1a14:	e1a08000 	mov	r8, r0                                        
    eval_flags |= RTEMS_LIBIO_PERMS_WRITE;                            
                                                                      
                                                                      
  va_start(ap, flags);                                                
                                                                      
  mode = va_arg( ap, int );                                           
    1a18:	e59d9034 	ldr	r9, [sp, #52]                                 
   *             code does not require changes here since network file
   *             descriptors are obtained using socket(), not open(). 
   */                                                                 
                                                                      
  /* allocate a file control block */                                 
  iop = rtems_libio_allocate();                                       
    1a1c:	eb001c0e 	bl	8a5c <rtems_libio_allocate>                    
  if ( iop == 0 ) {                                                   
    1a20:	e2507000 	subs	r7, r0, #0	; 0x0                             
    1a24:	03a06017 	moveq	r6, #23	; 0x17                              
    1a28:	0a00006b 	beq	1bdc <open+0x1f0>                             
                                                                      
  /*                                                                  
   *  See if the file exists.                                         
   */                                                                 
                                                                      
  status = rtems_filesystem_evaluate_path(                            
    1a2c:	e1a01004 	mov	r1, r4                                        
    1a30:	e1a00008 	mov	r0, r8                                        
    1a34:	e1a0200d 	mov	r2, sp                                        
    1a38:	e3a03001 	mov	r3, #1	; 0x1                                  
    1a3c:	ebfffe2d 	bl	12f8 <rtems_filesystem_evaluate_path>          
     pathname, eval_flags, &loc, true );                              
                                                                      
  if ( status == -1 ) {                                               
    1a40:	e3700001 	cmn	r0, #1	; 0x1                                  
                                                                      
  /*                                                                  
   *  See if the file exists.                                         
   */                                                                 
                                                                      
  status = rtems_filesystem_evaluate_path(                            
    1a44:	e1a0500d 	mov	r5, sp                                        
     pathname, eval_flags, &loc, true );                              
                                                                      
  if ( status == -1 ) {                                               
    1a48:	1a00001a 	bne	1ab8 <open+0xcc>                              
    if ( errno != ENOENT ) {                                          
    1a4c:	eb002370 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1a50:	e5900000 	ldr	r0, [r0]                                      <== NOT EXECUTED
    1a54:	e3500002 	cmp	r0, #2	; 0x2                                  <== NOT EXECUTED
    1a58:	1a00000a 	bne	1a88 <open+0x9c>                              <== NOT EXECUTED
      rc = errno;                                                     
      goto done;                                                      
    }                                                                 
                                                                      
    /* If the file does not exist and we are not trying to create it--> error */
    if ( !(flags & O_CREAT) ) {                                       
    1a5c:	e21a3c02 	ands	r3, sl, #512	; 0x200                         <== NOT EXECUTED
    1a60:	01a06000 	moveq	r6, r0                                      <== NOT EXECUTED
    1a64:	01a04003 	moveq	r4, r3                                      <== NOT EXECUTED
    1a68:	0a00004e 	beq	1ba8 <open+0x1bc>                             <== NOT EXECUTED
      rc = ENOENT;                                                    
      goto done;                                                      
    }                                                                 
                                                                      
    /* Create the node for the new regular file */                    
    rc = mknod( pathname, S_IFREG | mode, 0LL );                      
    1a6c:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
    1a70:	e3891902 	orr	r1, r9, #32768	; 0x8000                       <== NOT EXECUTED
    1a74:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    1a78:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    1a7c:	ebfffec8 	bl	15a4 <mknod>                                   <== NOT EXECUTED
    if ( rc ) {                                                       
    1a80:	e2504000 	subs	r4, r0, #0	; 0x0                             <== NOT EXECUTED
    1a84:	0a000002 	beq	1a94 <open+0xa8>                              <== NOT EXECUTED
      rc = errno;                                                     
    1a88:	eb002361 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1a8c:	e5906000 	ldr	r6, [r0]                                      <== NOT EXECUTED
    1a90:	ea000041 	b	1b9c <open+0x1b0>                               <== NOT EXECUTED
      goto done;                                                      
    }                                                                 
                                                                      
    /* Sanity check to see if the file name exists after the mknod() */
    status = rtems_filesystem_evaluate_path( pathname, 0x0, &loc, true );
    1a94:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    1a98:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
    1a9c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    1aa0:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    1aa4:	ebfffe13 	bl	12f8 <rtems_filesystem_evaluate_path>          <== NOT EXECUTED
    if ( status != 0 ) {   /* The file did not exist */               
    1aa8:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    1aac:	13a0600d 	movne	r6, #13	; 0xd                               <== NOT EXECUTED
    1ab0:	1a00003c 	bne	1ba8 <open+0x1bc>                             <== NOT EXECUTED
    1ab4:	ea000004 	b	1acc <open+0xe0>                                <== NOT EXECUTED
      rc = EACCES;                                                    
      goto done;                                                      
    }                                                                 
                                                                      
  } else if ((flags & (O_EXCL|O_CREAT)) == (O_EXCL|O_CREAT)) {        
    1ab8:	e20a3c0a 	and	r3, sl, #2560	; 0xa00                         
    1abc:	e3530c0a 	cmp	r3, #2560	; 0xa00                             
    1ac0:	01a0400d 	moveq	r4, sp                                      
    1ac4:	03a06011 	moveq	r6, #17	; 0x11                              
    1ac8:	0a000036 	beq	1ba8 <open+0x1bc>                             
   *  Fill in the file control block based on the loc structure       
   *  returned by successful path evaluation.                         
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
  iop->file_info  = loc.node_access;                                  
    1acc:	e28d5010 	add	r5, sp, #16	; 0x10                            
    1ad0:	e5353010 	ldr	r3, [r5, #-16]!                               
    1ad4:	e587302c 	str	r3, [r7, #44]                                 
  /*                                                                  
   *  Fill in the file control block based on the loc structure       
   *  returned by successful path evaluation.                         
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
    1ad8:	e59d3004 	ldr	r3, [sp, #4]                                  
  iop->file_info  = loc.node_access;                                  
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
    1adc:	e1a0000a 	mov	r0, sl                                        
  /*                                                                  
   *  Fill in the file control block based on the loc structure       
   *  returned by successful path evaluation.                         
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
    1ae0:	e5873030 	str	r3, [r7, #48]                                 
  iop->file_info  = loc.node_access;                                  
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
    1ae4:	e597400c 	ldr	r4, [r7, #12]                                 
    1ae8:	eb001c0e 	bl	8b28 <rtems_libio_fcntl_flags>                 
  iop->pathinfo   = loc;                                              
                                                                      
  if ( !iop->handlers->open_h ) {                                     
    1aec:	e5973030 	ldr	r3, [r7, #48]                                 
    1af0:	e5936000 	ldr	r6, [r3]                                      
   *  returned by successful path evaluation.                         
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
  iop->file_info  = loc.node_access;                                  
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
    1af4:	e1804004 	orr	r4, r0, r4                                    
  iop->pathinfo   = loc;                                              
    1af8:	e895000f 	ldm	r5, {r0, r1, r2, r3}                          
    1afc:	e287c010 	add	ip, r7, #16	; 0x10                            
                                                                      
  if ( !iop->handlers->open_h ) {                                     
    1b00:	e3560000 	cmp	r6, #0	; 0x0                                  
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
  iop->file_info  = loc.node_access;                                  
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
  iop->pathinfo   = loc;                                              
    1b04:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
   *  returned by successful path evaluation.                         
   */                                                                 
                                                                      
  iop->handlers   = loc.handlers;                                     
  iop->file_info  = loc.node_access;                                  
  iop->flags     |= rtems_libio_fcntl_flags( flags );                 
    1b08:	e587400c 	str	r4, [r7, #12]                                 
  iop->pathinfo   = loc;                                              
                                                                      
  if ( !iop->handlers->open_h ) {                                     
    1b0c:	0a000040 	beq	1c14 <open+0x228>                             
    rc = ENOTSUP;                                                     
    goto done;                                                        
  }                                                                   
                                                                      
  rc = (*iop->handlers->open_h)( iop, pathname, flags, mode );        
    1b10:	e1a01008 	mov	r1, r8                                        
    1b14:	e1a03009 	mov	r3, r9                                        
    1b18:	e1a00007 	mov	r0, r7                                        
    1b1c:	e1a0200a 	mov	r2, sl                                        
    1b20:	e1a0e00f 	mov	lr, pc                                        
    1b24:	e12fff16 	bx	r6                                             
  if ( rc )                                                           
    1b28:	e2506000 	subs	r6, r0, #0	; 0x0                             
    1b2c:	11a0400d 	movne	r4, sp                                      
    1b30:	1a00001c 	bne	1ba8 <open+0x1bc>                             
                                                                      
  /*                                                                  
   *  Optionally truncate the file.                                   
   */                                                                 
                                                                      
  if ( (flags & O_TRUNC) == O_TRUNC ) {                               
    1b34:	e31a0b01 	tst	sl, #1024	; 0x400                             
    1b38:	0a00002b 	beq	1bec <open+0x200>                             
    rc = ftruncate( iop - rtems_libio_iops, 0 );                      
    1b3c:	e59f30dc 	ldr	r3, [pc, #220]	; 1c20 <open+0x234>            <== NOT EXECUTED
    1b40:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    1b44:	e59f20d8 	ldr	r2, [pc, #216]	; 1c24 <open+0x238>            <== NOT EXECUTED
    1b48:	e0633007 	rsb	r3, r3, r7                                    <== NOT EXECUTED
    1b4c:	e1a03143 	asr	r3, r3, #2                                    <== NOT EXECUTED
    1b50:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    1b54:	e0000392 	mul	r0, r2, r3                                    <== NOT EXECUTED
    1b58:	eb001b04 	bl	8770 <ftruncate>                               <== NOT EXECUTED
    if ( rc ) {                                                       
    1b5c:	e2506000 	subs	r6, r0, #0	; 0x0                             <== NOT EXECUTED
    1b60:	0a000021 	beq	1bec <open+0x200>                             <== NOT EXECUTED
      if(errno) rc = errno;                                           
    1b64:	eb00232a 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1b68:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
    1b6c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1b70:	0a000001 	beq	1b7c <open+0x190>                             <== NOT EXECUTED
    1b74:	eb002326 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1b78:	e5906000 	ldr	r6, [r0]                                      <== NOT EXECUTED
      close( iop - rtems_libio_iops );                                
    1b7c:	e59f309c 	ldr	r3, [pc, #156]	; 1c20 <open+0x234>            <== NOT EXECUTED
    1b80:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    1b84:	e59f2098 	ldr	r2, [pc, #152]	; 1c24 <open+0x238>            <== NOT EXECUTED
    1b88:	e0633007 	rsb	r3, r3, r7                                    <== NOT EXECUTED
    1b8c:	e1a03143 	asr	r3, r3, #2                                    <== NOT EXECUTED
    1b90:	e0000392 	mul	r0, r2, r3                                    <== NOT EXECUTED
    1b94:	eb001aa3 	bl	8628 <close>                                   <== NOT EXECUTED
    1b98:	e3a07000 	mov	r7, #0	; 0x0                                  <== NOT EXECUTED
   */                                                                 
                                                                      
done:                                                                 
  va_end(ap);                                                         
                                                                      
  if ( rc ) {                                                         
    1b9c:	e3560000 	cmp	r6, #0	; 0x0                                  <== NOT EXECUTED
    1ba0:	0a000011 	beq	1bec <open+0x200>                             <== NOT EXECUTED
    1ba4:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
    if ( iop )                                                        
    1ba8:	e3570000 	cmp	r7, #0	; 0x0                                  <== NOT EXECUTED
      rtems_libio_free( iop );                                        
    1bac:	11a00007 	movne	r0, r7                                      <== NOT EXECUTED
    1bb0:	1b001b92 	blne	8a00 <rtems_libio_free>                      <== NOT EXECUTED
    if ( loc_to_free )                                                
    1bb4:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    1bb8:	0a000007 	beq	1bdc <open+0x1f0>                             <== NOT EXECUTED
      rtems_filesystem_freenode( loc_to_free );                       
    1bbc:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
    1bc0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1bc4:	0a000004 	beq	1bdc <open+0x1f0>                             <== NOT EXECUTED
    1bc8:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
    1bcc:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1bd0:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
    1bd4:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    1bd8:	112fff13 	bxne	r3                                           <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( rc );                       
    1bdc:	eb00230c 	bl	a814 <__errno>                                 
    1be0:	e5806000 	str	r6, [r0]                                      
    1be4:	e3e00000 	mvn	r0, #0	; 0x0                                  
    1be8:	ea000005 	b	1c04 <open+0x218>                               
  }                                                                   
                                                                      
  return iop - rtems_libio_iops;                                      
    1bec:	e59f302c 	ldr	r3, [pc, #44]	; 1c20 <open+0x234>             
    1bf0:	e5933000 	ldr	r3, [r3]                                      
    1bf4:	e59f2028 	ldr	r2, [pc, #40]	; 1c24 <open+0x238>             
    1bf8:	e0633007 	rsb	r3, r3, r7                                    
    1bfc:	e1a03143 	asr	r3, r3, #2                                    
    1c00:	e0000392 	mul	r0, r2, r3                                    
}                                                                     
    1c04:	e28dd010 	add	sp, sp, #16	; 0x10                            
    1c08:	e8bd47f0 	pop	{r4, r5, r6, r7, r8, r9, sl, lr}              
    1c0c:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    1c10:	e12fff1e 	bx	lr                                             
    if ( loc_to_free )                                                
      rtems_filesystem_freenode( loc_to_free );                       
    rtems_set_errno_and_return_minus_one( rc );                       
  }                                                                   
                                                                      
  return iop - rtems_libio_iops;                                      
    1c14:	e1a0400d 	mov	r4, sp                                        <== NOT EXECUTED
    1c18:	e3a06086 	mov	r6, #134	; 0x86                               <== NOT EXECUTED
    1c1c:	eaffffe1 	b	1ba8 <open+0x1bc>                               <== NOT EXECUTED
                                                                      

00001988 <open_dev_console>: int error_code = 'S' << 24 | 'T' << 16 | 'D' << 8; /* * Attempt to open /dev/console. */ if ((stdin_fd = open("/dev/console", O_RDONLY, 0)) == -1) {
    1988:	e3a01000 	mov	r1, #0	; 0x0                                  
/*                                                                    
 *  This is a replaceable stub                                        
 */                                                                   
                                                                      
void open_dev_console(void)                                           
{                                                                     
    198c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  int error_code = 'S' << 24 | 'T' << 16 | 'D' << 8;                  
                                                                      
  /*                                                                  
   * Attempt to open /dev/console.                                    
   */                                                                 
  if ((stdin_fd = open("/dev/console", O_RDONLY, 0)) == -1) {         
    1990:	e59f0048 	ldr	r0, [pc, #72]	; 19e0 <open_dev_console+0x58>  
    1994:	e1a02001 	mov	r2, r1                                        
    1998:	eb000013 	bl	19ec <open>                                    
    199c:	e3700001 	cmn	r0, #1	; 0x1                                  
    19a0:	049df004 	popeq	{pc}		; (ldreq pc, [sp], #4)                
                                                                      
  /*                                                                  
   *  But if we find /dev/console once, we better find it twice more  
   *  or something is REALLY wrong.                                   
   */                                                                 
  if ((stdout_fd = open("/dev/console", O_WRONLY, 0)) == -1)          
    19a4:	e59f0034 	ldr	r0, [pc, #52]	; 19e0 <open_dev_console+0x58>  
    19a8:	e3a01001 	mov	r1, #1	; 0x1                                  
    19ac:	e3a02000 	mov	r2, #0	; 0x0                                  
    19b0:	eb00000d 	bl	19ec <open>                                    
    19b4:	e3700001 	cmn	r0, #1	; 0x1                                  
    rtems_fatal_error_occurred( error_code | '1' );                   
    19b8:	059f0024 	ldreq	r0, [pc, #36]	; 19e4 <open_dev_console+0x5c>
                                                                      
  /*                                                                  
   *  But if we find /dev/console once, we better find it twice more  
   *  or something is REALLY wrong.                                   
   */                                                                 
  if ((stdout_fd = open("/dev/console", O_WRONLY, 0)) == -1)          
    19bc:	0a000006 	beq	19dc <open_dev_console+0x54>                  
    rtems_fatal_error_occurred( error_code | '1' );                   
                                                                      
  if ((stderr_fd = open("/dev/console", O_WRONLY, 0)) == -1)          
    19c0:	e59f0018 	ldr	r0, [pc, #24]	; 19e0 <open_dev_console+0x58>  
    19c4:	e3a01001 	mov	r1, #1	; 0x1                                  
    19c8:	e3a02000 	mov	r2, #0	; 0x0                                  
    19cc:	eb000006 	bl	19ec <open>                                    
    19d0:	e3700001 	cmn	r0, #1	; 0x1                                  
    19d4:	149df004 	popne	{pc}		; (ldrne pc, [sp], #4)                
    rtems_fatal_error_occurred( error_code | '2' );                   
    19d8:	e59f0008 	ldr	r0, [pc, #8]	; 19e8 <open_dev_console+0x60>   <== NOT EXECUTED
    19dc:	eb000c0f 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
                                                                      

000025e8 <oproc>: /* * Handle output processing */ static void oproc (unsigned char c, struct rtems_termios_tty *tty) {
    25e8:	e92d4010 	push	{r4, lr}                                     
	int	i;                                                               
                                                                      
	if (tty->termios.c_oflag & OPOST) {                                  
    25ec:	e5912034 	ldr	r2, [r1, #52]                                 
/*                                                                    
 * Handle output processing                                           
 */                                                                   
static void                                                           
oproc (unsigned char c, struct rtems_termios_tty *tty)                
{                                                                     
    25f0:	e24dd004 	sub	sp, sp, #4	; 0x4                              
	int	i;                                                               
                                                                      
	if (tty->termios.c_oflag & OPOST) {                                  
    25f4:	e3120001 	tst	r2, #1	; 0x1                                  
/*                                                                    
 * Handle output processing                                           
 */                                                                   
static void                                                           
oproc (unsigned char c, struct rtems_termios_tty *tty)                
{                                                                     
    25f8:	e1a04001 	mov	r4, r1                                        
    25fc:	e5cd0000 	strb	r0, [sp]                                     
	int	i;                                                               
                                                                      
	if (tty->termios.c_oflag & OPOST) {                                  
    2600:	0a000044 	beq	2718 <oproc+0x130>                            
		switch (c) {                                                        
    2604:	e5dd1000 	ldrb	r1, [sp]                                     
    2608:	e2413008 	sub	r3, r1, #8	; 0x8                              
    260c:	e3530005 	cmp	r3, #5	; 0x5                                  
    2610:	979ff103 	ldrls	pc, [pc, r3, lsl #2]                        
    2614:	ea00002d 	b	26d0 <oproc+0xe8>                               
    2618:	000026bc 	.word	0x000026bc                                  
    261c:	00002690 	.word	0x00002690                                  <== NOT EXECUTED
    2620:	00002630 	.word	0x00002630                                  <== NOT EXECUTED
    2624:	000026d0 	.word	0x000026d0                                  <== NOT EXECUTED
    2628:	000026d0 	.word	0x000026d0                                  <== NOT EXECUTED
    262c:	0000265c 	.word	0x0000265c                                  <== NOT EXECUTED
		case '\n':                                                          
			if (tty->termios.c_oflag & ONLRET)                                 
    2630:	e3120020 	tst	r2, #32	; 0x20                                
				tty->column = 0;                                                  
    2634:	13a03000 	movne	r3, #0	; 0x0                                
    2638:	15843028 	strne	r3, [r4, #40]                               
			if (tty->termios.c_oflag & ONLCR) {                                
    263c:	e5943034 	ldr	r3, [r4, #52]                                 
    2640:	e3130004 	tst	r3, #4	; 0x4                                  
    2644:	0a000033 	beq	2718 <oproc+0x130>                            
				rtems_termios_puts ("\r", 1, tty);                                
    2648:	e59f00e0 	ldr	r0, [pc, #224]	; 2730 <oproc+0x148>           
    264c:	e3a01001 	mov	r1, #1	; 0x1                                  
    2650:	e1a02004 	mov	r2, r4                                        
    2654:	ebffff9f 	bl	24d8 <rtems_termios_puts>                      
    2658:	ea00000a 	b	2688 <oproc+0xa0>                               
				tty->column = 0;                                                  
			}                                                                  
			break;                                                             
                                                                      
		case '\r':                                                          
			if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0))          
    265c:	e3120010 	tst	r2, #16	; 0x10                                <== NOT EXECUTED
    2660:	0a000002 	beq	2670 <oproc+0x88>                             <== NOT EXECUTED
    2664:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    2668:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    266c:	0a00002d 	beq	2728 <oproc+0x140>                            <== NOT EXECUTED
				return;                                                           
			if (tty->termios.c_oflag & OCRNL) {                                
    2670:	e2123008 	ands	r3, r2, #8	; 0x8                             <== NOT EXECUTED
    2674:	0a000026 	beq	2714 <oproc+0x12c>                            <== NOT EXECUTED
				c = '\n';                                                         
    2678:	e3a0300a 	mov	r3, #10	; 0xa                                 <== NOT EXECUTED
				if (tty->termios.c_oflag & ONLRET)                                
    267c:	e3120020 	tst	r2, #32	; 0x20                                <== NOT EXECUTED
                                                                      
		case '\r':                                                          
			if ((tty->termios.c_oflag & ONOCR) && (tty->column == 0))          
				return;                                                           
			if (tty->termios.c_oflag & OCRNL) {                                
				c = '\n';                                                         
    2680:	e5cd3000 	strb	r3, [sp]                                     <== NOT EXECUTED
				if (tty->termios.c_oflag & ONLRET)                                
    2684:	0a000023 	beq	2718 <oproc+0x130>                            <== NOT EXECUTED
					tty->column = 0;                                                 
    2688:	e3a03000 	mov	r3, #0	; 0x0                                  
    268c:	ea000020 	b	2714 <oproc+0x12c>                              
			}                                                                  
			tty->column = 0;                                                   
			break;                                                             
                                                                      
		case '\t':                                                          
			i = 8 - (tty->column & 7);                                         
    2690:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
			if ((tty->termios.c_oflag & TABDLY) == XTABS) {                    
    2694:	e2022b06 	and	r2, r2, #6144	; 0x1800                        <== NOT EXECUTED
			}                                                                  
			tty->column = 0;                                                   
			break;                                                             
                                                                      
		case '\t':                                                          
			i = 8 - (tty->column & 7);                                         
    2698:	e2031007 	and	r1, r3, #7	; 0x7                              <== NOT EXECUTED
    269c:	e2611008 	rsb	r1, r1, #8	; 0x8                              <== NOT EXECUTED
			if ((tty->termios.c_oflag & TABDLY) == XTABS) {                    
    26a0:	e3520b06 	cmp	r2, #6144	; 0x1800                            <== NOT EXECUTED
    26a4:	e0813003 	add	r3, r1, r3                                    <== NOT EXECUTED
    26a8:	1a000019 	bne	2714 <oproc+0x12c>                            <== NOT EXECUTED
				tty->column += i;                                                 
    26ac:	e5843028 	str	r3, [r4, #40]                                 <== NOT EXECUTED
				rtems_termios_puts ( "        ",  i, tty);                        
    26b0:	e1a02004 	mov	r2, r4                                        <== NOT EXECUTED
    26b4:	e59f0078 	ldr	r0, [pc, #120]	; 2734 <oproc+0x14c>           <== NOT EXECUTED
    26b8:	ea000019 	b	2724 <oproc+0x13c>                              <== NOT EXECUTED
			}                                                                  
			tty->column += i;                                                  
			break;                                                             
                                                                      
		case '\b':                                                          
			if (tty->column > 0)                                               
    26bc:	e5943028 	ldr	r3, [r4, #40]                                 <== NOT EXECUTED
    26c0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
				tty->column--;                                                    
    26c4:	c2433001 	subgt	r3, r3, #1	; 0x1                            <== NOT EXECUTED
			}                                                                  
			tty->column += i;                                                  
			break;                                                             
                                                                      
		case '\b':                                                          
			if (tty->column > 0)                                               
    26c8:	ca000011 	bgt	2714 <oproc+0x12c>                            <== NOT EXECUTED
    26cc:	ea000011 	b	2718 <oproc+0x130>                              <== NOT EXECUTED
				tty->column--;                                                    
			break;                                                             
                                                                      
		default:                                                            
			if (tty->termios.c_oflag & OLCUC)                                  
    26d0:	e3120002 	tst	r2, #2	; 0x2                                  
    26d4:	0a000006 	beq	26f4 <oproc+0x10c>                            
				c = toupper(c);                                                   
    26d8:	e59f3058 	ldr	r3, [pc, #88]	; 2738 <oproc+0x150>            <== NOT EXECUTED
    26dc:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    26e0:	e7d33001 	ldrb	r3, [r3, r1]                                 <== NOT EXECUTED
    26e4:	e3130002 	tst	r3, #2	; 0x2                                  <== NOT EXECUTED
    26e8:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
    26ec:	12412020 	subne	r2, r1, #32	; 0x20                          <== NOT EXECUTED
    26f0:	e5cd2000 	strb	r2, [sp]                                     <== NOT EXECUTED
			if (!iscntrl(c))                                                   
    26f4:	e59f303c 	ldr	r3, [pc, #60]	; 2738 <oproc+0x150>            
    26f8:	e5932000 	ldr	r2, [r3]                                      
    26fc:	e5dd3000 	ldrb	r3, [sp]                                     
    2700:	e7d23003 	ldrb	r3, [r2, r3]                                 
    2704:	e3130020 	tst	r3, #32	; 0x20                                
    2708:	1a000002 	bne	2718 <oproc+0x130>                            
				tty->column++;                                                    
    270c:	e5943028 	ldr	r3, [r4, #40]                                 
    2710:	e2833001 	add	r3, r3, #1	; 0x1                              
    2714:	e5843028 	str	r3, [r4, #40]                                 
			break;                                                             
		}                                                                   
	}                                                                    
	rtems_termios_puts (&c, 1, tty);                                     
    2718:	e1a02004 	mov	r2, r4                                        
    271c:	e1a0000d 	mov	r0, sp                                        
    2720:	e3a01001 	mov	r1, #1	; 0x1                                  
    2724:	ebffff6b 	bl	24d8 <rtems_termios_puts>                      
}                                                                     
    2728:	e28dd004 	add	sp, sp, #4	; 0x4                              
    272c:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00012ebc <read>: ) { ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd );
   12ebc:	e59f30ac 	ldr	r3, [pc, #172]	; 12f70 <read+0xb4>            <== NOT EXECUTED
   12ec0:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
   12ec4:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
ssize_t read(                                                         
  int         fd,                                                     
  void       *buffer,                                                 
  size_t      count                                                   
)                                                                     
{                                                                     
   12ec8:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
   12ecc:	e1a0c000 	mov	ip, r0                                        <== NOT EXECUTED
   12ed0:	e1a06001 	mov	r6, r1                                        <== NOT EXECUTED
   12ed4:	e1a05002 	mov	r5, r2                                        <== NOT EXECUTED
  ssize_t      rc;                                                    
  rtems_libio_t *iop;                                                 
                                                                      
  rtems_libio_check_fd( fd );                                         
   12ed8:	2a000010 	bcs	12f20 <read+0x64>                             <== NOT EXECUTED
  iop = rtems_libio_iop( fd );                                        
   12edc:	e59f3090 	ldr	r3, [pc, #144]	; 12f74 <read+0xb8>            <== NOT EXECUTED
   12ee0:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
   12ee4:	e3a03034 	mov	r3, #52	; 0x34                                <== NOT EXECUTED
   12ee8:	e0240c93 	mla	r4, r3, ip, r0                                <== NOT EXECUTED
  rtems_libio_check_is_open( iop );                                   
   12eec:	e594300c 	ldr	r3, [r4, #12]                                 <== NOT EXECUTED
   12ef0:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
   12ef4:	0a000009 	beq	12f20 <read+0x64>                             <== NOT EXECUTED
  rtems_libio_check_buffer( buffer );                                 
   12ef8:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
   12efc:	1a000002 	bne	12f0c <read+0x50>                             <== NOT EXECUTED
   12f00:	ebffde43 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12f04:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
   12f08:	ea00000d 	b	12f44 <read+0x88>                               <== NOT EXECUTED
  rtems_libio_check_count( count );                                   
   12f0c:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
   12f10:	01a00002 	moveq	r0, r2                                      <== NOT EXECUTED
   12f14:	08bd8070 	popeq	{r4, r5, r6, pc}                            <== NOT EXECUTED
  rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_READ, EBADF );
   12f18:	e3130002 	tst	r3, #2	; 0x2                                  <== NOT EXECUTED
   12f1c:	1a000002 	bne	12f2c <read+0x70>                             <== NOT EXECUTED
   12f20:	ebffde3b 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12f24:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
   12f28:	ea000005 	b	12f44 <read+0x88>                               <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Now process the read().                                         
   */                                                                 
                                                                      
  if ( !iop->handlers->read_h )                                       
   12f2c:	e5943030 	ldr	r3, [r4, #48]                                 <== NOT EXECUTED
   12f30:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
   12f34:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
   12f38:	1a000004 	bne	12f50 <read+0x94>                             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   12f3c:	ebffde34 	bl	a814 <__errno>                                 <== NOT EXECUTED
   12f40:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
   12f44:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
   12f48:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
   12f4c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  rc = (*iop->handlers->read_h)( iop, buffer, count );                
   12f50:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
   12f54:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
   12f58:	e12fff13 	bx	r3                                             <== NOT EXECUTED
                                                                      
  if ( rc > 0 )                                                       
   12f5c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    iop->offset += rc;                                                
   12f60:	c5943008 	ldrgt	r3, [r4, #8]                                <== NOT EXECUTED
   12f64:	c0833000 	addgt	r3, r3, r0                                  <== NOT EXECUTED
   12f68:	c5843008 	strgt	r3, [r4, #8]                                <== NOT EXECUTED
                                                                      
  return rc;                                                          
}                                                                     
   12f6c:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

00012fdc <realloc>: { size_t old_size; char *new_area; size_t resize; MSBUMP(realloc_calls, 1);
   12fdc:	e92d4070 	push	{r4, r5, r6, lr}                             
   12fe0:	e59fc108 	ldr	ip, [pc, #264]	; 130f0 <realloc+0x114>        
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if in a critical section or ISR.
   */                                                                 
                                                                      
  if (_System_state_Is_up(_System_state_Get())) {                     
   12fe4:	e59f3108 	ldr	r3, [pc, #264]	; 130f4 <realloc+0x118>        
   12fe8:	e5932000 	ldr	r2, [r3]                                      
{                                                                     
  size_t  old_size;                                                   
  char   *new_area;                                                   
  size_t  resize;                                                     
                                                                      
  MSBUMP(realloc_calls, 1);                                           
   12fec:	e59c3010 	ldr	r3, [ip, #16]                                 
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if in a critical section or ISR.
   */                                                                 
                                                                      
  if (_System_state_Is_up(_System_state_Get())) {                     
   12ff0:	e3520003 	cmp	r2, #3	; 0x3                                  
{                                                                     
  size_t  old_size;                                                   
  char   *new_area;                                                   
  size_t  resize;                                                     
                                                                      
  MSBUMP(realloc_calls, 1);                                           
   12ff4:	e2833001 	add	r3, r3, #1	; 0x1                              
   12ff8:	e24dd004 	sub	sp, sp, #4	; 0x4                              
   12ffc:	e58c3010 	str	r3, [ip, #16]                                 
   13000:	e1a04000 	mov	r4, r0                                        
   13004:	e1a05001 	mov	r5, r1                                        
                                                                      
  /*                                                                  
   *  Do not attempt to allocate memory if in a critical section or ISR.
   */                                                                 
                                                                      
  if (_System_state_Is_up(_System_state_Get())) {                     
   13008:	1a000007 	bne	1302c <realloc+0x50>                          
    if (_Thread_Dispatch_disable_level > 0)                           
   1300c:	e59f30e4 	ldr	r3, [pc, #228]	; 130f8 <realloc+0x11c>        
   13010:	e5933000 	ldr	r3, [r3]                                      
   13014:	e3530000 	cmp	r3, #0	; 0x0                                  
   13018:	1a000030 	bne	130e0 <realloc+0x104>                         
      return (void *) 0;                                              
                                                                      
    if (_ISR_Nest_level > 0)                                          
   1301c:	e59f30d8 	ldr	r3, [pc, #216]	; 130fc <realloc+0x120>        
   13020:	e5933000 	ldr	r3, [r3]                                      
   13024:	e3530000 	cmp	r3, #0	; 0x0                                  
   13028:	1a00002c 	bne	130e0 <realloc+0x104>                         
  }                                                                   
                                                                      
  /*                                                                  
   * Continue with realloc().                                         
   */                                                                 
  if ( !ptr )                                                         
   1302c:	e3540000 	cmp	r4, #0	; 0x0                                  
   13030:	1a000003 	bne	13044 <realloc+0x68>                          
    return malloc( size );                                            
   13034:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
   13038:	ebffd6e7 	bl	8bdc <malloc>                                  <== NOT EXECUTED
   1303c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
   13040:	ea000027 	b	130e4 <realloc+0x108>                           <== NOT EXECUTED
                                                                      
  if ( !size ) {                                                      
   13044:	e3550000 	cmp	r5, #0	; 0x0                                  
   13048:	1a000003 	bne	1305c <realloc+0x80>                          
    free( ptr );                                                      
   1304c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
   13050:	ebffd59e 	bl	86d0 <free>                                    <== NOT EXECUTED
   13054:	e1a04005 	mov	r4, r5                                        <== NOT EXECUTED
   13058:	ea000021 	b	130e4 <realloc+0x108>                           <== NOT EXECUTED
    return (void *) 0;                                                
  }                                                                   
                                                                      
  if ( !_Protected_heap_Get_block_size(&RTEMS_Malloc_Heap, ptr, &old_size) ) {
   1305c:	e59f009c 	ldr	r0, [pc, #156]	; 13100 <realloc+0x124>        
   13060:	e1a01004 	mov	r1, r4                                        
   13064:	e1a0200d 	mov	r2, sp                                        
   13068:	eb000054 	bl	131c0 <_Protected_heap_Get_block_size>         
   1306c:	e2506000 	subs	r6, r0, #0	; 0x0                             
   13070:	1a000003 	bne	13084 <realloc+0xa8>                          
    errno = EINVAL;                                                   
   13074:	ebffdde6 	bl	a814 <__errno>                                 
   13078:	e3a03016 	mov	r3, #22	; 0x16                                
   1307c:	e5803000 	str	r3, [r0]                                      
   13080:	ea000014 	b	130d8 <realloc+0xfc>                            
  #if defined(RTEMS_MALLOC_BOUNDARY_HELPERS)                          
    if (rtems_malloc_boundary_helpers)                                
      resize += (*rtems_malloc_boundary_helpers->overhead)();         
  #endif                                                              
                                                                      
  if ( _Protected_heap_Resize_block( &RTEMS_Malloc_Heap, ptr, resize ) ) {
   13084:	e59f0074 	ldr	r0, [pc, #116]	; 13100 <realloc+0x124>        
   13088:	e1a01004 	mov	r1, r4                                        
   1308c:	e1a02005 	mov	r2, r5                                        
   13090:	eb00005b 	bl	13204 <_Protected_heap_Resize_block>           
   13094:	e3500000 	cmp	r0, #0	; 0x0                                  
   13098:	1a000011 	bne	130e4 <realloc+0x108>                         
   *  There used to be a free on this error case but it is wrong to   
   *  free the memory per OpenGroup Single UNIX Specification V2      
   *  and the C Standard.                                             
   */                                                                 
                                                                      
  new_area = malloc( size );                                          
   1309c:	e1a00005 	mov	r0, r5                                        
   130a0:	ebffd6cd 	bl	8bdc <malloc>                                  
                                                                      
  MSBUMP(malloc_calls, -1);   /* subtract off the malloc */           
   130a4:	e59f2044 	ldr	r2, [pc, #68]	; 130f0 <realloc+0x114>         
   130a8:	e5923004 	ldr	r3, [r2, #4]                                  
                                                                      
  if ( !new_area ) {                                                  
   130ac:	e2506000 	subs	r6, r0, #0	; 0x0                             
   *  and the C Standard.                                             
   */                                                                 
                                                                      
  new_area = malloc( size );                                          
                                                                      
  MSBUMP(malloc_calls, -1);   /* subtract off the malloc */           
   130b0:	e2433001 	sub	r3, r3, #1	; 0x1                              
   130b4:	e5823004 	str	r3, [r2, #4]                                  
                                                                      
  if ( !new_area ) {                                                  
   130b8:	0a000008 	beq	130e0 <realloc+0x104>                         
    return (void *) 0;                                                
  }                                                                   
                                                                      
  memcpy( new_area, ptr, (size < old_size) ? size : old_size );       
   130bc:	e59d2000 	ldr	r2, [sp]                                      
   130c0:	e1a01004 	mov	r1, r4                                        
   130c4:	e1550002 	cmp	r5, r2                                        
   130c8:	31a02005 	movcc	r2, r5                                      
   130cc:	ebffdf9a 	bl	af3c <memcpy>                                  
  free( ptr );                                                        
   130d0:	e1a00004 	mov	r0, r4                                        
   130d4:	ebffd57d 	bl	86d0 <free>                                    
   130d8:	e1a04006 	mov	r4, r6                                        
   130dc:	ea000000 	b	130e4 <realloc+0x108>                           
                                                                      
  return new_area;                                                    
   130e0:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
}                                                                     
   130e4:	e1a00004 	mov	r0, r4                                        
   130e8:	e28dd004 	add	sp, sp, #4	; 0x4                              
   130ec:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

0000a244 <rtems_assoc_local_by_remote_bitfield>: uint32_t rtems_assoc_local_by_remote_bitfield( const rtems_assoc_t *ap, uint32_t remote_value ) {
    a244:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
    a248:	e3a06000 	mov	r6, #0	; 0x0                                  
    a24c:	e1a08000 	mov	r8, r0                                        
    a250:	e1a07001 	mov	r7, r1                                        
    a254:	e3a04001 	mov	r4, #1	; 0x1                                  
    a258:	e1a05006 	mov	r5, r6                                        
  uint32_t   b;                                                       
  uint32_t   local_value = 0;                                         
                                                                      
  for (b = 1; b; b <<= 1) {                                           
    if (b & remote_value)                                             
    a25c:	e1140007 	tst	r4, r7                                        
)                                                                     
{                                                                     
  uint32_t   b;                                                       
  uint32_t   local_value = 0;                                         
                                                                      
  for (b = 1; b; b <<= 1) {                                           
    a260:	e2855001 	add	r5, r5, #1	; 0x1                              
    if (b & remote_value)                                             
    a264:	0a000003 	beq	a278 <rtems_assoc_local_by_remote_bitfield+0x34>
      local_value |= rtems_assoc_local_by_remote(ap, b);              
    a268:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    a26c:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
    a270:	eb000005 	bl	a28c <rtems_assoc_local_by_remote>             <== NOT EXECUTED
    a274:	e1866000 	orr	r6, r6, r0                                    <== NOT EXECUTED
)                                                                     
{                                                                     
  uint32_t   b;                                                       
  uint32_t   local_value = 0;                                         
                                                                      
  for (b = 1; b; b <<= 1) {                                           
    a278:	e3550020 	cmp	r5, #32	; 0x20                                
    a27c:	e1a04084 	lsl	r4, r4, #1                                    
    a280:	1afffff5 	bne	a25c <rtems_assoc_local_by_remote_bitfield+0x18>
    if (b & remote_value)                                             
      local_value |= rtems_assoc_local_by_remote(ap, b);              
  }                                                                   
                                                                      
  return local_value;                                                 
}                                                                     
    a284:	e1a00006 	mov	r0, r6                                        
    a288:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

0000bfb4 <rtems_assoc_name_bad>: sprintf(bad_buffer, "< %" PRId32 "[0x%" PRIx32 " ] >", bad_value, bad_value); #else static char bad_buffer[40] = "<assocnamebad.c: : BAD NAME>"; #endif return bad_buffer; }
    bfb4:	e59f0000 	ldr	r0, [pc, #0]	; bfbc <rtems_assoc_name_bad+0x8><== NOT EXECUTED
    bfb8:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

0000a220 <rtems_assoc_name_by_local>: const char *rtems_assoc_name_by_local( const rtems_assoc_t *ap, uint32_t local_value ) {
    a220:	e92d4010 	push	{r4, lr}                                     
    a224:	e1a04001 	mov	r4, r1                                        
  const rtems_assoc_t *nap;                                           
                                                                      
  nap = rtems_assoc_ptr_by_local(ap, local_value);                    
    a228:	eb000006 	bl	a248 <rtems_assoc_ptr_by_local>                
  if (nap)                                                            
    a22c:	e3500000 	cmp	r0, #0	; 0x0                                  
    a230:	0a000001 	beq	a23c <rtems_assoc_name_by_local+0x1c>         
    return nap->name;                                                 
                                                                      
  return rtems_assoc_name_bad(local_value);                           
}                                                                     
    a234:	e5900000 	ldr	r0, [r0]                                      
    a238:	e8bd8010 	pop	{r4, pc}                                      
                                                                      
  nap = rtems_assoc_ptr_by_local(ap, local_value);                    
  if (nap)                                                            
    return nap->name;                                                 
                                                                      
  return rtems_assoc_name_bad(local_value);                           
    a23c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
}                                                                     
    a240:	e8bd4010 	pop	{r4, lr}                                      <== NOT EXECUTED
                                                                      
  nap = rtems_assoc_ptr_by_local(ap, local_value);                    
  if (nap)                                                            
    return nap->name;                                                 
                                                                      
  return rtems_assoc_name_bad(local_value);                           
    a244:	ea00075a 	b	bfb4 <rtems_assoc_name_bad>                     <== NOT EXECUTED
                                                                      

0000a2a0 <rtems_assoc_ptr_by_remote>: const rtems_assoc_t *rtems_assoc_ptr_by_remote( const rtems_assoc_t *ap, uint32_t remote_value ) {
    a2a0:	e92d4030 	push	{r4, r5, lr}                                 
    a2a4:	e1a04000 	mov	r4, r0                                        
  const rtems_assoc_t *default_ap = 0;                                
                                                                      
  if (rtems_assoc_is_default(ap))                                     
    a2a8:	e5900000 	ldr	r0, [r0]                                      
    a2ac:	e3500000 	cmp	r0, #0	; 0x0                                  
                                                                      
const rtems_assoc_t *rtems_assoc_ptr_by_remote(                       
  const rtems_assoc_t *ap,                                            
  uint32_t       remote_value                                         
)                                                                     
{                                                                     
    a2b0:	e1a05001 	mov	r5, r1                                        
  const rtems_assoc_t *default_ap = 0;                                
                                                                      
  if (rtems_assoc_is_default(ap))                                     
    a2b4:	0a000004 	beq	a2cc <rtems_assoc_ptr_by_remote+0x2c>         
    a2b8:	e59f103c 	ldr	r1, [pc, #60]	; a2fc <rtems_assoc_ptr_by_remote+0x5c>
    a2bc:	eb000622 	bl	bb4c <strcmp>                                  
    a2c0:	e3500000 	cmp	r0, #0	; 0x0                                  
    default_ap = ap++;                                                
    a2c4:	01a02004 	moveq	r2, r4                                      
  uint32_t       remote_value                                         
)                                                                     
{                                                                     
  const rtems_assoc_t *default_ap = 0;                                
                                                                      
  if (rtems_assoc_is_default(ap))                                     
    a2c8:	0a000004 	beq	a2e0 <rtems_assoc_ptr_by_remote+0x40>         
    default_ap = ap++;                                                
    a2cc:	e3a02000 	mov	r2, #0	; 0x0                                  
    a2d0:	ea000003 	b	a2e4 <rtems_assoc_ptr_by_remote+0x44>           
                                                                      
  for ( ; ap->name; ap++)                                             
    if (ap->remote_value == remote_value)                             
    a2d4:	e5943008 	ldr	r3, [r4, #8]                                  
    a2d8:	e1530005 	cmp	r3, r5                                        
    a2dc:	0a000004 	beq	a2f4 <rtems_assoc_ptr_by_remote+0x54>         
  const rtems_assoc_t *default_ap = 0;                                
                                                                      
  if (rtems_assoc_is_default(ap))                                     
    default_ap = ap++;                                                
                                                                      
  for ( ; ap->name; ap++)                                             
    a2e0:	e284400c 	add	r4, r4, #12	; 0xc                             
    a2e4:	e5943000 	ldr	r3, [r4]                                      
    a2e8:	e3530000 	cmp	r3, #0	; 0x0                                  
    a2ec:	1afffff8 	bne	a2d4 <rtems_assoc_ptr_by_remote+0x34>         
    a2f0:	e1a04002 	mov	r4, r2                                        <== NOT EXECUTED
    if (ap->remote_value == remote_value)                             
      return ap;                                                      
                                                                      
  return default_ap;                                                  
}                                                                     
    a2f4:	e1a00004 	mov	r0, r4                                        
    a2f8:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

0000a300 <rtems_assoc_remote_by_local>: uint32_t rtems_assoc_remote_by_local( const rtems_assoc_t *ap, uint32_t local_value ) {
    a300:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
  const rtems_assoc_t *nap;                                           
                                                                      
  nap = rtems_assoc_ptr_by_local(ap, local_value);                    
    a304:	eb000125 	bl	a7a0 <rtems_assoc_ptr_by_local>                <== NOT EXECUTED
  if (nap)                                                            
    a308:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    return nap->remote_value;                                         
    a30c:	15900008 	ldrne	r0, [r0, #8]                                <== NOT EXECUTED
                                                                      
  return 0;                                                           
}                                                                     
    a310:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

00003ac8 <rtems_clock_get>: rtems_status_code rtems_clock_get( rtems_clock_get_options option, void *time_buffer ) {
    3ac8:	e92d4010 	push	{r4, lr}                                     
  if ( !time_buffer )                                                 
    3acc:	e2514000 	subs	r4, r1, #0	; 0x0                             
    3ad0:	03a00009 	moveq	r0, #9	; 0x9                                
    3ad4:	08bd8010 	popeq	{r4, pc}                                    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  switch ( option ) {                                                 
    3ad8:	e3500004 	cmp	r0, #4	; 0x4                                  
    3adc:	979ff100 	ldrls	pc, [pc, r0, lsl #2]                        
    3ae0:	ea000004 	b	3af8 <rtems_clock_get+0x30>                     
    3ae4:	00003b00 	.word	0x00003b00                                  
    3ae8:	00003b0c 	.word	0x00003b0c                                  
    3aec:	00003b18 	.word	0x00003b18                                  <== NOT EXECUTED
    3af0:	00003b20 	.word	0x00003b20                                  <== NOT EXECUTED
    3af4:	00003b30 	.word	0x00003b30                                  <== NOT EXECUTED
    3af8:	e3a0000a 	mov	r0, #10	; 0xa                                 
    3afc:	e8bd8010 	pop	{r4, pc}                                      
    case RTEMS_CLOCK_GET_TOD:                                         
      return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 
    3b00:	e1a00004 	mov	r0, r4                                        
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
    3b04:	e8bd4010 	pop	{r4, lr}                                      
  if ( !time_buffer )                                                 
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  switch ( option ) {                                                 
    case RTEMS_CLOCK_GET_TOD:                                         
      return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 
    3b08:	ea000025 	b	3ba4 <rtems_clock_get_tod>                      
                                                                      
    case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH:                         
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
    3b0c:	e1a00004 	mov	r0, r4                                        
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
    3b10:	e8bd4010 	pop	{r4, lr}                                      
  switch ( option ) {                                                 
    case RTEMS_CLOCK_GET_TOD:                                         
      return rtems_clock_get_tod( (rtems_time_of_day *)time_buffer ); 
                                                                      
    case RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH:                         
      return rtems_clock_get_seconds_since_epoch((rtems_interval *)time_buffer);
    3b14:	ea000008 	b	3b3c <rtems_clock_get_seconds_since_epoch>      
                                                                      
    case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: {                          
      rtems_interval *interval = (rtems_interval *)time_buffer;       
                                                                      
      *interval = rtems_clock_get_ticks_since_boot();                 
    3b18:	eb00001d 	bl	3b94 <rtems_clock_get_ticks_since_boot>        
    3b1c:	ea000000 	b	3b24 <rtems_clock_get+0x5c>                     
      return RTEMS_SUCCESSFUL;                                        
    }                                                                 
    case RTEMS_CLOCK_GET_TICKS_PER_SECOND: {                          
      rtems_interval *interval = (rtems_interval *)time_buffer;       
                                                                      
      *interval = rtems_clock_get_ticks_per_second();                 
    3b20:	eb000013 	bl	3b74 <rtems_clock_get_ticks_per_second>        
    3b24:	e5840000 	str	r0, [r4]                                      
    3b28:	e3a00000 	mov	r0, #0	; 0x0                                  
    3b2c:	e8bd8010 	pop	{r4, pc}                                      
      return RTEMS_SUCCESSFUL;                                        
    }                                                                 
    case RTEMS_CLOCK_GET_TIME_VALUE:                                  
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
    3b30:	e1a00004 	mov	r0, r4                                        
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_NUMBER;                                        
                                                                      
}                                                                     
    3b34:	e8bd4010 	pop	{r4, lr}                                      
                                                                      
      *interval = rtems_clock_get_ticks_per_second();                 
      return RTEMS_SUCCESSFUL;                                        
    }                                                                 
    case RTEMS_CLOCK_GET_TIME_VALUE:                                  
      return rtems_clock_get_tod_timeval( (struct timeval *)time_buffer );
    3b38:	ea00004b 	b	3c6c <rtems_clock_get_tod_timeval>              
                                                                      

00003b74 <rtems_clock_get_ticks_per_second>: #include <rtems/score/thread.h> #include <rtems/score/tod.h> #include <rtems/score/watchdog.h> rtems_interval rtems_clock_get_ticks_per_second(void) {
    3b74:	e59f3010 	ldr	r3, [pc, #16]	; 3b8c <rtems_clock_get_ticks_per_second+0x18>
    3b78:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    3b7c:	e5931000 	ldr	r1, [r3]                                      
    3b80:	e59f0008 	ldr	r0, [pc, #8]	; 3b90 <rtems_clock_get_ticks_per_second+0x1c>
    3b84:	eb00364d 	bl	114c0 <__aeabi_uidiv>                          
  return TOD_MICROSECONDS_PER_SECOND / _TOD_Microseconds_per_tick;    
}                                                                     
    3b88:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    
                                                                      

00001f8c <rtems_cpu_usage_report_with_plugin>: void rtems_cpu_usage_report_with_plugin( void *context, rtems_printk_plugin_t print ) {
    1f8c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
    struct timespec    uptime, total, ran;                            
  #else                                                               
    uint32_t           total_units = 0;                               
  #endif                                                              
                                                                      
  if ( !print )                                                       
    1f90:	e251a000 	subs	sl, r1, #0	; 0x0                             
                                                                      
void rtems_cpu_usage_report_with_plugin(                              
  void                  *context,                                     
  rtems_printk_plugin_t  print                                        
)                                                                     
{                                                                     
    1f94:	e24dd040 	sub	sp, sp, #64	; 0x40                            
    1f98:	e1a08000 	mov	r8, r0                                        
    struct timespec    uptime, total, ran;                            
  #else                                                               
    uint32_t           total_units = 0;                               
  #endif                                                              
                                                                      
  if ( !print )                                                       
    1f9c:	0a000058 	beq	2104 <rtems_cpu_usage_report_with_plugin+0x178>
   *  When not using nanosecond CPU usage resolution, we have to count
   *  the number of "ticks" we gave credit for to give the user a rough
   *  guideline as to what each number means proportionally.          
   */                                                                 
  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS                 
    _TOD_Get_uptime( &uptime );                                       
    1fa0:	e28d4030 	add	r4, sp, #48	; 0x30                            
    1fa4:	e1a00004 	mov	r0, r4                                        
    _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total );
    1fa8:	e28d5028 	add	r5, sp, #40	; 0x28                            
   *  When not using nanosecond CPU usage resolution, we have to count
   *  the number of "ticks" we gave credit for to give the user a rough
   *  guideline as to what each number means proportionally.          
   */                                                                 
  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS                 
    _TOD_Get_uptime( &uptime );                                       
    1fac:	eb001243 	bl	68c0 <_TOD_Get_uptime>                         
    _Timespec_Subtract( &CPU_usage_Uptime_at_last_reset, &uptime, &total );
    1fb0:	e1a01004 	mov	r1, r4                                        
    1fb4:	e1a02005 	mov	r2, r5                                        
    1fb8:	e59f014c 	ldr	r0, [pc, #332]	; 210c <rtems_cpu_usage_report_with_plugin+0x180>
    1fbc:	eb001b31 	bl	8c88 <_Timespec_Subtract>                      
        }                                                             
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  (*print)( context, "CPU Usage by thread\n"                          
    1fc0:	e1a00008 	mov	r0, r8                                        
    1fc4:	e59f1144 	ldr	r1, [pc, #324]	; 2110 <rtems_cpu_usage_report_with_plugin+0x184>
    1fc8:	e1a0e00f 	mov	lr, pc                                        
    1fcc:	e12fff1a 	bx	sl                                             
    1fd0:	e59f613c 	ldr	r6, [pc, #316]	; 2114 <rtems_cpu_usage_report_with_plugin+0x188>
            _Timespec_Subtract(                                       
              &_Thread_Time_of_last_context_switch, &uptime, &used    
            );                                                        
            _Timespec_Add_to( &ran, &used );                          
          };                                                          
          _Timespec_Divide( &ran, &total, &ival, &fval );             
    1fd4:	e28db020 	add	fp, sp, #32	; 0x20                            
  );                                                                  
                                                                      
  for ( api_index = 1 ;                                               
        api_index <= OBJECTS_APIS_LAST ;                              
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
    1fd8:	e5963004 	ldr	r3, [r6, #4]                                  
    1fdc:	e3530000 	cmp	r3, #0	; 0x0                                  
    1fe0:	0a00003a 	beq	20d0 <rtems_cpu_usage_report_with_plugin+0x144>
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    1fe4:	e5937004 	ldr	r7, [r3, #4]                                  
    if ( information ) {                                              
    1fe8:	e3570000 	cmp	r7, #0	; 0x0                                  
    1fec:	13a05001 	movne	r5, #1	; 0x1                                
           * since the last context switch.                           
           */                                                         
          ran = the_thread->cpu_time_used;                            
          if ( _Thread_Executing->Object.id == the_thread->Object.id ) {
            struct timespec used;                                     
            _Timespec_Subtract(                                       
    1ff0:	128d9018 	addne	r9, sp, #24	; 0x18                          
        api_index <= OBJECTS_APIS_LAST ;                              
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
    1ff4:	1a000030 	bne	20bc <rtems_cpu_usage_report_with_plugin+0x130>
    1ff8:	ea000034 	b	20d0 <rtems_cpu_usage_report_with_plugin+0x144> <== NOT EXECUTED
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
        the_thread = (Thread_Control *)information->local_table[ i ]; 
    1ffc:	e597301c 	ldr	r3, [r7, #28]                                 
    2000:	e7934105 	ldr	r4, [r3, r5, lsl #2]                          
                                                                      
        if ( !the_thread )                                            
    2004:	e3540000 	cmp	r4, #0	; 0x0                                  
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    2008:	e2855001 	add	r5, r5, #1	; 0x1                              
        the_thread = (Thread_Control *)information->local_table[ i ]; 
                                                                      
        if ( !the_thread )                                            
    200c:	0a00002a 	beq	20bc <rtems_cpu_usage_report_with_plugin+0x130>
          continue;                                                   
                                                                      
        rtems_object_get_name( the_thread->Object.id, sizeof(name), name );
    2010:	e5940008 	ldr	r0, [r4, #8]                                  
    2014:	eb000d63 	bl	55a8 <rtems_object_get_name>                   
                                                                      
        (*print)(                                                     
    2018:	e28d300b 	add	r3, sp, #11	; 0xb                             
    201c:	e5942008 	ldr	r2, [r4, #8]                                  
    2020:	e1a00008 	mov	r0, r8                                        
    2024:	e59f10ec 	ldr	r1, [pc, #236]	; 2118 <rtems_cpu_usage_report_with_plugin+0x18c>
    2028:	e1a0e00f 	mov	lr, pc                                        
    202c:	e12fff1a 	bx	sl                                             
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          /*                                                          
           * If this is the currently executing thread, account for time
           * since the last context switch.                           
           */                                                         
          ran = the_thread->cpu_time_used;                            
    2030:	e5942088 	ldr	r2, [r4, #136]                                
    2034:	e5943084 	ldr	r3, [r4, #132]                                
    2038:	e58d2024 	str	r2, [sp, #36]                                 
          if ( _Thread_Executing->Object.id == the_thread->Object.id ) {
    203c:	e59f20d8 	ldr	r2, [pc, #216]	; 211c <rtems_cpu_usage_report_with_plugin+0x190>
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          /*                                                          
           * If this is the currently executing thread, account for time
           * since the last context switch.                           
           */                                                         
          ran = the_thread->cpu_time_used;                            
    2040:	e58d3020 	str	r3, [sp, #32]                                 
          if ( _Thread_Executing->Object.id == the_thread->Object.id ) {
    2044:	e5923000 	ldr	r3, [r2]                                      
    2048:	e5942008 	ldr	r2, [r4, #8]                                  
    204c:	e5933008 	ldr	r3, [r3, #8]                                  
    2050:	e1530002 	cmp	r3, r2                                        
    2054:	1a000006 	bne	2074 <rtems_cpu_usage_report_with_plugin+0xe8>
            struct timespec used;                                     
            _Timespec_Subtract(                                       
    2058:	e59f00c0 	ldr	r0, [pc, #192]	; 2120 <rtems_cpu_usage_report_with_plugin+0x194>
    205c:	e28d1030 	add	r1, sp, #48	; 0x30                            
    2060:	e1a02009 	mov	r2, r9                                        
    2064:	eb001b07 	bl	8c88 <_Timespec_Subtract>                      
              &_Thread_Time_of_last_context_switch, &uptime, &used    
            );                                                        
            _Timespec_Add_to( &ran, &used );                          
    2068:	e1a0000b 	mov	r0, fp                                        
    206c:	e1a01009 	mov	r1, r9                                        
    2070:	eb001ac5 	bl	8b8c <_Timespec_Add_to>                        
          };                                                          
          _Timespec_Divide( &ran, &total, &ival, &fval );             
    2074:	e28d203c 	add	r2, sp, #60	; 0x3c                            
    2078:	e28d3038 	add	r3, sp, #56	; 0x38                            
    207c:	e1a0000b 	mov	r0, fp                                        
    2080:	e28d1028 	add	r1, sp, #40	; 0x28                            
    2084:	eb001ad9 	bl	8bf0 <_Timespec_Divide>                        
                                                                      
          /*                                                          
           * Print the information                                    
           */                                                         
                                                                      
          (*print)( context,                                          
    2088:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             
    208c:	e59d0024 	ldr	r0, [sp, #36]                                 
    2090:	eb004a5d 	bl	14a0c <__aeabi_uidiv>                          
    2094:	e59d203c 	ldr	r2, [sp, #60]                                 
    2098:	e58d2000 	str	r2, [sp]                                      
    209c:	e59d2038 	ldr	r2, [sp, #56]                                 
    20a0:	e1a03000 	mov	r3, r0                                        
    20a4:	e58d2004 	str	r2, [sp, #4]                                  
    20a8:	e1a00008 	mov	r0, r8                                        
    20ac:	e59f1070 	ldr	r1, [pc, #112]	; 2124 <rtems_cpu_usage_report_with_plugin+0x198>
    20b0:	e59d2020 	ldr	r2, [sp, #32]                                 
    20b4:	e1a0e00f 	mov	lr, pc                                        
    20b8:	e12fff1a 	bx	sl                                             
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    20bc:	e1d731b0 	ldrh	r3, [r7, #16]                                
    20c0:	e1550003 	cmp	r5, r3                                        
        the_thread = (Thread_Control *)information->local_table[ i ]; 
                                                                      
        if ( !the_thread )                                            
          continue;                                                   
                                                                      
        rtems_object_get_name( the_thread->Object.id, sizeof(name), name );
    20c4:	e3a0100d 	mov	r1, #13	; 0xd                                 
    20c8:	e28d200b 	add	r2, sp, #11	; 0xb                             
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    20cc:	9affffca 	bls	1ffc <rtems_cpu_usage_report_with_plugin+0x70>
     "   ID            NAME         TICKS   PERCENT\n"                
  #endif                                                              
  );                                                                  
                                                                      
  for ( api_index = 1 ;                                               
        api_index <= OBJECTS_APIS_LAST ;                              
    20d0:	e59f3050 	ldr	r3, [pc, #80]	; 2128 <rtems_cpu_usage_report_with_plugin+0x19c>
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    20d4:	e2866004 	add	r6, r6, #4	; 0x4                              
     "   ID            NAME         TICKS   PERCENT\n"                
  #endif                                                              
  );                                                                  
                                                                      
  for ( api_index = 1 ;                                               
        api_index <= OBJECTS_APIS_LAST ;                              
    20d8:	e1560003 	cmp	r6, r3                                        
    20dc:	1affffbd 	bne	1fd8 <rtems_cpu_usage_report_with_plugin+0x4c>
      }                                                               
    }                                                                 
  }                                                                   
                                                                      
  #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS                 
    (*print)( context, "Time since last CPU Usage reset %" PRId32     
    20e0:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             
    20e4:	e59d002c 	ldr	r0, [sp, #44]                                 
    20e8:	eb004a47 	bl	14a0c <__aeabi_uidiv>                          
    20ec:	e59f1038 	ldr	r1, [pc, #56]	; 212c <rtems_cpu_usage_report_with_plugin+0x1a0>
    20f0:	e1a03000 	mov	r3, r0                                        
    20f4:	e59d2028 	ldr	r2, [sp, #40]                                 
    20f8:	e1a00008 	mov	r0, r8                                        
    20fc:	e1a0e00f 	mov	lr, pc                                        
    2100:	e12fff1a 	bx	sl                                             
      "Ticks since last reset = %" PRId32 "\n",                       
      _Watchdog_Ticks_since_boot - CPU_usage_Ticks_at_last_reset      
    );                                                                
    (*print)( context, "Total Units = %" PRId32 "\n", total_units );  
  #endif                                                              
}                                                                     
    2104:	e28dd040 	add	sp, sp, #64	; 0x40                            
    2108:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

00009414 <rtems_debug_enable>: void rtems_debug_enable ( rtems_debug_control to_be_enabled ) { _Debug_Level |= to_be_enabled;
    9414:	e59f300c 	ldr	r3, [pc, #12]	; 9428 <rtems_debug_enable+0x14><== NOT EXECUTED
    9418:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
    941c:	e1800002 	orr	r0, r0, r2                                    <== NOT EXECUTED
    9420:	e5830000 	str	r0, [r3]                                      <== NOT EXECUTED
}                                                                     
    9424:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00009eec <rtems_deviceio_errno>: { 0, 0, 0 }, }; static int rtems_deviceio_errno(rtems_status_code code) {
    9eec:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
    9ef0:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
    int rc;                                                           
                                                                      
    if ((rc = rtems_assoc_remote_by_local(errno_assoc, (uint32_t) code)))
    9ef4:	e59f0018 	ldr	r0, [pc, #24]	; 9f14 <rtems_deviceio_errno+0x28><== NOT EXECUTED
    9ef8:	eb000100 	bl	a300 <rtems_assoc_remote_by_local>             <== NOT EXECUTED
    9efc:	e2504000 	subs	r4, r0, #0	; 0x0                             <== NOT EXECUTED
    9f00:	0a000001 	beq	9f0c <rtems_deviceio_errno+0x20>              <== NOT EXECUTED
    {                                                                 
        errno = rc;                                                   
    9f04:	eb000242 	bl	a814 <__errno>                                 <== NOT EXECUTED
    9f08:	e5804000 	str	r4, [r0]                                      <== NOT EXECUTED
        return -1;                                                    
    }                                                                 
    return -1;                                                        
}                                                                     
    9f0c:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    9f10:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

00002498 <rtems_error>: int rtems_error( int error_flag, const char *printf_format, ... ) {
    2498:	e92d000e 	push	{r1, r2, r3}                                 <== NOT EXECUTED
    249c:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
    va_list arglist;                                                  
    int chars_written;                                                
                                                                      
    va_start(arglist, printf_format);                                 
    chars_written = rtems_verror(error_flag, printf_format, arglist); 
    24a0:	e59d1004 	ldr	r1, [sp, #4]                                  <== NOT EXECUTED
    24a4:	e28d2008 	add	r2, sp, #8	; 0x8                              <== NOT EXECUTED
    24a8:	ebffff85 	bl	22c4 <rtems_verror>                            <== NOT EXECUTED
    va_end(arglist);                                                  
                                                                      
    return chars_written;                                             
}                                                                     
    24ac:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
    24b0:	e28dd00c 	add	sp, sp, #12	; 0xc                             <== NOT EXECUTED
    24b4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

0000125c <rtems_filesystem_evaluate_parent>: int rtems_filesystem_evaluate_parent( int flags, rtems_filesystem_location_info_t *pathloc ) {
    125c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  rtems_filesystem_location_info_t  parent;                           
  int                               result;                           
                                                                      
  if ( !pathloc )                                                     
    1260:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
int rtems_filesystem_evaluate_parent(                                 
  int                                flags,                           
  rtems_filesystem_location_info_t  *pathloc                          
)                                                                     
{                                                                     
    1264:	e24dd010 	sub	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    1268:	e1a0e000 	mov	lr, r0                                        <== NOT EXECUTED
  rtems_filesystem_location_info_t  parent;                           
  int                               result;                           
                                                                      
  if ( !pathloc )                                                     
    126c:	1a000002 	bne	127c <rtems_filesystem_evaluate_parent+0x20>  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EIO );       /* should never happen */
    1270:	eb002567 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1274:	e3a03005 	mov	r3, #5	; 0x5                                  <== NOT EXECUTED
    1278:	ea000005 	b	1294 <rtems_filesystem_evaluate_parent+0x38>    <== NOT EXECUTED
                                                                      
  if ( !pathloc->ops->evalpath_h )                                    
    127c:	e5913008 	ldr	r3, [r1, #8]                                  <== NOT EXECUTED
    1280:	e593c000 	ldr	ip, [r3]                                      <== NOT EXECUTED
    1284:	e35c0000 	cmp	ip, #0	; 0x0                                  <== NOT EXECUTED
    1288:	1a000004 	bne	12a0 <rtems_filesystem_evaluate_parent+0x44>  <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
    128c:	eb002560 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1290:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    1294:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    1298:	e3e04000 	mvn	r4, #0	; 0x0                                  <== NOT EXECUTED
    129c:	ea000011 	b	12e8 <rtems_filesystem_evaluate_parent+0x8c>    <== NOT EXECUTED
                                                                      
  parent = *pathloc;                                                  
    12a0:	e891000f 	ldm	r1, {r0, r1, r2, r3}                          <== NOT EXECUTED
    12a4:	e88d000f 	stm	sp, {r0, r1, r2, r3}                          <== NOT EXECUTED
  result = (*pathloc->ops->evalpath_h)( "..", flags, &parent );       
    12a8:	e1a0100e 	mov	r1, lr                                        <== NOT EXECUTED
    12ac:	e59f0040 	ldr	r0, [pc, #64]	; 12f4 <rtems_filesystem_evaluate_parent+0x98><== NOT EXECUTED
    12b0:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    12b4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    12b8:	e12fff1c 	bx	ip                                             <== NOT EXECUTED
  if (result != 0){                                                   
    12bc:	e2504000 	subs	r4, r0, #0	; 0x0                             <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( EIO );       /* should never happen */
                                                                      
  if ( !pathloc->ops->evalpath_h )                                    
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
                                                                      
  parent = *pathloc;                                                  
    12c0:	e1a0500d 	mov	r5, sp                                        <== NOT EXECUTED
  result = (*pathloc->ops->evalpath_h)( "..", flags, &parent );       
  if (result != 0){                                                   
    12c4:	1afffff3 	bne	1298 <rtems_filesystem_evaluate_parent+0x3c>  <== NOT EXECUTED
    return -1;                                                        
  }                                                                   
  rtems_filesystem_freenode( &parent );                               
    12c8:	e59d3008 	ldr	r3, [sp, #8]                                  <== NOT EXECUTED
    12cc:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    12d0:	0a000004 	beq	12e8 <rtems_filesystem_evaluate_parent+0x8c>  <== NOT EXECUTED
    12d4:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
    12d8:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    12dc:	11a0000d 	movne	r0, sp                                      <== NOT EXECUTED
    12e0:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    12e4:	112fff13 	bxne	r3                                           <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    12e8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    12ec:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    12f0:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

000012f8 <rtems_filesystem_evaluate_path>: const char *pathname, int flags, rtems_filesystem_location_info_t *pathloc, int follow_link ) {
    12f8:	e92d4070 	push	{r4, r5, r6, lr}                             
                                                                      
  /*                                                                  
   * Verify Input parameters.                                         
   */                                                                 
                                                                      
  if ( !pathname )                                                    
    12fc:	e250e000 	subs	lr, r0, #0	; 0x0                             
  const char                        *pathname,                        
  int                                flags,                           
  rtems_filesystem_location_info_t  *pathloc,                         
  int                                follow_link                      
)                                                                     
{                                                                     
    1300:	e1a06001 	mov	r6, r1                                        
    1304:	e1a04002 	mov	r4, r2                                        
    1308:	e1a05003 	mov	r5, r3                                        
                                                                      
  /*                                                                  
   * Verify Input parameters.                                         
   */                                                                 
                                                                      
  if ( !pathname )                                                    
    130c:	1a000002 	bne	131c <rtems_filesystem_evaluate_path+0x24>    
    rtems_set_errno_and_return_minus_one( EFAULT );                   
    1310:	eb00253f 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1314:	e3a0300e 	mov	r3, #14	; 0xe                                 <== NOT EXECUTED
    1318:	ea00003e 	b	1418 <rtems_filesystem_evaluate_path+0x120>     <== NOT EXECUTED
                                                                      
  if ( !pathloc )                                                     
    131c:	e3520000 	cmp	r2, #0	; 0x0                                  
    1320:	1a000002 	bne	1330 <rtems_filesystem_evaluate_path+0x38>    
    rtems_set_errno_and_return_minus_one( EIO );       /* should never happen */
    1324:	eb00253a 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1328:	e3a03005 	mov	r3, #5	; 0x5                                  <== NOT EXECUTED
    132c:	ea000039 	b	1418 <rtems_filesystem_evaluate_path+0x120>     <== NOT EXECUTED
                                                                      
  /*                                                                  
   * Evaluate the path using the optable evalpath.                    
   */                                                                 
                                                                      
  rtems_filesystem_get_start_loc( pathname, &i, pathloc );            
    1330:	e5de3000 	ldrb	r3, [lr]                                     
    1334:	e353005c 	cmp	r3, #92	; 0x5c                                
    1338:	1353002f 	cmpne	r3, #47	; 0x2f                              
    133c:	13a0c000 	movne	ip, #0	; 0x0                                
    1340:	03a0c001 	moveq	ip, #1	; 0x1                                
    1344:	0a000001 	beq	1350 <rtems_filesystem_evaluate_path+0x58>    
    1348:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    134c:	1a000006 	bne	136c <rtems_filesystem_evaluate_path+0x74>    <== NOT EXECUTED
    1350:	e59f30e0 	ldr	r3, [pc, #224]	; 1438 <rtems_filesystem_evaluate_path+0x140>
    1354:	e5933000 	ldr	r3, [r3]                                      
    1358:	e2833014 	add	r3, r3, #20	; 0x14                            
    135c:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          
    1360:	e884000f 	stm	r4, {r0, r1, r2, r3}                          
    1364:	e3a02001 	mov	r2, #1	; 0x1                                  
    1368:	ea000005 	b	1384 <rtems_filesystem_evaluate_path+0x8c>      
    136c:	e59f30c4 	ldr	r3, [pc, #196]	; 1438 <rtems_filesystem_evaluate_path+0x140><== NOT EXECUTED
    1370:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    1374:	e2833004 	add	r3, r3, #4	; 0x4                              <== NOT EXECUTED
    1378:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          <== NOT EXECUTED
    137c:	e884000f 	stm	r4, {r0, r1, r2, r3}                          <== NOT EXECUTED
    1380:	e1a0200c 	mov	r2, ip                                        <== NOT EXECUTED
                                                                      
  if ( !pathloc->ops->evalpath_h )                                    
    1384:	e5943008 	ldr	r3, [r4, #8]                                  
    1388:	e5933000 	ldr	r3, [r3]                                      
    138c:	e3530000 	cmp	r3, #0	; 0x0                                  
    1390:	0a00001e 	beq	1410 <rtems_filesystem_evaluate_path+0x118>   
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
                                                                      
  result = (*pathloc->ops->evalpath_h)( &pathname[i], flags, pathloc );
    1394:	e08e0002 	add	r0, lr, r2                                    
    1398:	e1a01006 	mov	r1, r6                                        
    139c:	e1a02004 	mov	r2, r4                                        
    13a0:	e1a0e00f 	mov	lr, pc                                        
    13a4:	e12fff13 	bx	r3                                             
  /*                                                                  
   * Get the Node type and determine if you need to follow the link or
   * not.                                                             
   */                                                                 
                                                                      
  if ( (result == 0) && follow_link ) {                               
    13a8:	e2703001 	rsbs	r3, r0, #1	; 0x1                             
    13ac:	33a03000 	movcc	r3, #0	; 0x0                                
    13b0:	e3550000 	cmp	r5, #0	; 0x0                                  
    13b4:	03a03000 	moveq	r3, #0	; 0x0                                
    13b8:	e3530000 	cmp	r3, #0	; 0x0                                  
    13bc:	08bd8070 	popeq	{r4, r5, r6, pc}                            
                                                                      
    if ( !pathloc->ops->node_type_h ){                                
    13c0:	e5943008 	ldr	r3, [r4, #8]                                  
    13c4:	e5932010 	ldr	r2, [r3, #16]                                 
    13c8:	e3520000 	cmp	r2, #0	; 0x0                                  
    13cc:	0a00000a 	beq	13fc <rtems_filesystem_evaluate_path+0x104>   
      rtems_filesystem_freenode( pathloc );                           
      rtems_set_errno_and_return_minus_one( ENOTSUP );                
    }                                                                 
                                                                      
    type = (*pathloc->ops->node_type_h)( pathloc );                   
    13d0:	e1a00004 	mov	r0, r4                                        
    13d4:	e1a0e00f 	mov	lr, pc                                        
    13d8:	e12fff12 	bx	r2                                             
                                                                      
    if ( ( type == RTEMS_FILESYSTEM_HARD_LINK ) ||                    
    13dc:	e2400003 	sub	r0, r0, #3	; 0x3                              
    13e0:	e3500001 	cmp	r0, #1	; 0x1                                  
    13e4:	83a00000 	movhi	r0, #0	; 0x0                                
    13e8:	88bd8070 	pophi	{r4, r5, r6, pc}                            
         ( type == RTEMS_FILESYSTEM_SYM_LINK ) ) {                    
                                                                      
        if ( !pathloc->ops->eval_link_h ){                            
    13ec:	e5943008 	ldr	r3, [r4, #8]                                  <== NOT EXECUTED
    13f0:	e5932034 	ldr	r2, [r3, #52]                                 <== NOT EXECUTED
    13f4:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
    13f8:	1a000009 	bne	1424 <rtems_filesystem_evaluate_path+0x12c>   <== NOT EXECUTED
          rtems_filesystem_freenode( pathloc );                       
    13fc:	e593301c 	ldr	r3, [r3, #28]                                 <== NOT EXECUTED
    1400:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1404:	11a00004 	movne	r0, r4                                      <== NOT EXECUTED
    1408:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    140c:	112fff13 	bxne	r3                                           <== NOT EXECUTED
          rtems_set_errno_and_return_minus_one( ENOTSUP );            
    1410:	eb0024ff 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1414:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    1418:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    141c:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    1420:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
         *    pathloc will be passed up (and eventually released).    
         *    Hence, the (valid) originial node that we submit to     
         *    eval_link_h() should be released by the handler.        
         */                                                           
                                                                      
        result =  (*pathloc->ops->eval_link_h)( pathloc, flags );     
    1424:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    1428:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    142c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1430:	e12fff12 	bx	r2                                             <== NOT EXECUTED
                                                                      
    }                                                                 
  }                                                                   
                                                                      
  return result;                                                      
}                                                                     
    1434:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

000084d0 <rtems_filesystem_initialize>: * configuration is a single instantiation of the IMFS or miniIMFS with * a single "/dev" directory in it. */ void rtems_filesystem_initialize( void ) {
    84d0:	e92d4030 	push	{r4, r5, lr}                                 
                                                                      
  /*                                                                  
   *  Set the default umask to "022".                                 
   */                                                                 
                                                                      
  rtems_filesystem_umask = 022;                                       
    84d4:	e59f50dc 	ldr	r5, [pc, #220]	; 85b8 <rtems_filesystem_initialize+0xe8>
    84d8:	e5952000 	ldr	r2, [r5]                                      
    84dc:	e3a03012 	mov	r3, #18	; 0x12                                
    84e0:	e5823024 	str	r3, [r2, #36]                                 
 *  configuration is a single instantiation of the IMFS or miniIMFS with
 *  a single "/dev" directory in it.                                  
 */                                                                   
                                                                      
void rtems_filesystem_initialize( void )                              
{                                                                     
    84e4:	e24dd018 	sub	sp, sp, #24	; 0x18                            
   */                                                                 
                                                                      
  rtems_filesystem_umask = 022;                                       
                                                                      
                                                                      
  init_fs_mount_table();                                              
    84e8:	eb0001fa 	bl	8cd8 <init_fs_mount_table>                     
                                                                      
  /*                                                                  
   *  mount the first filesystem.                                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_mount_table_size == 0 )                       
    84ec:	e59f30c8 	ldr	r3, [pc, #200]	; 85bc <rtems_filesystem_initialize+0xec>
    84f0:	e5933000 	ldr	r3, [r3]                                      
    84f4:	e3530000 	cmp	r3, #0	; 0x0                                  
    rtems_fatal_error_occurred( 0xABCD0001 );                         
    84f8:	059f00c0 	ldreq	r0, [pc, #192]	; 85c0 <rtems_filesystem_initialize+0xf0>
                                                                      
  /*                                                                  
   *  mount the first filesystem.                                     
   */                                                                 
                                                                      
  if ( rtems_filesystem_mount_table_size == 0 )                       
    84fc:	0a000009 	beq	8528 <rtems_filesystem_initialize+0x58>       
    rtems_fatal_error_occurred( 0xABCD0001 );                         
                                                                      
  mt = &rtems_filesystem_mount_table[0];                              
    8500:	e59f30bc 	ldr	r3, [pc, #188]	; 85c4 <rtems_filesystem_initialize+0xf4>
    8504:	e5932000 	ldr	r2, [r3]                                      
                                                                      
  status = mount(                                                     
    8508:	e592300c 	ldr	r3, [r2, #12]                                 
    850c:	e58d3000 	str	r3, [sp]                                      
    8510:	e28d0014 	add	r0, sp, #20	; 0x14                            
    8514:	e892000e 	ldm	r2, {r1, r2, r3}                              
    8518:	eb0001f5 	bl	8cf4 <mount>                                   
     &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
                                                                      
  if ( status == -1 )                                                 
    851c:	e3700001 	cmn	r0, #1	; 0x1                                  
    8520:	1a000001 	bne	852c <rtems_filesystem_initialize+0x5c>       
    rtems_fatal_error_occurred( 0xABCD0002 );                         
    8524:	e59f009c 	ldr	r0, [pc, #156]	; 85c8 <rtems_filesystem_initialize+0xf8><== NOT EXECUTED
    8528:	ebfff13c 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
   *       set_private_env() - but then: that's                       
   *       gonna hit performance.                                     
   *                                                                  
   *       Till Straumann, 10/25/2002                                 
   */                                                                 
  rtems_filesystem_root        = entry->mt_fs_root;                   
    852c:	e59d3014 	ldr	r3, [sp, #20]                                 
     &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
                                                                      
  if ( status == -1 )                                                 
    rtems_fatal_error_occurred( 0xABCD0002 );                         
                                                                      
  rtems_filesystem_link_counts = 0;                                   
    8530:	e595e000 	ldr	lr, [r5]                                      
   *       set_private_env() - but then: that's                       
   *       gonna hit performance.                                     
   *                                                                  
   *       Till Straumann, 10/25/2002                                 
   */                                                                 
  rtems_filesystem_root        = entry->mt_fs_root;                   
    8534:	e2833018 	add	r3, r3, #24	; 0x18                            
    8538:	e893000f 	ldm	r3, {r0, r1, r2, r3}                          
    853c:	e28ec014 	add	ip, lr, #20	; 0x14                            
    8540:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
  /* Clone the root pathloc */                                        
  rtems_filesystem_evaluate_path("/", 0, &loc, 0);                    
    8544:	e28d4004 	add	r4, sp, #4	; 0x4                              
    8548:	e3a01000 	mov	r1, #0	; 0x0                                  
     &entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
                                                                      
  if ( status == -1 )                                                 
    rtems_fatal_error_occurred( 0xABCD0002 );                         
                                                                      
  rtems_filesystem_link_counts = 0;                                   
    854c:	e3a03000 	mov	r3, #0	; 0x0                                  
    8550:	e1ce32b8 	strh	r3, [lr, #40]                                
   *                                                                  
   *       Till Straumann, 10/25/2002                                 
   */                                                                 
  rtems_filesystem_root        = entry->mt_fs_root;                   
  /* Clone the root pathloc */                                        
  rtems_filesystem_evaluate_path("/", 0, &loc, 0);                    
    8554:	e1a02004 	mov	r2, r4                                        
    8558:	e1a03001 	mov	r3, r1                                        
    855c:	e59f0068 	ldr	r0, [pc, #104]	; 85cc <rtems_filesystem_initialize+0xfc>
    8560:	ebffe364 	bl	12f8 <rtems_filesystem_evaluate_path>          
  rtems_filesystem_root        = loc;                                 
    8564:	e595c000 	ldr	ip, [r5]                                      
    8568:	e894000f 	ldm	r4, {r0, r1, r2, r3}                          
    856c:	e28cc014 	add	ip, ip, #20	; 0x14                            
    8570:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
  /* One more clone for the current node */                           
  rtems_filesystem_evaluate_path("/", 0, &loc, 0);                    
    8574:	e3a01000 	mov	r1, #0	; 0x0                                  
    8578:	e1a02004 	mov	r2, r4                                        
    857c:	e1a03001 	mov	r3, r1                                        
    8580:	e59f0044 	ldr	r0, [pc, #68]	; 85cc <rtems_filesystem_initialize+0xfc>
    8584:	ebffe35b 	bl	12f8 <rtems_filesystem_evaluate_path>          
  rtems_filesystem_current     = loc;                                 
    8588:	e595c000 	ldr	ip, [r5]                                      
    858c:	e894000f 	ldm	r4, {r0, r1, r2, r3}                          
    8590:	e28cc004 	add	ip, ip, #4	; 0x4                              
    8594:	e88c000f 	stm	ip, {r0, r1, r2, r3}                          
   *                                                                  
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).  It is actually
   *        created that way by the IMFS.                             
   */                                                                 
                                                                      
  status = mkdir( "/dev", 0777);                                      
    8598:	e59f0030 	ldr	r0, [pc, #48]	; 85d0 <rtems_filesystem_initialize+0x100>
    859c:	e59f1030 	ldr	r1, [pc, #48]	; 85d4 <rtems_filesystem_initialize+0x104>
    85a0:	eb0001c8 	bl	8cc8 <mkdir>                                   
  if ( status != 0 )                                                  
    85a4:	e3500000 	cmp	r0, #0	; 0x0                                  
    rtems_fatal_error_occurred( 0xABCD0003 );                         
    85a8:	159f0028 	ldrne	r0, [pc, #40]	; 85d8 <rtems_filesystem_initialize+0x108>
   *  NOTE: UNIX root is 755 and owned by root/root (0/0).  It is actually
   *        created that way by the IMFS.                             
   */                                                                 
                                                                      
  status = mkdir( "/dev", 0777);                                      
  if ( status != 0 )                                                  
    85ac:	1affffdd 	bne	8528 <rtems_filesystem_initialize+0x58>       
   *  before device drivers are initialized.  So we return via a base 
   *  filesystem image and nothing auto-mounted at this point.        
   */                                                                 
                                                                      
#endif                                                                
}                                                                     
    85b0:	e28dd018 	add	sp, sp, #24	; 0x18                            
    85b4:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00009460 <rtems_io_initialize>: void *argument ) { rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers )
    9460:	e59f3040 	ldr	r3, [pc, #64]	; 94a8 <rtems_io_initialize+0x48>
    9464:	e5933000 	ldr	r3, [r3]                                      
    9468:	e1500003 	cmp	r0, r3                                        
rtems_status_code rtems_io_initialize(                                
  rtems_device_major_number  major,                                   
  rtems_device_minor_number  minor,                                   
  void                      *argument                                 
)                                                                     
{                                                                     
    946c:	e92d4010 	push	{r4, lr}                                     
    9470:	e1a04000 	mov	r4, r0                                        
  rtems_device_driver_entry callout;                                  
                                                                      
  if ( major >= _IO_Number_of_drivers )                               
    9474:	23a0000a 	movcs	r0, #10	; 0xa                               
    9478:	28bd8010 	popcs	{r4, pc}                                    
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  callout = _IO_Driver_address_table[major].initialization_entry;     
    947c:	e3a03018 	mov	r3, #24	; 0x18                                
    9480:	e00c0493 	mul	ip, r3, r4                                    
    9484:	e59f3020 	ldr	r3, [pc, #32]	; 94ac <rtems_io_initialize+0x4c>
    9488:	e5933000 	ldr	r3, [r3]                                      
    948c:	e793300c 	ldr	r3, [r3, ip]                                  
  return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL;
    9490:	e3530000 	cmp	r3, #0	; 0x0                                  
    9494:	01a00003 	moveq	r0, r3                                      
    9498:	08bd8010 	popeq	{r4, pc}                                    
    949c:	e1a0e00f 	mov	lr, pc                                        
    94a0:	e12fff13 	bx	r3                                             
}                                                                     
    94a4:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

0000112c <rtems_io_lookup_name>: rtems_status_code rtems_io_lookup_name( const char *name, rtems_driver_name_t *device_info ) {
    112c:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 <== NOT EXECUTED
    1130:	e24dd010 	sub	sp, sp, #16	; 0x10                            <== NOT EXECUTED
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true );  
    1134:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    1138:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
                                                                      
rtems_status_code rtems_io_lookup_name(                               
  const char           *name,                                         
  rtems_driver_name_t  *device_info                                   
)                                                                     
{                                                                     
    113c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true );  
    1140:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
rtems_status_code rtems_io_lookup_name(                               
  const char           *name,                                         
  rtems_driver_name_t  *device_info                                   
)                                                                     
{                                                                     
    1144:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true );  
    1148:	eb00006a 	bl	12f8 <rtems_filesystem_evaluate_path>          <== NOT EXECUTED
  the_jnode = loc.node_access;                                        
                                                                      
  if ( !loc.ops->node_type_h ) {                                      
    114c:	e59d2008 	ldr	r2, [sp, #8]                                  <== NOT EXECUTED
    1150:	e5923010 	ldr	r3, [r2, #16]                                 <== NOT EXECUTED
    1154:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
  IMFS_jnode_t                      *the_jnode;                       
  rtems_filesystem_location_info_t   loc;                             
  int                                result;                          
  rtems_filesystem_node_types_t      node_type;                       
                                                                      
  result = rtems_filesystem_evaluate_path( name, 0x00, &loc, true );  
    1158:	e1a0800d 	mov	r8, sp                                        <== NOT EXECUTED
    115c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  the_jnode = loc.node_access;                                        
    1160:	e59d6000 	ldr	r6, [sp]                                      <== NOT EXECUTED
                                                                      
  if ( !loc.ops->node_type_h ) {                                      
    1164:	1a000009 	bne	1190 <rtems_io_lookup_name+0x64>              <== NOT EXECUTED
    rtems_filesystem_freenode( &loc );                                
    1168:	e592301c 	ldr	r3, [r2, #28]                                 <== NOT EXECUTED
    116c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1170:	11a0000d 	movne	r0, sp                                      <== NOT EXECUTED
    1174:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    1178:	112fff13 	bxne	r3                                           <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
    117c:	eb0025a4 	bl	a814 <__errno>                                 <== NOT EXECUTED
    1180:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
    1184:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
    1188:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    118c:	ea000026 	b	122c <rtems_io_lookup_name+0x100>               <== NOT EXECUTED
  }                                                                   
                                                                      
  node_type = (*loc.ops->node_type_h)( &loc );                        
    1190:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    1194:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1198:	e12fff13 	bx	r3                                             <== NOT EXECUTED
                                                                      
  if ( (result != 0) || node_type != RTEMS_FILESYSTEM_DEVICE ) {      
    119c:	e3500002 	cmp	r0, #2	; 0x2                                  <== NOT EXECUTED
    11a0:	03540000 	cmpeq	r4, #0	; 0x0                                <== NOT EXECUTED
    11a4:	03a0a000 	moveq	sl, #0	; 0x0                                <== NOT EXECUTED
    11a8:	13a0a001 	movne	sl, #1	; 0x1                                <== NOT EXECUTED
    11ac:	e59d4008 	ldr	r4, [sp, #8]                                  <== NOT EXECUTED
    11b0:	0a000008 	beq	11d8 <rtems_io_lookup_name+0xac>              <== NOT EXECUTED
    rtems_filesystem_freenode( &loc );                                
    11b4:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    11b8:	0a000018 	beq	1220 <rtems_io_lookup_name+0xf4>              <== NOT EXECUTED
    11bc:	e594301c 	ldr	r3, [r4, #28]                                 <== NOT EXECUTED
    11c0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    11c4:	0a000015 	beq	1220 <rtems_io_lookup_name+0xf4>              <== NOT EXECUTED
    11c8:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    11cc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    11d0:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    11d4:	ea000011 	b	1220 <rtems_io_lookup_name+0xf4>                <== NOT EXECUTED
    return RTEMS_UNSATISFIED;                                         
  }                                                                   
                                                                      
  device_info->device_name        = (char *) name;                    
    11d8:	e5857000 	str	r7, [r5]                                      <== NOT EXECUTED
  device_info->device_name_length = strlen( name );                   
    11dc:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    11e0:	eb002ac1 	bl	bcec <strlen>                                  <== NOT EXECUTED
    11e4:	e5850004 	str	r0, [r5, #4]                                  <== NOT EXECUTED
  device_info->major              = the_jnode->info.device.major;     
    11e8:	e5963050 	ldr	r3, [r6, #80]                                 <== NOT EXECUTED
    11ec:	e5853008 	str	r3, [r5, #8]                                  <== NOT EXECUTED
  device_info->minor              = the_jnode->info.device.minor;     
    11f0:	e5963054 	ldr	r3, [r6, #84]                                 <== NOT EXECUTED
                                                                      
  rtems_filesystem_freenode( &loc );                                  
    11f4:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
  }                                                                   
                                                                      
  device_info->device_name        = (char *) name;                    
  device_info->device_name_length = strlen( name );                   
  device_info->major              = the_jnode->info.device.major;     
  device_info->minor              = the_jnode->info.device.minor;     
    11f8:	e585300c 	str	r3, [r5, #12]                                 <== NOT EXECUTED
                                                                      
  rtems_filesystem_freenode( &loc );                                  
    11fc:	0a000009 	beq	1228 <rtems_io_lookup_name+0xfc>              <== NOT EXECUTED
    1200:	e594301c 	ldr	r3, [r4, #28]                                 <== NOT EXECUTED
    1204:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1208:	0a000006 	beq	1228 <rtems_io_lookup_name+0xfc>              <== NOT EXECUTED
    120c:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    1210:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1214:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    1218:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
    121c:	ea000002 	b	122c <rtems_io_lookup_name+0x100>               <== NOT EXECUTED
    1220:	e3a0000d 	mov	r0, #13	; 0xd                                 <== NOT EXECUTED
    1224:	ea000000 	b	122c <rtems_io_lookup_name+0x100>               <== NOT EXECUTED
    1228:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
#endif                                                                
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
    122c:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    1230:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  <== NOT EXECUTED
                                                                      

00006cf4 <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) {
    6cf4:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  uint32_t             i;                                             
  uint32_t             api_index;                                     
  Thread_Control      *the_thread;                                    
  Objects_Information *information;                                   
                                                                      
  if ( !routine )                                                     
    6cf8:	e2507000 	subs	r7, r0, #0	; 0x0                             
    6cfc:	08bd81f0 	popeq	{r4, r5, r6, r7, r8, pc}                    
    return;                                                           
    6d00:	e59f6054 	ldr	r6, [pc, #84]	; 6d5c <rtems_iterate_over_all_threads+0x68>
                                                                      
  for ( api_index = 1 ;                                               
        api_index <= OBJECTS_APIS_LAST ;                              
    6d04:	e2868010 	add	r8, r6, #16	; 0x10                            
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
    6d08:	e5963004 	ldr	r3, [r6, #4]                                  
    6d0c:	e3530000 	cmp	r3, #0	; 0x0                                  
    6d10:	0a00000d 	beq	6d4c <rtems_iterate_over_all_threads+0x58>    
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    6d14:	e5935004 	ldr	r5, [r3, #4]                                  
    if ( information ) {                                              
    6d18:	e3550000 	cmp	r5, #0	; 0x0                                  
    6d1c:	13a04001 	movne	r4, #1	; 0x1                                
    6d20:	1a000006 	bne	6d40 <rtems_iterate_over_all_threads+0x4c>    
    6d24:	ea000008 	b	6d4c <rtems_iterate_over_all_threads+0x58>      <== NOT EXECUTED
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
        the_thread = (Thread_Control *)information->local_table[ i ]; 
    6d28:	e595301c 	ldr	r3, [r5, #28]                                 
    6d2c:	e7933104 	ldr	r3, [r3, r4, lsl #2]                          
                                                                      
        if ( !the_thread )                                            
    6d30:	e2530000 	subs	r0, r3, #0	; 0x0                             
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    6d34:	e2844001 	add	r4, r4, #1	; 0x1                              
        the_thread = (Thread_Control *)information->local_table[ i ]; 
                                                                      
        if ( !the_thread )                                            
          continue;                                                   
                                                                      
        (*routine)(the_thread);                                       
    6d38:	11a0e00f 	movne	lr, pc                                      
    6d3c:	112fff17 	bxne	r7                                           
        api_index++ ) {                                               
    if ( !_Objects_Information_table[ api_index ] )                   
      continue;                                                       
    information = _Objects_Information_table[ api_index ][ 1 ];       
    if ( information ) {                                              
      for ( i=1 ; i <= information->maximum ; i++ ) {                 
    6d40:	e1d531b0 	ldrh	r3, [r5, #16]                                
    6d44:	e1540003 	cmp	r4, r3                                        
    6d48:	9afffff6 	bls	6d28 <rtems_iterate_over_all_threads+0x34>    
    6d4c:	e2866004 	add	r6, r6, #4	; 0x4                              
                                                                      
  if ( !routine )                                                     
    return;                                                           
                                                                      
  for ( api_index = 1 ;                                               
        api_index <= OBJECTS_APIS_LAST ;                              
    6d50:	e1560008 	cmp	r6, r8                                        
    6d54:	1affffeb 	bne	6d08 <rtems_iterate_over_all_threads+0x14>    
    6d58:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

0000143c <rtems_libio_init>: * * Called by BSP startup code to initialize the libio subsystem. */ void rtems_libio_init( void ) {
    143c:	e92d4010 	push	{r4, lr}                                     
    rtems_status_code rc;                                             
    int i;                                                            
    rtems_libio_t *iop;                                               
                                                                      
    if (rtems_libio_number_iops > 0)                                  
    1440:	e59f4098 	ldr	r4, [pc, #152]	; 14e0 <rtems_libio_init+0xa4> 
    1444:	e5940000 	ldr	r0, [r4]                                      
    1448:	e3500000 	cmp	r0, #0	; 0x0                                  
 *                                                                    
 *  Called by BSP startup code to initialize the libio subsystem.     
 */                                                                   
                                                                      
void rtems_libio_init( void )                                         
{                                                                     
    144c:	e24dd004 	sub	sp, sp, #4	; 0x4                              
    rtems_status_code rc;                                             
    int i;                                                            
    rtems_libio_t *iop;                                               
                                                                      
    if (rtems_libio_number_iops > 0)                                  
    1450:	0a000015 	beq	14ac <rtems_libio_init+0x70>                  
    {                                                                 
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
    1454:	e3a01034 	mov	r1, #52	; 0x34                                
    1458:	eb001c5f 	bl	85dc <calloc>                                  
    145c:	e59f3080 	ldr	r3, [pc, #128]	; 14e4 <rtems_libio_init+0xa8> 
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
    1460:	e3500000 	cmp	r0, #0	; 0x0                                  
    int i;                                                            
    rtems_libio_t *iop;                                               
                                                                      
    if (rtems_libio_number_iops > 0)                                  
    {                                                                 
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
    1464:	e5830000 	str	r0, [r3]                                      
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
    1468:	0280001a 	addeq	r0, r0, #26	; 0x1a                          
                                                                      
    if (rtems_libio_number_iops > 0)                                  
    {                                                                 
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
    146c:	0a000017 	beq	14d0 <rtems_libio_init+0x94>                  
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
    1470:	e59f3070 	ldr	r3, [pc, #112]	; 14e8 <rtems_libio_init+0xac> 
	for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++)         
    1474:	e5942000 	ldr	r2, [r4]                                      
        rtems_libio_iops = (rtems_libio_t *) calloc(rtems_libio_number_iops,
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
    1478:	e5830000 	str	r0, [r3]                                      
	for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++)         
    147c:	e3a01000 	mov	r1, #0	; 0x0                                  
    1480:	e1a03000 	mov	r3, r0                                        
    1484:	ea000000 	b	148c <rtems_libio_init+0x50>                    
		iop->data1 = iop + 1;                                               
    1488:	e503300c 	str	r3, [r3, #-12]                                
    148c:	e2811001 	add	r1, r1, #1	; 0x1                              
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
	for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++)         
    1490:	e1510002 	cmp	r1, r2                                        
		iop->data1 = iop + 1;                                               
    1494:	e2833034 	add	r3, r3, #52	; 0x34                            
                                                    sizeof(rtems_libio_t));
        if (rtems_libio_iops == NULL)                                 
            rtems_fatal_error_occurred(RTEMS_NO_MEMORY);              
                                                                      
        iop = rtems_libio_iop_freelist = rtems_libio_iops;            
	for (i = 0 ; i < (rtems_libio_number_iops - 1) ; i++, iop++)         
    1498:	1afffffa 	bne	1488 <rtems_libio_init+0x4c>                  
		iop->data1 = iop + 1;                                               
	iop->data1 = NULL;                                                   
    149c:	e3a03034 	mov	r3, #52	; 0x34                                
    14a0:	e0220193 	mla	r2, r3, r1, r0                                
    14a4:	e3a03000 	mov	r3, #0	; 0x0                                  
    14a8:	e502300c 	str	r3, [r2, #-12]                                
  /*                                                                  
   *  Create the binary semaphore used to provide mutual exclusion    
   *  on the IOP Table.                                               
   */                                                                 
                                                                      
  rc = rtems_semaphore_create(                                        
    14ac:	e59fc038 	ldr	ip, [pc, #56]	; 14ec <rtems_libio_init+0xb0>  
    14b0:	e59f0038 	ldr	r0, [pc, #56]	; 14f0 <rtems_libio_init+0xb4>  
    14b4:	e3a01001 	mov	r1, #1	; 0x1                                  
    14b8:	e3a02054 	mov	r2, #84	; 0x54                                
    14bc:	e3a03000 	mov	r3, #0	; 0x0                                  
    14c0:	e58dc000 	str	ip, [sp]                                      
    14c4:	eb000b04 	bl	40dc <rtems_semaphore_create>                  
    1,                                                                
    RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY, 
    RTEMS_NO_PRIORITY,                                                
    &rtems_libio_semaphore                                            
  );                                                                  
  if ( rc != RTEMS_SUCCESSFUL )                                       
    14c8:	e3500000 	cmp	r0, #0	; 0x0                                  
    14cc:	0a000000 	beq	14d4 <rtems_libio_init+0x98>                  
    rtems_fatal_error_occurred( rc );                                 
    14d0:	eb000d52 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
  /*                                                                  
   *  Initialize the base file system infrastructure.                 
   */                                                                 
                                                                      
  rtems_filesystem_initialize();                                      
}                                                                     
    14d4:	e28dd004 	add	sp, sp, #4	; 0x4                              
    14d8:	e8bd4010 	pop	{r4, lr}                                      
                                                                      
  /*                                                                  
   *  Initialize the base file system infrastructure.                 
   */                                                                 
                                                                      
  rtems_filesystem_initialize();                                      
    14dc:	ea001bfb 	b	84d0 <rtems_filesystem_initialize>              
                                                                      

000088f8 <rtems_libio_is_file_open>: { rtems_libio_t *iop; int result=0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
    88f8:	e59f3070 	ldr	r3, [pc, #112]	; 8970 <rtems_libio_is_file_open+0x78><== NOT EXECUTED
    88fc:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    8900:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
 */                                                                   
                                                                      
int rtems_libio_is_file_open(                                         
  void         *node_access                                           
)                                                                     
{                                                                     
    8904:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
    8908:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  rtems_libio_t     *iop;                                             
  int                result=0;                                        
  int                i;                                               
                                                                      
  rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
    890c:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    8910:	ebffee8a 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Look for any active file descriptor entry.                      
   */                                                                 
                                                                      
 for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){
    8914:	e59f3058 	ldr	r3, [pc, #88]	; 8974 <rtems_libio_is_file_open+0x7c><== NOT EXECUTED
    8918:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
    891c:	e59f3054 	ldr	r3, [pc, #84]	; 8978 <rtems_libio_is_file_open+0x80><== NOT EXECUTED
    8920:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    8924:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    8928:	ea000007 	b	894c <rtems_libio_is_file_open+0x54>            <== NOT EXECUTED
    if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) {                       
    892c:	e592300c 	ldr	r3, [r2, #12]                                 <== NOT EXECUTED
    8930:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
    8934:	0a000003 	beq	8948 <rtems_libio_is_file_open+0x50>          <== NOT EXECUTED
       /*                                                             
        *  Check if this node is under the file system that we        
        *  are trying to dismount.                                    
        */                                                            
                                                                      
       if ( iop->pathinfo.node_access == node_access ) {              
    8938:	e5923010 	ldr	r3, [r2, #16]                                 <== NOT EXECUTED
    893c:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    8940:	03a04001 	moveq	r4, #1	; 0x1                                <== NOT EXECUTED
    8944:	0a000004 	beq	895c <rtems_libio_is_file_open+0x64>          <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Look for any active file descriptor entry.                      
   */                                                                 
                                                                      
 for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){
    8948:	e2822034 	add	r2, r2, #52	; 0x34                            <== NOT EXECUTED
    894c:	e1510000 	cmp	r1, r0                                        <== NOT EXECUTED
    8950:	e2811001 	add	r1, r1, #1	; 0x1                              <== NOT EXECUTED
    8954:	3afffff4 	bcc	892c <rtems_libio_is_file_open+0x34>          <== NOT EXECUTED
    8958:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
          break;                                                      
       }                                                              
    }                                                                 
  }                                                                   
                                                                      
  rtems_semaphore_release( rtems_libio_semaphore );                   
    895c:	e59f300c 	ldr	r3, [pc, #12]	; 8970 <rtems_libio_is_file_open+0x78><== NOT EXECUTED
    8960:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    8964:	ebffeebb 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    8968:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    896c:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

0000897c <rtems_libio_is_open_files_in_fs>: { rtems_libio_t *iop; int result = 0; int i; rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
    897c:	e59f3070 	ldr	r3, [pc, #112]	; 89f4 <rtems_libio_is_open_files_in_fs+0x78><== NOT EXECUTED
    8980:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    8984:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
 */                                                                   
                                                                      
int rtems_libio_is_open_files_in_fs(                                  
  rtems_filesystem_mount_table_entry_t * fs_mt_entry                  
)                                                                     
{                                                                     
    8988:	e92d4010 	push	{r4, lr}                                     <== NOT EXECUTED
    898c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  rtems_libio_t     *iop;                                             
  int                result = 0;                                      
  int                i;                                               
                                                                      
  rtems_semaphore_obtain( rtems_libio_semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
    8990:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    8994:	ebffee69 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Look for any active file descriptor entry.                      
   */                                                                 
                                                                      
  for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){
    8998:	e59f3058 	ldr	r3, [pc, #88]	; 89f8 <rtems_libio_is_open_files_in_fs+0x7c><== NOT EXECUTED
    899c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
    89a0:	e59f3054 	ldr	r3, [pc, #84]	; 89fc <rtems_libio_is_open_files_in_fs+0x80><== NOT EXECUTED
    89a4:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    89a8:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    89ac:	ea000007 	b	89d0 <rtems_libio_is_open_files_in_fs+0x54>     <== NOT EXECUTED
                                                                      
    if ((iop->flags & LIBIO_FLAGS_OPEN) != 0) {                       
    89b0:	e592300c 	ldr	r3, [r2, #12]                                 <== NOT EXECUTED
    89b4:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
    89b8:	0a000003 	beq	89cc <rtems_libio_is_open_files_in_fs+0x50>   <== NOT EXECUTED
       /*                                                             
        *  Check if this node is under the file system that we        
        *  are trying to dismount.                                    
        */                                                            
                                                                      
       if ( iop->pathinfo.mt_entry == fs_mt_entry ) {                 
    89bc:	e592301c 	ldr	r3, [r2, #28]                                 <== NOT EXECUTED
    89c0:	e1530004 	cmp	r3, r4                                        <== NOT EXECUTED
    89c4:	03a04001 	moveq	r4, #1	; 0x1                                <== NOT EXECUTED
    89c8:	0a000004 	beq	89e0 <rtems_libio_is_open_files_in_fs+0x64>   <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Look for any active file descriptor entry.                      
   */                                                                 
                                                                      
  for (iop=rtems_libio_iops,i=0; i < rtems_libio_number_iops; iop++, i++){
    89cc:	e2822034 	add	r2, r2, #52	; 0x34                            <== NOT EXECUTED
    89d0:	e1510000 	cmp	r1, r0                                        <== NOT EXECUTED
    89d4:	e2811001 	add	r1, r1, #1	; 0x1                              <== NOT EXECUTED
    89d8:	3afffff4 	bcc	89b0 <rtems_libio_is_open_files_in_fs+0x34>   <== NOT EXECUTED
    89dc:	e3a04000 	mov	r4, #0	; 0x0                                  <== NOT EXECUTED
          break;                                                      
       }                                                              
    }                                                                 
  }                                                                   
                                                                      
  rtems_semaphore_release( rtems_libio_semaphore );                   
    89e0:	e59f300c 	ldr	r3, [pc, #12]	; 89f4 <rtems_libio_is_open_files_in_fs+0x78><== NOT EXECUTED
    89e4:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    89e8:	ebffee9a 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
                                                                      
  return result;                                                      
}                                                                     
    89ec:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    89f0:	e8bd8010 	pop	{r4, pc}                                      <== NOT EXECUTED
                                                                      

000088b8 <rtems_libio_to_fcntl_flags>: uint32_t flags ) { uint32_t fcntl_flags = 0; if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) {
    88b8:	e2003006 	and	r3, r0, #6	; 0x6                              <== NOT EXECUTED
    88bc:	e3530006 	cmp	r3, #6	; 0x6                                  <== NOT EXECUTED
 */                                                                   
                                                                      
uint32_t   rtems_libio_to_fcntl_flags(                                
  uint32_t   flags                                                    
)                                                                     
{                                                                     
    88c0:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
  uint32_t   fcntl_flags = 0;                                         
                                                                      
  if ( (flags & LIBIO_FLAGS_READ_WRITE) == LIBIO_FLAGS_READ_WRITE ) { 
    88c4:	03a00002 	moveq	r0, #2	; 0x2                                <== NOT EXECUTED
    88c8:	0a000003 	beq	88dc <rtems_libio_to_fcntl_flags+0x24>        <== NOT EXECUTED
    fcntl_flags |= O_RDWR;                                            
  } else if ( (flags & LIBIO_FLAGS_READ) == LIBIO_FLAGS_READ) {       
    88cc:	e3120002 	tst	r2, #2	; 0x2                                  <== NOT EXECUTED
    88d0:	01a03122 	lsreq	r3, r2, #2                                  <== NOT EXECUTED
    88d4:	13a00000 	movne	r0, #0	; 0x0                                <== NOT EXECUTED
    88d8:	02030001 	andeq	r0, r3, #1	; 0x1                            <== NOT EXECUTED
    fcntl_flags |= O_RDONLY;                                          
  } else if ( (flags & LIBIO_FLAGS_WRITE) == LIBIO_FLAGS_WRITE) {     
    fcntl_flags |= O_WRONLY;                                          
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_NO_DELAY) == LIBIO_FLAGS_NO_DELAY ) {     
    88dc:	e3120001 	tst	r2, #1	; 0x1                                  <== NOT EXECUTED
    fcntl_flags |= O_NONBLOCK;                                        
    88e0:	13800901 	orrne	r0, r0, #16384	; 0x4000                     <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_APPEND) == LIBIO_FLAGS_APPEND ) {         
    88e4:	e3120c02 	tst	r2, #512	; 0x200                              <== NOT EXECUTED
    fcntl_flags |= O_APPEND;                                          
    88e8:	13800008 	orrne	r0, r0, #8	; 0x8                            <== NOT EXECUTED
  }                                                                   
                                                                      
  if ( (flags & LIBIO_FLAGS_CREATE) == LIBIO_FLAGS_CREATE ) {         
    88ec:	e3120b01 	tst	r2, #1024	; 0x400                             <== NOT EXECUTED
    fcntl_flags |= O_CREAT;                                           
    88f0:	13800c02 	orrne	r0, r0, #512	; 0x200                        <== NOT EXECUTED
  }                                                                   
                                                                      
  return fcntl_flags;                                                 
}                                                                     
    88f4:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

00002474 <rtems_panic>: void rtems_panic( const char *printf_format, ... ) {
    2474:	e92d000f 	push	{r0, r1, r2, r3}                             <== NOT EXECUTED
    2478:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
    va_list arglist;                                                  
                                                                      
    va_start(arglist, printf_format);                                 
    (void) rtems_verror(RTEMS_ERROR_PANIC, printf_format, arglist);   
    247c:	e59d1004 	ldr	r1, [sp, #4]                                  <== NOT EXECUTED
    2480:	e28d2008 	add	r2, sp, #8	; 0x8                              <== NOT EXECUTED
    2484:	e3a00202 	mov	r0, #536870912	; 0x20000000                   <== NOT EXECUTED
    2488:	ebffff8d 	bl	22c4 <rtems_verror>                            <== NOT EXECUTED
    va_end(arglist);                                                  
}                                                                     
    248c:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
    2490:	e28dd010 	add	sp, sp, #16	; 0x10                            <== NOT EXECUTED
    2494:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

0000af04 <rtems_rate_monotonic_get_statistics>: rtems_status_code rtems_rate_monotonic_get_statistics( Objects_Id id, rtems_rate_monotonic_period_statistics *statistics ) {
    af04:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  if ( !statistics )                                                  
    af08:	e2514000 	subs	r4, r1, #0	; 0x0                             <== NOT EXECUTED
                                                                      
rtems_status_code rtems_rate_monotonic_get_statistics(                
  Objects_Id                               id,                        
  rtems_rate_monotonic_period_statistics  *statistics                 
)                                                                     
{                                                                     
    af0c:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  if ( !statistics )                                                  
    af10:	03a00009 	moveq	r0, #9	; 0x9                                <== NOT EXECUTED
    af14:	0a000013 	beq	af68 <rtems_rate_monotonic_get_statistics+0x64><== NOT EXECUTED
    af18:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
    af1c:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    af20:	e59f0048 	ldr	r0, [pc, #72]	; af70 <rtems_rate_monotonic_get_statistics+0x6c><== NOT EXECUTED
    af24:	ebfff16c 	bl	74dc <_Objects_Get>                            <== NOT EXECUTED
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
    af28:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
    af2c:	e3550000 	cmp	r5, #0	; 0x0                                  <== NOT EXECUTED
    af30:	13a00004 	movne	r0, #4	; 0x4                                <== NOT EXECUTED
    af34:	1a00000b 	bne	af68 <rtems_rate_monotonic_get_statistics+0x64><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      *statistics = the_period->Statistics;                           
    af38:	e280c054 	add	ip, r0, #84	; 0x54                            <== NOT EXECUTED
    af3c:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    af40:	e1a0e004 	mov	lr, r4                                        <== NOT EXECUTED
    af44:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    af48:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    af4c:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    af50:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    af54:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    af58:	e89c0003 	ldm	ip, {r0, r1}                                  <== NOT EXECUTED
    af5c:	e88e0003 	stm	lr, {r0, r1}                                  <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
    af60:	ebfff383 	bl	7d74 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    af64:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    af68:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    af6c:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

0000af74 <rtems_rate_monotonic_get_status>: rtems_status_code rtems_rate_monotonic_get_status( Objects_Id id, rtems_rate_monotonic_period_status *status ) {
    af74:	e92d4070 	push	{r4, r5, r6, lr}                             
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  if ( !status )                                                      
    af78:	e2515000 	subs	r5, r1, #0	; 0x0                             
                                                                      
rtems_status_code rtems_rate_monotonic_get_status(                    
  Objects_Id                           id,                            
  rtems_rate_monotonic_period_status  *status                         
)                                                                     
{                                                                     
    af7c:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  if ( !status )                                                      
    af80:	03a00009 	moveq	r0, #9	; 0x9                                
    af84:	0a000021 	beq	b010 <rtems_rate_monotonic_get_status+0x9c>   
    af88:	e1a01000 	mov	r1, r0                                        
    af8c:	e28d2008 	add	r2, sp, #8	; 0x8                              
    af90:	e59f0080 	ldr	r0, [pc, #128]	; b018 <rtems_rate_monotonic_get_status+0xa4>
    af94:	ebfff150 	bl	74dc <_Objects_Get>                            
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
    af98:	e59d3008 	ldr	r3, [sp, #8]                                  
    af9c:	e3530000 	cmp	r3, #0	; 0x0                                  
    afa0:	e1a06000 	mov	r6, r0                                        
    afa4:	13a00004 	movne	r0, #4	; 0x4                                
    afa8:	1a000018 	bne	b010 <rtems_rate_monotonic_get_status+0x9c>   
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0);
    afac:	e5963050 	ldr	r3, [r6, #80]                                 <== NOT EXECUTED
    afb0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    afb4:	01a02003 	moveq	r2, r3                                      <== NOT EXECUTED
    afb8:	15932008 	ldrne	r2, [r3, #8]                                <== NOT EXECUTED
      status->state = the_period->state;                              
    afbc:	e5963038 	ldr	r3, [r6, #56]                                 <== NOT EXECUTED
                                                                      
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
    afc0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
                                                                      
    case OBJECTS_LOCAL:                                               
      status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0);
    afc4:	e885000c 	stm	r5, {r2, r3}                                  <== NOT EXECUTED
        #else                                                         
          status->since_last_period = 0;                              
        #endif                                                        
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          status->executed_since_last_period.tv_sec = 0;              
          status->executed_since_last_period.tv_nsec = 0;             
    afc8:	05853014 	streq	r3, [r5, #20]                               <== NOT EXECUTED
      status->owner = ((the_period->owner) ? the_period->owner->Object.id : 0);
      status->state = the_period->state;                              
                                                                      
      if ( status->state == RATE_MONOTONIC_INACTIVE ) {               
        #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS      
          status->since_last_period.tv_sec = 0;                       
    afcc:	05853008 	streq	r3, [r5, #8]                                <== NOT EXECUTED
          status->since_last_period.tv_nsec = 0;                      
    afd0:	0585300c 	streq	r3, [r5, #12]                               <== NOT EXECUTED
        #else                                                         
          status->since_last_period = 0;                              
        #endif                                                        
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          status->executed_since_last_period.tv_sec = 0;              
    afd4:	05853010 	streq	r3, [r5, #16]                               <== NOT EXECUTED
    afd8:	0a00000a 	beq	b008 <rtems_rate_monotonic_get_status+0x94>   <== NOT EXECUTED
         *  This lets them share one single invocation of _TOD_Get_uptime().
         */                                                           
        #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \
            defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS)     
          struct timespec uptime;                                     
          _TOD_Get_uptime( &uptime );                                 
    afdc:	e1a0000d 	mov	r0, sp                                        <== NOT EXECUTED
    afe0:	ebffeee5 	bl	6b7c <_TOD_Get_uptime>                         <== NOT EXECUTED
        #endif                                                        
                                                                      
        #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS      
          _Timespec_Subtract(                                         
    afe4:	e2860044 	add	r0, r6, #68	; 0x44                            <== NOT EXECUTED
    afe8:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
    afec:	e2852008 	add	r2, r5, #8	; 0x8                              <== NOT EXECUTED
    aff0:	ebfff78c 	bl	8e28 <_Timespec_Subtract>                      <== NOT EXECUTED
          status->since_last_period =                                 
            _Watchdog_Ticks_since_boot - the_period->time_at_period;  
        #endif                                                        
                                                                      
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          _Timespec_Subtract(                                         
    aff4:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
    aff8:	e2852010 	add	r2, r5, #16	; 0x10                            <== NOT EXECUTED
    affc:	e59f0018 	ldr	r0, [pc, #24]	; b01c <rtems_rate_monotonic_get_status+0xa8><== NOT EXECUTED
         *  This lets them share one single invocation of _TOD_Get_uptime().
         */                                                           
        #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \
            defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS)     
          struct timespec uptime;                                     
          _TOD_Get_uptime( &uptime );                                 
    b000:	e1a0400d 	mov	r4, sp                                        <== NOT EXECUTED
          status->since_last_period =                                 
            _Watchdog_Ticks_since_boot - the_period->time_at_period;  
        #endif                                                        
                                                                      
        #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS           
          _Timespec_Subtract(                                         
    b004:	ebfff787 	bl	8e28 <_Timespec_Subtract>                      <== NOT EXECUTED
            the_period->owner->cpu_time_used -                        
            the_period->owner_executed_at_period;                     
        #endif                                                        
      }                                                               
                                                                      
      _Thread_Enable_dispatch();                                      
    b008:	ebfff359 	bl	7d74 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    b00c:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    b010:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    b014:	e8bd8070 	pop	{r4, r5, r6, pc}                              
                                                                      

000057d0 <rtems_rate_monotonic_report_statistics>: void rtems_rate_monotonic_report_statistics( void ) { rtems_rate_monotonic_report_statistics_with_plugin( NULL, printk_plugin );
    57d0:	e59f1004 	ldr	r1, [pc, #4]	; 57dc <rtems_rate_monotonic_report_statistics+0xc><== NOT EXECUTED
    57d4:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    57d8:	eaffff79 	b	55c4 <rtems_rate_monotonic_report_statistics_with_plugin><== NOT EXECUTED
                                                                      

000055c4 <rtems_rate_monotonic_report_statistics_with_plugin>: */ void rtems_rate_monotonic_report_statistics_with_plugin( void *context, rtems_printk_plugin_t print ) {
    55c4:	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 )                                                       
    55c8:	e2515000 	subs	r5, r1, #0	; 0x0                             <== NOT EXECUTED
 */                                                                   
void rtems_rate_monotonic_report_statistics_with_plugin(              
  void                  *context,                                     
  rtems_printk_plugin_t  print                                        
)                                                                     
{                                                                     
    55cc:	e24dd070 	sub	sp, sp, #112	; 0x70                           <== NOT EXECUTED
    55d0:	e1a06000 	mov	r6, 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 )                                                       
    55d4:	0a000071 	beq	57a0 <rtems_rate_monotonic_report_statistics_with_plugin+0x1dc><== NOT EXECUTED
    return;                                                           
                                                                      
  (*print)( context, "Period information by period\n" );              
    55d8:	e59f11c8 	ldr	r1, [pc, #456]	; 57a8 <rtems_rate_monotonic_report_statistics_with_plugin+0x1e4><== NOT EXECUTED
    55dc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    55e0:	e12fff15 	bx	r5                                             <== NOT EXECUTED
#if defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS)             
  (*print)( context, "--- CPU times are in seconds ---\n" );          
    55e4:	e59f11c0 	ldr	r1, [pc, #448]	; 57ac <rtems_rate_monotonic_report_statistics_with_plugin+0x1e8><== NOT EXECUTED
    55e8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    55ec:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    55f0:	e12fff15 	bx	r5                                             <== NOT EXECUTED
#endif                                                                
#if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS)        
  (*print)( context, "--- Wall times are in seconds ---\n" );         
    55f4:	e59f11b4 	ldr	r1, [pc, #436]	; 57b0 <rtems_rate_monotonic_report_statistics_with_plugin+0x1ec><== NOT EXECUTED
    55f8:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    55fc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5600:	e12fff15 	bx	r5                                             <== NOT EXECUTED
  Be sure to test the various cases.                                  
  (*print)( context,"\                                                
1234567890123456789012345678901234567890123456789012345678901234567890123456789\
\n");                                                                 
*/                                                                    
  (*print)( context, "   ID     OWNER COUNT MISSED     "              
    5604:	e59f11a8 	ldr	r1, [pc, #424]	; 57b4 <rtems_rate_monotonic_report_statistics_with_plugin+0x1f0><== NOT EXECUTED
    5608:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    560c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5610:	e12fff15 	bx	r5                                             <== NOT EXECUTED
       #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS       
          "      "                                                    
       #endif                                                         
          "   WALL TIME\n"                                            
  );                                                                  
  (*print)( context, "                               "                
    5614:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    5618:	e59f1198 	ldr	r1, [pc, #408]	; 57b8 <rtems_rate_monotonic_report_statistics_with_plugin+0x1f4><== NOT EXECUTED
    561c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5620:	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 ;                   
    5624:	e59f3190 	ldr	r3, [pc, #400]	; 57bc <rtems_rate_monotonic_report_statistics_with_plugin+0x1f8><== NOT EXECUTED
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
    5628:	e28d8010 	add	r8, sp, #16	; 0x10                            <== 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 ;                   
    562c:	e5937008 	ldr	r7, [r3, #8]                                  <== NOT EXECUTED
     */                                                               
    {                                                                 
    #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS               
      struct timespec   cpu_average;                                  
                                                                      
      _Timespec_Divide_by_integer(                                    
    5630:	e2889018 	add	r9, r8, #24	; 0x18                            <== NOT EXECUTED
    5634:	e28db060 	add	fp, sp, #96	; 0x60                            <== NOT EXECUTED
     *  print Wall time part of statistics                            
     */                                                               
    {                                                                 
    #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS          
      struct timespec  wall_average;                                  
      _Timespec_Divide_by_integer(                                    
    5638:	e288a030 	add	sl, r8, #48	; 0x30                            <== NOT EXECUTED
    563c:	ea000051 	b	5788 <rtems_rate_monotonic_report_statistics_with_plugin+0x1c4><== NOT EXECUTED
   * is a period that is inactive, we just get an error back.  No big deal.
   */                                                                 
  for ( id=_Rate_monotonic_Information.minimum_id ;                   
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
    5640:	eb00162f 	bl	af04 <rtems_rate_monotonic_get_statistics>     <== NOT EXECUTED
    if ( status != RTEMS_SUCCESSFUL )                                 
    5644:	e2504000 	subs	r4, r0, #0	; 0x0                             <== NOT EXECUTED
    5648:	1a00004d 	bne	5784 <rtems_rate_monotonic_report_statistics_with_plugin+0x1c0><== NOT EXECUTED
      continue;                                                       
                                                                      
    /* If the above passed, so should this but check it anyway */     
    status = rtems_rate_monotonic_get_status( id, &the_status );      
    564c:	e28d1048 	add	r1, sp, #72	; 0x48                            <== NOT EXECUTED
    5650:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    5654:	eb001646 	bl	af74 <rtems_rate_monotonic_get_status>         <== NOT EXECUTED
        continue;                                                     
    #endif                                                            
                                                                      
    name[ 0 ] = '\0';                                                 
                                                                      
    if ( the_status.owner ) {                                         
    5658:	e59d0048 	ldr	r0, [sp, #72]                                 <== NOT EXECUTED
    565c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    #if defined(RTEMS_DEBUG)                                          
      if ( status != RTEMS_SUCCESSFUL )                               
        continue;                                                     
    #endif                                                            
                                                                      
    name[ 0 ] = '\0';                                                 
    5660:	e5cd406b 	strb	r4, [sp, #107]                               <== NOT EXECUTED
                                                                      
    if ( the_status.owner ) {                                         
      rtems_object_get_name( the_status.owner, sizeof(name), name );  
    5664:	128d206b 	addne	r2, sp, #107	; 0x6b                         <== NOT EXECUTED
    5668:	13a01005 	movne	r1, #5	; 0x5                                <== NOT EXECUTED
    566c:	1b0000b4 	blne	5944 <rtems_object_get_name>                 <== NOT EXECUTED
                                                                      
    /*                                                                
     *  Print part of report line that is not dependent on granularity
     */                                                               
                                                                      
    (*print)( context,                                                
    5670:	e59d3010 	ldr	r3, [sp, #16]                                 <== NOT EXECUTED
    5674:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
    5678:	e59d3014 	ldr	r3, [sp, #20]                                 <== NOT EXECUTED
    567c:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
    5680:	e58d3004 	str	r3, [sp, #4]                                  <== NOT EXECUTED
    5684:	e59f1134 	ldr	r1, [pc, #308]	; 57c0 <rtems_rate_monotonic_report_statistics_with_plugin+0x1fc><== NOT EXECUTED
    5688:	e28d306b 	add	r3, sp, #107	; 0x6b                           <== NOT EXECUTED
    568c:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    5690:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5694:	e12fff15 	bx	r5                                             <== NOT EXECUTED
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
                                                                      
    if (the_stats.count == 0) {                                       
    5698:	e59d3010 	ldr	r3, [sp, #16]                                 <== NOT EXECUTED
    569c:	e2531000 	subs	r1, r3, #0	; 0x0                             <== NOT EXECUTED
     */                                                               
    {                                                                 
    #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS               
      struct timespec   cpu_average;                                  
                                                                      
      _Timespec_Divide_by_integer(                                    
    56a0:	e1a0200b 	mov	r2, fp                                        <== NOT EXECUTED
    56a4:	e1a00009 	mov	r0, r9                                        <== NOT EXECUTED
                                                                      
    /*                                                                
     *  If the count is zero, don't print statistics                  
     */                                                               
                                                                      
    if (the_stats.count == 0) {                                       
    56a8:	1a000004 	bne	56c0 <rtems_rate_monotonic_report_statistics_with_plugin+0xfc><== NOT EXECUTED
      (*print)( context, "\n" );                                      
    56ac:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    56b0:	e59f110c 	ldr	r1, [pc, #268]	; 57c4 <rtems_rate_monotonic_report_statistics_with_plugin+0x200><== NOT EXECUTED
    56b4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    56b8:	e12fff15 	bx	r5                                             <== NOT EXECUTED
    56bc:	ea000030 	b	5784 <rtems_rate_monotonic_report_statistics_with_plugin+0x1c0><== NOT EXECUTED
     */                                                               
    {                                                                 
    #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS               
      struct timespec   cpu_average;                                  
                                                                      
      _Timespec_Divide_by_integer(                                    
    56c0:	eb000d9f 	bl	8d44 <_Timespec_Divide_by_integer>             <== NOT EXECUTED
         &the_stats.total_cpu_time,                                   
         the_stats.count,                                             
         &cpu_average                                                 
      );                                                              
      (*print)( context,                                              
    56c4:	e59d001c 	ldr	r0, [sp, #28]                                 <== NOT EXECUTED
    56c8:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    56cc:	eb003da3 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    56d0:	e59d3020 	ldr	r3, [sp, #32]                                 <== NOT EXECUTED
    56d4:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    56d8:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    56dc:	e59d0024 	ldr	r0, [sp, #36]                                 <== NOT EXECUTED
    56e0:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
    56e4:	eb003d9d 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    56e8:	e59d3060 	ldr	r3, [sp, #96]                                 <== NOT EXECUTED
    56ec:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
    56f0:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    56f4:	e59d0064 	ldr	r0, [sp, #100]                                <== NOT EXECUTED
    56f8:	e58d3008 	str	r3, [sp, #8]                                  <== NOT EXECUTED
    56fc:	eb003d97 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    5700:	e1a03004 	mov	r3, r4                                        <== NOT EXECUTED
    5704:	e58d000c 	str	r0, [sp, #12]                                 <== NOT EXECUTED
    5708:	e59f10b8 	ldr	r1, [pc, #184]	; 57c8 <rtems_rate_monotonic_report_statistics_with_plugin+0x204><== NOT EXECUTED
    570c:	e59d2018 	ldr	r2, [sp, #24]                                 <== NOT EXECUTED
    5710:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    5714:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5718:	e12fff15 	bx	r5                                             <== NOT EXECUTED
     *  print Wall time part of statistics                            
     */                                                               
    {                                                                 
    #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS          
      struct timespec  wall_average;                                  
      _Timespec_Divide_by_integer(                                    
    571c:	e1a0200b 	mov	r2, fp                                        <== NOT EXECUTED
    5720:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
    5724:	e59d1010 	ldr	r1, [sp, #16]                                 <== NOT EXECUTED
    5728:	eb000d85 	bl	8d44 <_Timespec_Divide_by_integer>             <== NOT EXECUTED
         &the_stats.total_wall_time,                                  
         the_stats.count,                                             
         &wall_average                                                
      );                                                              
      (*print)( context,                                              
    572c:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    5730:	e59d0034 	ldr	r0, [sp, #52]                                 <== NOT EXECUTED
    5734:	eb003d89 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    5738:	e59d3038 	ldr	r3, [sp, #56]                                 <== NOT EXECUTED
    573c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    5740:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    5744:	e59d003c 	ldr	r0, [sp, #60]                                 <== NOT EXECUTED
    5748:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
    574c:	eb003d83 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    5750:	e59d3060 	ldr	r3, [sp, #96]                                 <== NOT EXECUTED
    5754:	e58d0004 	str	r0, [sp, #4]                                  <== NOT EXECUTED
    5758:	e3a01ffa 	mov	r1, #1000	; 0x3e8                             <== NOT EXECUTED
    575c:	e59d0064 	ldr	r0, [sp, #100]                                <== NOT EXECUTED
    5760:	e58d3008 	str	r3, [sp, #8]                                  <== NOT EXECUTED
    5764:	eb003d7d 	bl	14d60 <__aeabi_idiv>                           <== NOT EXECUTED
    5768:	e1a03004 	mov	r3, r4                                        <== NOT EXECUTED
    576c:	e58d000c 	str	r0, [sp, #12]                                 <== NOT EXECUTED
    5770:	e59f1054 	ldr	r1, [pc, #84]	; 57cc <rtems_rate_monotonic_report_statistics_with_plugin+0x208><== NOT EXECUTED
    5774:	e1a00006 	mov	r0, r6                                        <== NOT EXECUTED
    5778:	e59d2030 	ldr	r2, [sp, #48]                                 <== NOT EXECUTED
    577c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    5780:	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 ;                   
        id <= _Rate_monotonic_Information.maximum_id ;                
        id++ ) {                                                      
    5784:	e2877001 	add	r7, r7, #1	; 0x1                              <== 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 ;                   
        id <= _Rate_monotonic_Information.maximum_id ;                
    5788:	e59f202c 	ldr	r2, [pc, #44]	; 57bc <rtems_rate_monotonic_report_statistics_with_plugin+0x1f8><== NOT EXECUTED
    578c:	e592300c 	ldr	r3, [r2, #12]                                 <== NOT EXECUTED
    5790:	e1570003 	cmp	r7, r3                                        <== NOT EXECUTED
        id++ ) {                                                      
    status = rtems_rate_monotonic_get_statistics( id, &the_stats );   
    5794:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    5798:	e1a01008 	mov	r1, r8                                        <== 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 ;                   
        id <= _Rate_monotonic_Information.maximum_id ;                
    579c:	9affffa7 	bls	5640 <rtems_rate_monotonic_report_statistics_with_plugin+0x7c><== NOT EXECUTED
        the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall
      );                                                              
    #endif                                                            
    }                                                                 
  }                                                                   
}                                                                     
    57a0:	e28dd070 	add	sp, sp, #112	; 0x70                           <== NOT EXECUTED
    57a4:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      

000057e0 <rtems_rate_monotonic_reset_all_statistics>:
    57e0:	e59f303c 	ldr	r3, [pc, #60]	; 5824 <rtems_rate_monotonic_reset_all_statistics+0x44><== NOT EXECUTED
    57e4:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
    57e8:	e2822001 	add	r2, r2, #1	; 0x1                              <== NOT EXECUTED
                                                                      
/*                                                                    
 *  rtems_rate_monotonic_reset_all_statistics                         
 */                                                                   
void rtems_rate_monotonic_reset_all_statistics( void )                
{                                                                     
    57ec:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
    57f0:	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 ;                 
    57f4:	e59f302c 	ldr	r3, [pc, #44]	; 5828 <rtems_rate_monotonic_reset_all_statistics+0x48><== NOT EXECUTED
          id <= _Rate_monotonic_Information.maximum_id ;              
    57f8:	e1a05003 	mov	r5, 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 ;                 
    57fc:	e5934008 	ldr	r4, [r3, #8]                                  <== NOT EXECUTED
    5800:	ea000000 	b	5808 <rtems_rate_monotonic_reset_all_statistics+0x28><== NOT EXECUTED
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
      status = rtems_rate_monotonic_reset_statistics( id );           
    5804:	eb000008 	bl	582c <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 ;                 
          id <= _Rate_monotonic_Information.maximum_id ;              
    5808:	e595300c 	ldr	r3, [r5, #12]                                 <== NOT EXECUTED
    580c:	e1540003 	cmp	r4, r3                                        <== NOT EXECUTED
          id++ ) {                                                    
      status = rtems_rate_monotonic_reset_statistics( id );           
    5810:	e1a00004 	mov	r0, r4                                        <== 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 ;                 
          id <= _Rate_monotonic_Information.maximum_id ;              
          id++ ) {                                                    
    5814:	e2844001 	add	r4, r4, #1	; 0x1                              <== 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 ;                 
          id <= _Rate_monotonic_Information.maximum_id ;              
    5818:	9afffff9 	bls	5804 <rtems_rate_monotonic_reset_all_statistics+0x24><== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
}                                                                     
    581c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
    }                                                                 
                                                                      
  /*                                                                  
   *  Done so exit thread dispatching disabled critical section.      
   */                                                                 
  _Thread_Enable_dispatch();                                          
    5820:	ea000953 	b	7d74 <_Thread_Enable_dispatch>                  <== NOT EXECUTED
                                                                      

0000582c <rtems_rate_monotonic_reset_statistics>: */ rtems_status_code rtems_rate_monotonic_reset_statistics( Objects_Id id ) {
    582c:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
    5830:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    5834:	e1a01000 	mov	r1, r0                                        <== NOT EXECUTED
    5838:	e1a0200d 	mov	r2, sp                                        <== NOT EXECUTED
    583c:	e59f0048 	ldr	r0, [pc, #72]	; 588c <rtems_rate_monotonic_reset_statistics+0x60><== NOT EXECUTED
    5840:	eb000725 	bl	74dc <_Objects_Get>                            <== NOT EXECUTED
  Objects_Locations              location;                            
  Rate_monotonic_Control        *the_period;                          
                                                                      
  the_period = _Rate_monotonic_Get( id, &location );                  
  switch ( location ) {                                               
    5844:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
    5848:	e3550000 	cmp	r5, #0	; 0x0                                  <== NOT EXECUTED
    584c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
    5850:	13a00004 	movne	r0, #4	; 0x4                                <== NOT EXECUTED
    5854:	1a00000a 	bne	5884 <rtems_rate_monotonic_reset_statistics+0x58><== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      _Rate_monotonic_Reset_statistics( the_period );                 
    5858:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    585c:	e3a02038 	mov	r2, #56	; 0x38                                <== NOT EXECUTED
    5860:	e2840054 	add	r0, r4, #84	; 0x54                            <== NOT EXECUTED
    5864:	eb001d73 	bl	ce38 <memset>                                  <== NOT EXECUTED
    5868:	e3e03102 	mvn	r3, #-2147483648	; 0x80000000                 <== NOT EXECUTED
    586c:	e5843078 	str	r3, [r4, #120]                                <== NOT EXECUTED
    5870:	e584305c 	str	r3, [r4, #92]                                 <== NOT EXECUTED
    5874:	e5843060 	str	r3, [r4, #96]                                 <== NOT EXECUTED
    5878:	e5843074 	str	r3, [r4, #116]                                <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
    587c:	eb00093c 	bl	7d74 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    5880:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    5884:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    5888:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
                                                                      

0000f63c <rtems_region_extend>: rtems_status_code rtems_region_extend( Objects_Id id, void *starting_address, uint32_t length ) {
    f63c:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  Heap_Extend_status  heap_status;                                    
  Objects_Locations   location;                                       
  rtems_status_code   return_status = RTEMS_INTERNAL_ERROR;           
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
    f640:	e2517000 	subs	r7, r1, #0	; 0x0                             
rtems_status_code rtems_region_extend(                                
  Objects_Id          id,                                             
  void               *starting_address,                               
  uint32_t            length                                          
)                                                                     
{                                                                     
    f644:	e1a04000 	mov	r4, r0                                        
    f648:	e24dd008 	sub	sp, sp, #8	; 0x8                              
    f64c:	e1a06002 	mov	r6, r2                                        
  Heap_Extend_status  heap_status;                                    
  Objects_Locations   location;                                       
  rtems_status_code   return_status = RTEMS_INTERNAL_ERROR;           
  Region_Control     *the_region;                                     
                                                                      
  if ( !starting_address )                                            
    f650:	03a04009 	moveq	r4, #9	; 0x9                                
    f654:	0a000029 	beq	f700 <rtems_region_extend+0xc4>               
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                      /* to prevent deletion */
    f658:	e59f30ac 	ldr	r3, [pc, #172]	; f70c <rtems_region_extend+0xd0>
    f65c:	e5930000 	ldr	r0, [r3]                                      
    f660:	eb0008c6 	bl	11980 <_API_Mutex_Lock>                        
RTEMS_INLINE_ROUTINE Region_Control *_Region_Get (                    
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Region_Control *)                                           
    f664:	e1a01004 	mov	r1, r4                                        
    f668:	e59f00a0 	ldr	r0, [pc, #160]	; f710 <rtems_region_extend+0xd4>
    f66c:	e1a0200d 	mov	r2, sp                                        
    f670:	eb000f3f 	bl	13374 <_Objects_Get_no_protection>             
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
    f674:	e59d5000 	ldr	r5, [sp]                                      
    f678:	e3550000 	cmp	r5, #0	; 0x0                                  
    f67c:	e1a04000 	mov	r4, r0                                        
    f680:	0a000003 	beq	f694 <rtems_region_extend+0x58>               
    f684:	e3550001 	cmp	r5, #1	; 0x1                                  
    f688:	03a04004 	moveq	r4, #4	; 0x4                                
    f68c:	1a000017 	bne	f6f0 <rtems_region_extend+0xb4>               
    f690:	ea000017 	b	f6f4 <rtems_region_extend+0xb8>                 
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        heap_status = _Heap_Extend(                                   
    f694:	e1a01007 	mov	r1, r7                                        
    f698:	e1a02006 	mov	r2, r6                                        
    f69c:	e2800068 	add	r0, r0, #104	; 0x68                           
    f6a0:	e28d3004 	add	r3, sp, #4	; 0x4                              
    f6a4:	eb000baf 	bl	12568 <_Heap_Extend>                           
          starting_address,                                           
          length,                                                     
          &amount_extended                                            
        );                                                            
                                                                      
        switch ( heap_status ) {                                      
    f6a8:	e3500001 	cmp	r0, #1	; 0x1                                  
    f6ac:	03a04009 	moveq	r4, #9	; 0x9                                
    f6b0:	0a00000f 	beq	f6f4 <rtems_region_extend+0xb8>               
    f6b4:	3a000002 	bcc	f6c4 <rtems_region_extend+0x88>               
    f6b8:	e3500002 	cmp	r0, #2	; 0x2                                  
    f6bc:	1a00000b 	bne	f6f0 <rtems_region_extend+0xb4>               
    f6c0:	ea000008 	b	f6e8 <rtems_region_extend+0xac>                 
          case HEAP_EXTEND_SUCCESSFUL:                                
            the_region->length                += amount_extended;     
    f6c4:	e59d1004 	ldr	r1, [sp, #4]                                  
    f6c8:	e5942054 	ldr	r2, [r4, #84]                                 
            the_region->maximum_segment_size  += amount_extended;     
    f6cc:	e594305c 	ldr	r3, [r4, #92]                                 
          &amount_extended                                            
        );                                                            
                                                                      
        switch ( heap_status ) {                                      
          case HEAP_EXTEND_SUCCESSFUL:                                
            the_region->length                += amount_extended;     
    f6d0:	e0822001 	add	r2, r2, r1                                    
            the_region->maximum_segment_size  += amount_extended;     
    f6d4:	e0833001 	add	r3, r3, r1                                    
    f6d8:	e584305c 	str	r3, [r4, #92]                                 
          &amount_extended                                            
        );                                                            
                                                                      
        switch ( heap_status ) {                                      
          case HEAP_EXTEND_SUCCESSFUL:                                
            the_region->length                += amount_extended;     
    f6dc:	e5842054 	str	r2, [r4, #84]                                 
            the_region->maximum_segment_size  += amount_extended;     
    f6e0:	e1a04005 	mov	r4, r5                                        
    f6e4:	ea000002 	b	f6f4 <rtems_region_extend+0xb8>                 
            return_status = RTEMS_SUCCESSFUL;                         
            break;                                                    
    f6e8:	e3a04018 	mov	r4, #24	; 0x18                                
    f6ec:	ea000000 	b	f6f4 <rtems_region_extend+0xb8>                 
    f6f0:	e3a04019 	mov	r4, #25	; 0x19                                <== NOT EXECUTED
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
    f6f4:	e59f3010 	ldr	r3, [pc, #16]	; f70c <rtems_region_extend+0xd0>
    f6f8:	e5930000 	ldr	r0, [r3]                                      
    f6fc:	eb0008bb 	bl	119f0 <_API_Mutex_Unlock>                      
  return return_status;                                               
}                                                                     
    f700:	e1a00004 	mov	r0, r4                                        
    f704:	e28dd008 	add	sp, sp, #8	; 0x8                              
    f708:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

0000fa38 <rtems_region_resize_segment>: Objects_Id id, void *segment, size_t size, size_t *old_size ) {
    fa38:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  uint32_t                 osize;                                     
  rtems_status_code        return_status = RTEMS_INTERNAL_ERROR;      
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
    fa3c:	e253a000 	subs	sl, r3, #0	; 0x0                             
  Objects_Id  id,                                                     
  void       *segment,                                                
  size_t      size,                                                   
  size_t     *old_size                                                
)                                                                     
{                                                                     
    fa40:	e24dd010 	sub	sp, sp, #16	; 0x10                            
    fa44:	e1a04000 	mov	r4, r0                                        
    fa48:	e1a06001 	mov	r6, r1                                        
    fa4c:	e1a07002 	mov	r7, r2                                        
  uint32_t                 osize;                                     
  rtems_status_code        return_status = RTEMS_INTERNAL_ERROR;      
  Heap_Resize_status       status;                                    
  register Region_Control *the_region;                                
                                                                      
  if ( !old_size )                                                    
    fa50:	0a000029 	beq	fafc <rtems_region_resize_segment+0xc4>       
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
    fa54:	e59f80b0 	ldr	r8, [pc, #176]	; fb0c <rtems_region_resize_segment+0xd4>
    fa58:	e5980000 	ldr	r0, [r8]                                      
    fa5c:	eb0007c7 	bl	11980 <_API_Mutex_Lock>                        
    fa60:	e1a01004 	mov	r1, r4                                        
    fa64:	e59f00a4 	ldr	r0, [pc, #164]	; fb10 <rtems_region_resize_segment+0xd8>
    fa68:	e28d2008 	add	r2, sp, #8	; 0x8                              
    fa6c:	eb000e40 	bl	13374 <_Objects_Get_no_protection>             
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
    fa70:	e59d3008 	ldr	r3, [sp, #8]                                  
    fa74:	e3530000 	cmp	r3, #0	; 0x0                                  
    fa78:	e1a05000 	mov	r5, r0                                        
    fa7c:	0a000005 	beq	fa98 <rtems_region_resize_segment+0x60>       
    fa80:	e3530001 	cmp	r3, #1	; 0x1                                  
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
    fa84:	e5980000 	ldr	r0, [r8]                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
    the_region = _Region_Get( id, &location );                        
    switch ( location ) {                                             
    fa88:	03a04004 	moveq	r4, #4	; 0x4                                
    fa8c:	13a04019 	movne	r4, #25	; 0x19                              
      case OBJECTS_ERROR:                                             
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
    fa90:	eb0007d6 	bl	119f0 <_API_Mutex_Unlock>                      
    fa94:	ea000019 	b	fb00 <rtems_region_resize_segment+0xc8>         
                                                                      
      case OBJECTS_LOCAL:                                             
                                                                      
        _Region_Debug_Walk( the_region, 7 );                          
                                                                      
        status = _Heap_Resize_block(                                  
    fa98:	e28d3004 	add	r3, sp, #4	; 0x4                              
    fa9c:	e28dc00c 	add	ip, sp, #12	; 0xc                             
    faa0:	e1a01006 	mov	r1, r6                                        
    faa4:	e1a02007 	mov	r2, r7                                        
    faa8:	e2800068 	add	r0, r0, #104	; 0x68                           
    faac:	e58dc000 	str	ip, [sp]                                      
    fab0:	eb000c2a 	bl	12b60 <_Heap_Resize_block>                     
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
    fab4:	e59d3004 	ldr	r3, [sp, #4]                                  
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 )     
    fab8:	e2504000 	subs	r4, r0, #0	; 0x0                             
          segment,                                                    
          (uint32_t) size,                                            
          &osize,                                                     
          &avail_size                                                 
        );                                                            
        *old_size = (uint32_t) osize;                                 
    fabc:	e58a3000 	str	r3, [sl]                                      
                                                                      
        _Region_Debug_Walk( the_region, 8 );                          
                                                                      
        if ( status == HEAP_RESIZE_SUCCESSFUL && avail_size > 0 )     
    fac0:	1a000005 	bne	fadc <rtems_region_resize_segment+0xa4>       
    fac4:	e59d300c 	ldr	r3, [sp, #12]                                 <== NOT EXECUTED
    fac8:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    facc:	0a000002 	beq	fadc <rtems_region_resize_segment+0xa4>       <== NOT EXECUTED
          _Region_Process_queue( the_region );    /* unlocks allocator */
    fad0:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    fad4:	eb001d6a 	bl	17084 <_Region_Process_queue>                  <== NOT EXECUTED
    fad8:	ea000008 	b	fb00 <rtems_region_resize_segment+0xc8>         <== NOT EXECUTED
        else                                                          
          _RTEMS_Unlock_allocator();                                  
    fadc:	e59f3028 	ldr	r3, [pc, #40]	; fb0c <rtems_region_resize_segment+0xd4>
    fae0:	e5930000 	ldr	r0, [r3]                                      
    fae4:	eb0007c1 	bl	119f0 <_API_Mutex_Unlock>                      
                                                                      
        return                                                        
    fae8:	e3540000 	cmp	r4, #0	; 0x0                                  
    faec:	0a000003 	beq	fb00 <rtems_region_resize_segment+0xc8>       
    faf0:	e3540001 	cmp	r4, #1	; 0x1                                  
    faf4:	0284400c 	addeq	r4, r4, #12	; 0xc                           
    faf8:	0a000000 	beq	fb00 <rtems_region_resize_segment+0xc8>       
        return_status = RTEMS_INVALID_ID;                             
        break;                                                        
    }                                                                 
                                                                      
  _RTEMS_Unlock_allocator();                                          
  return return_status;                                               
    fafc:	e3a04009 	mov	r4, #9	; 0x9                                  
}                                                                     
    fb00:	e1a00004 	mov	r0, r4                                        
    fb04:	e28dd010 	add	sp, sp, #16	; 0x10                            
    fb08:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      

000040dc <rtems_semaphore_create>: uint32_t count, rtems_attribute attribute_set, rtems_task_priority priority_ceiling, rtems_id *id ) {
    40dc:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             
  register Semaphore_Control *the_semaphore;                          
  CORE_mutex_Attributes       the_mutex_attributes;                   
  CORE_semaphore_Attributes   the_semaphore_attributes;               
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    40e0:	e250a000 	subs	sl, r0, #0	; 0x0                             
  uint32_t             count,                                         
  rtems_attribute      attribute_set,                                 
  rtems_task_priority  priority_ceiling,                              
  rtems_id            *id                                             
)                                                                     
{                                                                     
    40e4:	e24dd018 	sub	sp, sp, #24	; 0x18                            
    40e8:	e1a07001 	mov	r7, r1                                        
    40ec:	e1a04002 	mov	r4, r2                                        
    40f0:	e1a08003 	mov	r8, r3                                        
    40f4:	e59d9038 	ldr	r9, [sp, #56]                                 
  register Semaphore_Control *the_semaphore;                          
  CORE_mutex_Attributes       the_mutex_attributes;                   
  CORE_semaphore_Attributes   the_semaphore_attributes;               
                                                                      
  if ( !rtems_is_name_valid( name ) )                                 
    40f8:	02800003 	addeq	r0, r0, #3	; 0x3                            
    40fc:	0a000062 	beq	428c <rtems_semaphore_create+0x1b0>           
    return RTEMS_INVALID_NAME;                                        
                                                                      
  if ( !id )                                                          
    4100:	e3590000 	cmp	r9, #0	; 0x0                                  
    4104:	03a00009 	moveq	r0, #9	; 0x9                                
    4108:	0a00005f 	beq	428c <rtems_semaphore_create+0x1b0>           
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  } else                                                              
#endif                                                                
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) ||            
    410c:	e21220c0 	ands	r2, r2, #192	; 0xc0                          
    4110:	0a000008 	beq	4138 <rtems_semaphore_create+0x5c>            
 */                                                                   
RTEMS_INLINE_ROUTINE bool _Attributes_Is_binary_semaphore(            
  rtems_attribute attribute_set                                       
)                                                                     
{                                                                     
  return ((attribute_set & RTEMS_SEMAPHORE_CLASS) == RTEMS_BINARY_SEMAPHORE);
    4114:	e2043030 	and	r3, r4, #48	; 0x30                            
              _Attributes_Is_priority_ceiling( attribute_set ) ) {    
                                                                      
    if ( ! ( (_Attributes_Is_binary_semaphore( attribute_set ) ||     
    4118:	e3530010 	cmp	r3, #16	; 0x10                                
    411c:	0a000001 	beq	4128 <rtems_semaphore_create+0x4c>            
    4120:	e3530020 	cmp	r3, #32	; 0x20                                
    4124:	1a000057 	bne	4288 <rtems_semaphore_create+0x1ac>           
    4128:	e3140004 	tst	r4, #4	; 0x4                                  
    412c:	0a000055 	beq	4288 <rtems_semaphore_create+0x1ac>           
             _Attributes_Is_priority( attribute_set ) ) )             
      return RTEMS_NOT_DEFINED;                                       
                                                                      
  }                                                                   
                                                                      
  if ( _Attributes_Is_inherit_priority( attribute_set ) &&            
    4130:	e35200c0 	cmp	r2, #192	; 0xc0                               
    4134:	0a000053 	beq	4288 <rtems_semaphore_create+0x1ac>           
       _Attributes_Is_priority_ceiling( attribute_set ) )             
    return RTEMS_NOT_DEFINED;                                         
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) && ( count > 1 ) )
    4138:	e2146030 	ands	r6, r4, #48	; 0x30                           
    413c:	0a000002 	beq	414c <rtems_semaphore_create+0x70>            
    4140:	e3570001 	cmp	r7, #1	; 0x1                                  
    4144:	83a0000a 	movhi	r0, #10	; 0xa                               
    4148:	8a00004f 	bhi	428c <rtems_semaphore_create+0x1b0>           
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
    414c:	e59f2140 	ldr	r2, [pc, #320]	; 4294 <rtems_semaphore_create+0x1b8>
    4150:	e5923000 	ldr	r3, [r2]                                      
    4154:	e2833001 	add	r3, r3, #1	; 0x1                              
    4158:	e5823000 	str	r3, [r2]                                      
 *  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 );
    415c:	e59f0134 	ldr	r0, [pc, #308]	; 4298 <rtems_semaphore_create+0x1bc>
    4160:	eb0004da 	bl	54d0 <_Objects_Allocate>                       
                                                                      
  _Thread_Disable_dispatch();             /* prevents deletion */     
                                                                      
  the_semaphore = _Semaphore_Allocate();                              
                                                                      
  if ( !the_semaphore ) {                                             
    4164:	e2505000 	subs	r5, r0, #0	; 0x0                             
    4168:	1a000002 	bne	4178 <rtems_semaphore_create+0x9c>            
    _Thread_Enable_dispatch();                                        
    416c:	eb000825 	bl	6208 <_Thread_Enable_dispatch>                 
    4170:	e3a00005 	mov	r0, #5	; 0x5                                  
    4174:	ea000044 	b	428c <rtems_semaphore_create+0x1b0>             
   *  If it is not a counting semaphore, then it is either a          
   *  simple binary semaphore or a more powerful mutex style binary   
   *  semaphore.                                                      
   */                                                                 
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) {        
    4178:	e3560000 	cmp	r6, #0	; 0x0                                  
    _Thread_Enable_dispatch();                                        
    return RTEMS_TOO_MANY;                                            
  }                                                                   
#endif                                                                
                                                                      
  the_semaphore->attribute_set = attribute_set;                       
    417c:	e5854010 	str	r4, [r5, #16]                                 
   *  If it is not a counting semaphore, then it is either a          
   *  simple binary semaphore or a more powerful mutex style binary   
   *  semaphore.                                                      
   */                                                                 
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) {        
    4180:	0a000029 	beq	422c <rtems_semaphore_create+0x150>           
    CORE_mutex_Status mutex_status;                                   
                                                                      
    if ( _Attributes_Is_inherit_priority( attribute_set ) )           
    4184:	e3140040 	tst	r4, #64	; 0x40                                
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
    4188:	13a03002 	movne	r3, #2	; 0x2                                
   */                                                                 
                                                                      
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) {        
    CORE_mutex_Status mutex_status;                                   
                                                                      
    if ( _Attributes_Is_inherit_priority( attribute_set ) )           
    418c:	1a000004 	bne	41a4 <rtems_semaphore_create+0xc8>            
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
    else if ( _Attributes_Is_priority_ceiling( attribute_set ) )      
    4190:	e3140080 	tst	r4, #128	; 0x80                               
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
    4194:	13a03003 	movne	r3, #3	; 0x3                                
  if ( !_Attributes_Is_counting_semaphore( attribute_set ) ) {        
    CORE_mutex_Status mutex_status;                                   
                                                                      
    if ( _Attributes_Is_inherit_priority( attribute_set ) )           
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT;
    else if ( _Attributes_Is_priority_ceiling( attribute_set ) )      
    4198:	1a000001 	bne	41a4 <rtems_semaphore_create+0xc8>            
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
    else if ( _Attributes_Is_priority( attribute_set ) )              
    419c:	e2143004 	ands	r3, r4, #4	; 0x4                             
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;
    41a0:	13a03001 	movne	r3, #1	; 0x1                                
    else                                                              
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO;  
                                                                      
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
    41a4:	e3560010 	cmp	r6, #16	; 0x10                                
    else if ( _Attributes_Is_priority_ceiling( attribute_set ) )      
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING;
    else if ( _Attributes_Is_priority( attribute_set ) )              
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;
    else                                                              
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO;  
    41a8:	e58d3008 	str	r3, [sp, #8]                                  
        case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:                 
          the_mutex_attributes.only_owner_release = TRUE;             
          break;                                                      
      }                                                               
    } else {                                                          
      the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS;
    41ac:	13a03002 	movne	r3, #2	; 0x2                                
    41b0:	158d3000 	strne	r3, [sp]                                    
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_PRIORITY;
    else                                                              
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO;  
                                                                      
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
    41b4:	1a00000b 	bne	41e8 <rtems_semaphore_create+0x10c>           
      the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
                                                                      
      switch ( the_mutex_attributes.discipline ) {                    
    41b8:	e59d2008 	ldr	r2, [sp, #8]                                  
    else                                                              
      the_mutex_attributes.discipline = CORE_MUTEX_DISCIPLINES_FIFO;  
                                                                      
                                                                      
    if ( _Attributes_Is_binary_semaphore( attribute_set ) ) {         
      the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    41bc:	e3a03000 	mov	r3, #0	; 0x0                                  
    41c0:	e58d3000 	str	r3, [sp]                                      
                                                                      
      switch ( the_mutex_attributes.discipline ) {                    
    41c4:	e3520003 	cmp	r2, #3	; 0x3                                  
    41c8:	979ff102 	ldrls	pc, [pc, r2, lsl #2]                        
    41cc:	ea000007 	b	41f0 <rtems_semaphore_create+0x114>             <== NOT EXECUTED
    41d0:	000041e8 	.word	0x000041e8                                  <== NOT EXECUTED
    41d4:	000041e8 	.word	0x000041e8                                  <== NOT EXECUTED
    41d8:	000041e0 	.word	0x000041e0                                  <== NOT EXECUTED
    41dc:	000041e0 	.word	0x000041e0                                  <== NOT EXECUTED
        case CORE_MUTEX_DISCIPLINES_PRIORITY:                         
          the_mutex_attributes.only_owner_release = FALSE;            
          break;                                                      
        case CORE_MUTEX_DISCIPLINES_PRIORITY_CEILING:                 
        case CORE_MUTEX_DISCIPLINES_PRIORITY_INHERIT:                 
          the_mutex_attributes.only_owner_release = TRUE;             
    41e0:	e3a03001 	mov	r3, #1	; 0x1                                  
    41e4:	ea000000 	b	41ec <rtems_semaphore_create+0x110>             
          break;                                                      
      }                                                               
    } else {                                                          
      the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS;
      the_mutex_attributes.only_owner_release = FALSE;                
    41e8:	e3a03000 	mov	r3, #0	; 0x0                                  
    41ec:	e5cd3004 	strb	r3, [sp, #4]                                 
    }                                                                 
                                                                      
    the_mutex_attributes.priority_ceiling = priority_ceiling;         
                                                                      
    mutex_status = _CORE_mutex_Initialize(                            
    41f0:	e3570001 	cmp	r7, #1	; 0x1                                  
    41f4:	13a02000 	movne	r2, #0	; 0x0                                
    41f8:	03a02001 	moveq	r2, #1	; 0x1                                
    41fc:	e2850014 	add	r0, r5, #20	; 0x14                            
    4200:	e1a0100d 	mov	r1, sp                                        
    } else {                                                          
      the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_BLOCKS;
      the_mutex_attributes.only_owner_release = FALSE;                
    }                                                                 
                                                                      
    the_mutex_attributes.priority_ceiling = priority_ceiling;         
    4204:	e58d800c 	str	r8, [sp, #12]                                 
                                                                      
    mutex_status = _CORE_mutex_Initialize(                            
    4208:	eb0002d9 	bl	4d74 <_CORE_mutex_Initialize>                  
      &the_semaphore->Core_control.mutex,                             
      &the_mutex_attributes,                                          
      (count == 1) ? CORE_MUTEX_UNLOCKED : CORE_MUTEX_LOCKED          
     );                                                               
                                                                      
     if ( mutex_status == CORE_MUTEX_STATUS_CEILING_VIOLATED ) {      
    420c:	e3500006 	cmp	r0, #6	; 0x6                                  
    4210:	1a000012 	bne	4260 <rtems_semaphore_create+0x184>           
 */                                                                   
RTEMS_INLINE_ROUTINE void _Semaphore_Free (                           
  Semaphore_Control *the_semaphore                                    
)                                                                     
{                                                                     
  _Objects_Free( &_Semaphore_Information, &the_semaphore->Object );   
    4214:	e59f007c 	ldr	r0, [pc, #124]	; 4298 <rtems_semaphore_create+0x1bc><== NOT EXECUTED
    4218:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    421c:	eb00057a 	bl	580c <_Objects_Free>                           <== NOT EXECUTED
       _Semaphore_Free( the_semaphore );                              
       _Thread_Enable_dispatch();                                     
    4220:	eb0007f8 	bl	6208 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    4224:	e3a00013 	mov	r0, #19	; 0x13                                <== NOT EXECUTED
    4228:	ea000017 	b	428c <rtems_semaphore_create+0x1b0>             <== NOT EXECUTED
       return RTEMS_INVALID_PRIORITY;                                 
     }                                                                
  } else {                                                            
    if ( _Attributes_Is_priority( attribute_set ) )                   
    422c:	e3140004 	tst	r4, #4	; 0x4                                  
      the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
    4230:	13a03001 	movne	r3, #1	; 0x1                                
                                                                      
    /*                                                                
     *  The following are just to make Purify happy.                  
     */                                                               
                                                                      
    the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    4234:	e3a0c000 	mov	ip, #0	; 0x0                                  
       _Thread_Enable_dispatch();                                     
       return RTEMS_INVALID_PRIORITY;                                 
     }                                                                
  } else {                                                            
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
    4238:	158d3014 	strne	r3, [sp, #20]                               
     */                                                               
                                                                      
    the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM;         
                                                                      
    _CORE_semaphore_Initialize(                                       
    423c:	e1a02007 	mov	r2, r7                                        
                                                                      
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
                                                                      
    the_semaphore_attributes.maximum_count = 0xFFFFFFFF;              
    4240:	e3e03000 	mvn	r3, #0	; 0x0                                  
     */                                                               
                                                                      
    the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM;         
                                                                      
    _CORE_semaphore_Initialize(                                       
    4244:	e2850014 	add	r0, r5, #20	; 0x14                            
    4248:	e28d1010 	add	r1, sp, #16	; 0x10                            
     }                                                                
  } else {                                                            
    if ( _Attributes_Is_priority( attribute_set ) )                   
      the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_PRIORITY;
    else                                                              
      the_semaphore_attributes.discipline = CORE_SEMAPHORE_DISCIPLINES_FIFO;
    424c:	058d6014 	streq	r6, [sp, #20]                               
                                                                      
    /*                                                                
     *  This effectively disables limit checking.                     
     */                                                               
                                                                      
    the_semaphore_attributes.maximum_count = 0xFFFFFFFF;              
    4250:	e58d3010 	str	r3, [sp, #16]                                 
    /*                                                                
     *  The following are just to make Purify happy.                  
     */                                                               
                                                                      
    the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM;         
    4254:	e58dc00c 	str	ip, [sp, #12]                                 
                                                                      
    /*                                                                
     *  The following are just to make Purify happy.                  
     */                                                               
                                                                      
    the_mutex_attributes.lock_nesting_behavior = CORE_MUTEX_NESTING_ACQUIRES;
    4258:	e58dc000 	str	ip, [sp]                                      
    the_mutex_attributes.priority_ceiling = PRIORITY_MINIMUM;         
                                                                      
    _CORE_semaphore_Initialize(                                       
    425c:	eb000391 	bl	50a8 <_CORE_semaphore_Initialize>              
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
    4260:	e59f3030 	ldr	r3, [pc, #48]	; 4298 <rtems_semaphore_create+0x1bc>
    4264:	e5952008 	ldr	r2, [r5, #8]                                  
    4268:	e593101c 	ldr	r1, [r3, #28]                                 
    426c:	e1d530b8 	ldrh	r3, [r5, #8]                                 
    information,                                                      
    _Objects_Get_index( the_object->id ),                             
    the_object                                                        
  );                                                                  
                                                                      
  the_object->name = name;                                            
    4270:	e585a00c 	str	sl, [r5, #12]                                 
  #if defined(RTEMS_DEBUG)                                            
    if ( index > information->maximum )                               
      return;                                                         
  #endif                                                              
                                                                      
  information->local_table[ index ] = the_object;                     
    4274:	e7815103 	str	r5, [r1, r3, lsl #2]                          
    &_Semaphore_Information,                                          
    &the_semaphore->Object,                                           
    (Objects_Name) name                                               
  );                                                                  
                                                                      
  *id = the_semaphore->Object.id;                                     
    4278:	e5892000 	str	r2, [r9]                                      
      the_semaphore->Object.id,                                       
      name,                                                           
      0                          /* Not used */                       
    );                                                                
#endif                                                                
  _Thread_Enable_dispatch();                                          
    427c:	eb0007e1 	bl	6208 <_Thread_Enable_dispatch>                 
    4280:	e3a00000 	mov	r0, #0	; 0x0                                  
    4284:	ea000000 	b	428c <rtems_semaphore_create+0x1b0>             
  return RTEMS_SUCCESSFUL;                                            
    4288:	e3a0000b 	mov	r0, #11	; 0xb                                 
}                                                                     
    428c:	e28dd018 	add	sp, sp, #24	; 0x18                            
    4290:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              
                                                                      

0000fe18 <rtems_semaphore_flush>: #endif rtems_status_code rtems_semaphore_flush( rtems_id id ) {
    fe18:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
    fe1c:	e24dd004 	sub	sp, sp, #4	; 0x4                              
    fe20:	e1a01000 	mov	r1, r0                                        
RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get (              
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    fe24:	e1a0200d 	mov	r2, sp                                        
    fe28:	e59f0048 	ldr	r0, [pc, #72]	; fe78 <rtems_semaphore_flush+0x60>
    fe2c:	eb000d61 	bl	133b8 <_Objects_Get>                           
  register Semaphore_Control *the_semaphore;                          
  Objects_Locations           location;                               
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
    fe30:	e59d2000 	ldr	r2, [sp]                                      
    fe34:	e3520000 	cmp	r2, #0	; 0x0                                  
    fe38:	13a00004 	movne	r0, #4	; 0x4                                
    fe3c:	1a00000b 	bne	fe70 <rtems_semaphore_flush+0x58>             
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
    fe40:	e5903010 	ldr	r3, [r0, #16]                                 
    fe44:	e2131030 	ands	r1, r3, #48	; 0x30                           
    fe48:	e2800014 	add	r0, r0, #20	; 0x14                            
    fe4c:	0a000003 	beq	fe60 <rtems_semaphore_flush+0x48>             
        _CORE_mutex_Flush(                                            
    fe50:	e1a01002 	mov	r1, r2                                        
    fe54:	e3a02001 	mov	r2, #1	; 0x1                                  
    fe58:	eb00082b 	bl	11f0c <_CORE_mutex_Flush>                      
    fe5c:	ea000001 	b	fe68 <rtems_semaphore_flush+0x50>               
          &the_semaphore->Core_control.mutex,                         
          SEND_OBJECT_WAS_DELETED,                                    
          CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT                        
        );                                                            
      } else {                                                        
        _CORE_semaphore_Flush(                                        
    fe60:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    fe64:	eb0008f5 	bl	12240 <_CORE_semaphore_Flush>                  <== NOT EXECUTED
          &the_semaphore->Core_control.semaphore,                     
          SEND_OBJECT_WAS_DELETED,                                    
          CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT                    
        );                                                            
      }                                                               
      _Thread_Enable_dispatch();                                      
    fe68:	eb000f78 	bl	13c50 <_Thread_Enable_dispatch>                
    fe6c:	e3a00000 	mov	r0, #0	; 0x0                                  
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    fe70:	e28dd004 	add	sp, sp, #4	; 0x4                              
    fe74:	e8bd8000 	pop	{pc}                                          
                                                                      

00004458 <rtems_semaphore_release>: #endif rtems_status_code rtems_semaphore_release( rtems_id id ) {
    4458:	e92d4010 	push	{r4, lr}                                     
    445c:	e24dd004 	sub	sp, sp, #4	; 0x4                              
RTEMS_INLINE_ROUTINE Semaphore_Control *_Semaphore_Get (              
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Semaphore_Control *)                                        
    4460:	e1a01000 	mov	r1, r0                                        
    4464:	e1a04000 	mov	r4, r0                                        
    4468:	e1a0200d 	mov	r2, sp                                        
    446c:	e59f0060 	ldr	r0, [pc, #96]	; 44d4 <rtems_semaphore_release+0x7c>
    4470:	eb00053e 	bl	5970 <_Objects_Get>                            
  Objects_Locations           location;                               
  CORE_mutex_Status           mutex_status;                           
  CORE_semaphore_Status       semaphore_status;                       
                                                                      
  the_semaphore = _Semaphore_Get( id, &location );                    
  switch ( location ) {                                               
    4474:	e59dc000 	ldr	ip, [sp]                                      
    4478:	e35c0000 	cmp	ip, #0	; 0x0                                  
    447c:	13a00004 	movne	r0, #4	; 0x4                                
    4480:	1a000011 	bne	44cc <rtems_semaphore_release+0x74>           
                                                                      
    case OBJECTS_LOCAL:                                               
      if ( !_Attributes_Is_counting_semaphore(the_semaphore->attribute_set) ) {
    4484:	e5903010 	ldr	r3, [r0, #16]                                 
    4488:	e2132030 	ands	r2, r3, #48	; 0x30                           
    448c:	e2800014 	add	r0, r0, #20	; 0x14                            
    4490:	0a000007 	beq	44b4 <rtems_semaphore_release+0x5c>           
        mutex_status = _CORE_mutex_Surrender(                         
    4494:	e1a01004 	mov	r1, r4                                        
    4498:	e1a0200c 	mov	r2, ip                                        
    449c:	eb0002ac 	bl	4f54 <_CORE_mutex_Surrender>                   
    44a0:	e1a04000 	mov	r4, r0                                        
          &the_semaphore->Core_control.mutex,                         
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
    44a4:	eb000757 	bl	6208 <_Thread_Enable_dispatch>                 
        return _Semaphore_Translate_core_mutex_return_code( mutex_status );
    44a8:	e1a00004 	mov	r0, r4                                        
    44ac:	eb000009 	bl	44d8 <_Semaphore_Translate_core_mutex_return_code>
    44b0:	ea000005 	b	44cc <rtems_semaphore_release+0x74>             
      } else {                                                        
        semaphore_status = _CORE_semaphore_Surrender(                 
    44b4:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    44b8:	eb000305 	bl	50d4 <_CORE_semaphore_Surrender>               <== NOT EXECUTED
    44bc:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
          &the_semaphore->Core_control.semaphore,                     
          id,                                                         
          MUTEX_MP_SUPPORT                                            
        );                                                            
        _Thread_Enable_dispatch();                                    
    44c0:	eb000750 	bl	6208 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
        return                                                        
    44c4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    44c8:	eb000006 	bl	44e8 <_Semaphore_Translate_core_semaphore_return_code><== NOT EXECUTED
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    44cc:	e28dd004 	add	sp, sp, #4	; 0x4                              
    44d0:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

00012fa4 <rtems_shutdown_executive>: */ void rtems_shutdown_executive( uint32_t result ) {
   12fa4:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 
  if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) {             
   12fa8:	e59f2024 	ldr	r2, [pc, #36]	; 12fd4 <rtems_shutdown_executive+0x30>
   12fac:	e5923000 	ldr	r3, [r2]                                      
   12fb0:	e3530004 	cmp	r3, #4	; 0x4                                  
 */                                                                   
                                                                      
void rtems_shutdown_executive(                                        
   uint32_t   result                                                  
)                                                                     
{                                                                     
   12fb4:	e24dd030 	sub	sp, sp, #48	; 0x30                            
   12fb8:	13a03004 	movne	r3, #4	; 0x4                                
  Context_Control *context_p = &context_area;                         
                                                                      
  if ( _System_state_Is_up(_System_state_Get ()) )                    
    context_p = &_Thread_Executing->Registers;                        
                                                                      
  _Context_Switch( context_p, &_Thread_BSP_context );                 
   12fbc:	11a0000d 	movne	r0, sp                                      
   12fc0:	159f1010 	ldrne	r1, [pc, #16]	; 12fd8 <rtems_shutdown_executive+0x34>
   12fc4:	15823000 	strne	r3, [r2]                                    
   12fc8:	1bffd1a1 	blne	7654 <_CPU_Context_switch>                   
  if ( _System_state_Current != SYSTEM_STATE_SHUTDOWN ) {             
    _System_state_Set( SYSTEM_STATE_SHUTDOWN );                       
    _Thread_Stop_multitasking();                                      
  }                                                                   
}                                                                     
   12fcc:	e28dd030 	add	sp, sp, #48	; 0x30                            <== NOT EXECUTED
   12fd0:	e8bd8000 	pop	{pc}                                          <== NOT EXECUTED
                                                                      

00001bfc <rtems_stack_checker_is_blown>: /* * Check if blown */ bool rtems_stack_checker_is_blown( void ) { Stack_Control *the_stack = &_Thread_Executing->Start.Initial_stack;
    1bfc:	e59f3084 	ldr	r3, [pc, #132]	; 1c88 <rtems_stack_checker_is_blown+0x8c><== NOT EXECUTED
    1c00:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
                                                                      
/*                                                                    
 *  Check if blown                                                    
 */                                                                   
bool rtems_stack_checker_is_blown( void )                             
{                                                                     
    1c04:	e1a0c00d 	mov	ip, sp                                        <== NOT EXECUTED
)                                                                     
{                                                                     
  void *sp = __builtin_frame_address(0);                              
                                                                      
  #if defined(__GNUC__)                                               
    if ( sp < the_stack->area ) {                                     
    1c08:	e59300c8 	ldr	r0, [r3, #200]                                <== NOT EXECUTED
                                                                      
/*                                                                    
 *  Check if blown                                                    
 */                                                                   
bool rtems_stack_checker_is_blown( void )                             
{                                                                     
    1c0c:	e92dd810 	push	{r4, fp, ip, lr, pc}                         <== NOT EXECUTED
    1c10:	e24cb004 	sub	fp, ip, #4	; 0x4                              <== NOT EXECUTED
)                                                                     
{                                                                     
  void *sp = __builtin_frame_address(0);                              
                                                                      
  #if defined(__GNUC__)                                               
    if ( sp < the_stack->area ) {                                     
    1c14:	e15b0000 	cmp	fp, r0                                        <== NOT EXECUTED
    1c18:	33a04000 	movcc	r4, #0	; 0x0                                <== NOT EXECUTED
    1c1c:	3a000004 	bcc	1c34 <rtems_stack_checker_is_blown+0x38>      <== NOT EXECUTED
    1c20:	e59330c4 	ldr	r3, [r3, #196]                                <== NOT EXECUTED
    1c24:	e0803003 	add	r3, r0, r3                                    <== NOT EXECUTED
    1c28:	e15b0003 	cmp	fp, r3                                        <== NOT EXECUTED
    1c2c:	83a04000 	movhi	r4, #0	; 0x0                                <== NOT EXECUTED
    1c30:	93a04001 	movls	r4, #1	; 0x1                                <== NOT EXECUTED
                                                                      
  /*                                                                  
   * The stack checker must be initialized before the pattern is there
   * to check.                                                        
   */                                                                 
  if ( Stack_check_Initialized ) {                                    
    1c34:	e59f3050 	ldr	r3, [pc, #80]	; 1c8c <rtems_stack_checker_is_blown+0x90><== NOT EXECUTED
    1c38:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    1c3c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    1c40:	03a01001 	moveq	r1, #1	; 0x1                                <== NOT EXECUTED
    1c44:	0a000005 	beq	1c60 <rtems_stack_checker_is_blown+0x64>      <== NOT EXECUTED
    pattern_ok = (!memcmp(                                            
    1c48:	e59f1040 	ldr	r1, [pc, #64]	; 1c90 <rtems_stack_checker_is_blown+0x94><== NOT EXECUTED
    1c4c:	e2800008 	add	r0, r0, #8	; 0x8                              <== NOT EXECUTED
    1c50:	e3a02010 	mov	r2, #16	; 0x10                                <== NOT EXECUTED
    1c54:	eb0029bf 	bl	c358 <memcmp>                                  <== NOT EXECUTED
    1c58:	e2701001 	rsbs	r1, r0, #1	; 0x1                             <== NOT EXECUTED
    1c5c:	33a01000 	movcc	r1, #0	; 0x0                                <== NOT EXECUTED
  }                                                                   
                                                                      
  /*                                                                  
   * The Stack Pointer and the Pattern Area are OK so return false.   
   */                                                                 
  if ( sp_ok && pattern_ok )                                          
    1c60:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    1c64:	0a000002 	beq	1c74 <rtems_stack_checker_is_blown+0x78>      <== NOT EXECUTED
    1c68:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
    1c6c:	13a00000 	movne	r0, #0	; 0x0                                <== NOT EXECUTED
    1c70:	189da810 	ldmne	sp, {r4, fp, sp, pc}                        <== NOT EXECUTED
    return false;                                                     
                                                                      
  /*                                                                  
   * Let's report as much as we can.                                  
   */                                                                 
  Stack_check_report_blown_task( _Thread_Executing, pattern_ok );     
    1c74:	e59f300c 	ldr	r3, [pc, #12]	; 1c88 <rtems_stack_checker_is_blown+0x8c><== NOT EXECUTED
    1c78:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    1c7c:	ebffffc4 	bl	1b94 <Stack_check_report_blown_task>           <== NOT EXECUTED
    1c80:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
  return true;                                                        
}                                                                     
    1c84:	e89da810 	ldm	sp, {r4, fp, sp, pc}                          <== NOT EXECUTED
                                                                      

00001b84 <rtems_stack_checker_report_usage>: void rtems_stack_checker_report_usage( void ) { rtems_stack_checker_report_usage_with_plugin( NULL, printk_plugin );
    1b84:	e59f1004 	ldr	r1, [pc, #4]	; 1b90 <rtems_stack_checker_report_usage+0xc><== NOT EXECUTED
    1b88:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    1b8c:	eaffffe1 	b	1b18 <rtems_stack_checker_report_usage_with_plugin><== NOT EXECUTED
                                                                      

00001b18 <rtems_stack_checker_report_usage_with_plugin>: void rtems_stack_checker_report_usage_with_plugin( void *context, rtems_printk_plugin_t print ) {
    1b18:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
  print_context = context;                                            
    1b1c:	e59f704c 	ldr	r7, [pc, #76]	; 1b70 <rtems_stack_checker_report_usage_with_plugin+0x58><== NOT EXECUTED
  print_handler = print;                                              
    1b20:	e59f604c 	ldr	r6, [pc, #76]	; 1b74 <rtems_stack_checker_report_usage_with_plugin+0x5c><== NOT EXECUTED
                                                                      
void rtems_stack_checker_report_usage_with_plugin(                    
  void                  *context,                                     
  rtems_printk_plugin_t  print                                        
)                                                                     
{                                                                     
    1b24:	e1a04001 	mov	r4, r1                                        <== NOT EXECUTED
    1b28:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
  print_context = context;                                            
  print_handler = print;                                              
    1b2c:	e5861000 	str	r1, [r6]                                      <== NOT EXECUTED
void rtems_stack_checker_report_usage_with_plugin(                    
  void                  *context,                                     
  rtems_printk_plugin_t  print                                        
)                                                                     
{                                                                     
  print_context = context;                                            
    1b30:	e5870000 	str	r0, [r7]                                      <== NOT EXECUTED
  print_handler = print;                                              
                                                                      
  (*print)( context, "Stack usage by thread\n");                      
    1b34:	e59f103c 	ldr	r1, [pc, #60]	; 1b78 <rtems_stack_checker_report_usage_with_plugin+0x60><== NOT EXECUTED
    1b38:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1b3c:	e12fff14 	bx	r4                                             <== NOT EXECUTED
  (*print)( context,                                                  
    1b40:	e59f1034 	ldr	r1, [pc, #52]	; 1b7c <rtems_stack_checker_report_usage_with_plugin+0x64><== NOT EXECUTED
    1b44:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    1b48:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1b4c:	e12fff14 	bx	r4                                             <== NOT EXECUTED
"    ID      NAME    LOW          HIGH     CURRENT     AVAILABLE     USED\n"
  );                                                                  
                                                                      
  /* iterate over all threads and dump the usage */                   
  rtems_iterate_over_all_threads( Stack_check_Dump_threads_usage );   
    1b50:	e59f0028 	ldr	r0, [pc, #40]	; 1b80 <rtems_stack_checker_report_usage_with_plugin+0x68><== NOT EXECUTED
    1b54:	eb0012a7 	bl	65f8 <rtems_iterate_over_all_threads>          <== NOT EXECUTED
                                                                      
  /* dump interrupt stack info if any */                              
  Stack_check_Dump_threads_usage((Thread_Control *) -1);              
    1b58:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
    1b5c:	ebffff96 	bl	19bc <Stack_check_Dump_threads_usage>          <== NOT EXECUTED
                                                                      
  print_context = NULL;                                               
    1b60:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
  print_handler = NULL;                                               
    1b64:	e5863000 	str	r3, [r6]                                      <== NOT EXECUTED
  rtems_iterate_over_all_threads( Stack_check_Dump_threads_usage );   
                                                                      
  /* dump interrupt stack info if any */                              
  Stack_check_Dump_threads_usage((Thread_Control *) -1);              
                                                                      
  print_context = NULL;                                               
    1b68:	e5873000 	str	r3, [r7]                                      <== NOT EXECUTED
  print_handler = NULL;                                               
                                                                      
}                                                                     
    1b6c:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          <== NOT EXECUTED
                                                                      

00004638 <rtems_task_delete>: */ rtems_status_code rtems_task_delete( Objects_Id id ) {
    4638:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
    463c:	e59f6070 	ldr	r6, [pc, #112]	; 46b4 <rtems_task_delete+0x7c><== NOT EXECUTED
 */                                                                   
                                                                      
rtems_status_code rtems_task_delete(                                  
  Objects_Id id                                                       
)                                                                     
{                                                                     
    4640:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    4644:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  register Thread_Control *the_thread;                                
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
    4648:	e5960000 	ldr	r0, [r6]                                      <== NOT EXECUTED
    464c:	eb000194 	bl	4ca4 <_API_Mutex_Lock>                         <== NOT EXECUTED
                                                                      
  the_thread = _Thread_Get( id, &location );                          
    4650:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    4654:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
    4658:	eb0006f3 	bl	622c <_Thread_Get>                             <== NOT EXECUTED
  switch ( location ) {                                               
    465c:	e59d5000 	ldr	r5, [sp]                                      <== NOT EXECUTED
    4660:	e3550000 	cmp	r5, #0	; 0x0                                  <== NOT EXECUTED
  Objects_Locations        location;                                  
  Objects_Information     *the_information;                           
                                                                      
  _RTEMS_Lock_allocator();                                            
                                                                      
  the_thread = _Thread_Get( id, &location );                          
    4664:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
  switch ( location ) {                                               
    4668:	1a00000c 	bne	46a0 <rtems_task_delete+0x68>                 <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      the_information = _Objects_Get_information_id( the_thread->Object.id );
    466c:	e5900008 	ldr	r0, [r0, #8]                                  <== NOT EXECUTED
    4670:	eb000482 	bl	5880 <_Objects_Get_information_id>             <== NOT EXECUTED
            0                                /* Not used */           
          );                                                          
        }                                                             
      #endif                                                          
                                                                      
      _Thread_Close( the_information, the_thread );                   
    4674:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    4678:	eb00061a 	bl	5ee8 <_Thread_Close>                           <== NOT EXECUTED
    467c:	e5940008 	ldr	r0, [r4, #8]                                  <== NOT EXECUTED
    4680:	eb00047e 	bl	5880 <_Objects_Get_information_id>             <== NOT EXECUTED
    4684:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    4688:	eb00045f 	bl	580c <_Objects_Free>                           <== NOT EXECUTED
                                                                      
      _RTEMS_tasks_Free( the_thread );                                
                                                                      
      _RTEMS_Unlock_allocator();                                      
    468c:	e5960000 	ldr	r0, [r6]                                      <== NOT EXECUTED
    4690:	eb00019f 	bl	4d14 <_API_Mutex_Unlock>                       <== NOT EXECUTED
      _Thread_Enable_dispatch();                                      
    4694:	eb0006db 	bl	6208 <_Thread_Enable_dispatch>                 <== NOT EXECUTED
    4698:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    469c:	ea000002 	b	46ac <rtems_task_delete+0x74>                   <== NOT EXECUTED
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  _RTEMS_Unlock_allocator();                                          
    46a0:	e5960000 	ldr	r0, [r6]                                      <== NOT EXECUTED
    46a4:	eb00019a 	bl	4d14 <_API_Mutex_Unlock>                       <== NOT EXECUTED
    46a8:	e3a00004 	mov	r0, #4	; 0x4                                  <== NOT EXECUTED
  return RTEMS_INVALID_ID;                                            
}                                                                     
    46ac:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    46b0:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

0000619c <rtems_task_variable_add>: rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ) {
    619c:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    61a0:	e2516000 	subs	r6, r1, #0	; 0x0                             
rtems_status_code rtems_task_variable_add(                            
  rtems_id tid,                                                       
  void **ptr,                                                         
  void (*dtor)(void *)                                                
)                                                                     
{                                                                     
    61a4:	e24dd004 	sub	sp, sp, #4	; 0x4                              
    61a8:	e1a07002 	mov	r7, r2                                        
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    61ac:	03a00009 	moveq	r0, #9	; 0x9                                
    61b0:	0a000022 	beq	6240 <rtems_task_variable_add+0xa4>           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
    61b4:	e1a0100d 	mov	r1, sp                                        
    61b8:	eb000705 	bl	7dd4 <_Thread_Get>                             
  switch (location) {                                                 
    61bc:	e59d3000 	ldr	r3, [sp]                                      
  rtems_task_variable_t *tvp, *new;                                   
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
    61c0:	e1a05000 	mov	r5, r0                                        
  switch (location) {                                                 
    61c4:	e3530000 	cmp	r3, #0	; 0x0                                  
    61c8:	13a00004 	movne	r0, #4	; 0x4                                
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
    61cc:	05954114 	ldreq	r4, [r5, #276]                              
                                                                      
  if ( !ptr )                                                         
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
    61d0:	0a000008 	beq	61f8 <rtems_task_variable_add+0x5c>           
    61d4:	ea000019 	b	6240 <rtems_task_variable_add+0xa4>             <== NOT EXECUTED
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
    61d8:	e5943004 	ldr	r3, [r4, #4]                                  
    61dc:	e1530006 	cmp	r3, r6                                        
    61e0:	1a000003 	bne	61f4 <rtems_task_variable_add+0x58>           
          tvp->dtor = dtor;                                           
    61e4:	e5847010 	str	r7, [r4, #16]                                 
          _Thread_Enable_dispatch();                                  
    61e8:	eb0006f0 	bl	7db0 <_Thread_Enable_dispatch>                 
    61ec:	e3a00000 	mov	r0, #0	; 0x0                                  
    61f0:	ea000012 	b	6240 <rtems_task_variable_add+0xa4>             
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
    61f4:	e5944000 	ldr	r4, [r4]                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is already in this task's list.  
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
    61f8:	e3540000 	cmp	r4, #0	; 0x0                                  
    61fc:	1afffff5 	bne	61d8 <rtems_task_variable_add+0x3c>           
      }                                                               
                                                                      
      /*                                                              
       *  Now allocate memory for this task variable.                 
       */                                                             
      new = (rtems_task_variable_t *)                                 
    6200:	e3a00014 	mov	r0, #20	; 0x14                                
    6204:	eb000c27 	bl	92a8 <_Workspace_Allocate>                     
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
      if (new == NULL) {                                              
    6208:	e3500000 	cmp	r0, #0	; 0x0                                  
    620c:	1a000002 	bne	621c <rtems_task_variable_add+0x80>           
        _Thread_Enable_dispatch();                                    
    6210:	eb0006e6 	bl	7db0 <_Thread_Enable_dispatch>                 
    6214:	e3a0001a 	mov	r0, #26	; 0x1a                                
    6218:	ea000008 	b	6240 <rtems_task_variable_add+0xa4>             
      }                                                               
      new->gval = *ptr;                                               
      new->ptr = ptr;                                                 
      new->dtor = dtor;                                               
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
    621c:	e5952114 	ldr	r2, [r5, #276]                                
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
      if (new == NULL) {                                              
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
    6220:	e5963000 	ldr	r3, [r6]                                      
      new->ptr = ptr;                                                 
      new->dtor = dtor;                                               
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
      the_thread->task_variables = new;                               
    6224:	e5850114 	str	r0, [r5, #276]                                
         _Workspace_Allocate(sizeof(rtems_task_variable_t));          
      if (new == NULL) {                                              
        _Thread_Enable_dispatch();                                    
        return RTEMS_NO_MEMORY;                                       
      }                                                               
      new->gval = *ptr;                                               
    6228:	e5803008 	str	r3, [r0, #8]                                  
      new->ptr = ptr;                                                 
    622c:	e5806004 	str	r6, [r0, #4]                                  
      new->dtor = dtor;                                               
    6230:	e5807010 	str	r7, [r0, #16]                                 
                                                                      
      new->next = (struct rtems_task_variable_tt *)the_thread->task_variables;
    6234:	e5802000 	str	r2, [r0]                                      
      the_thread->task_variables = new;                               
      _Thread_Enable_dispatch();                                      
    6238:	eb0006dc 	bl	7db0 <_Thread_Enable_dispatch>                 
    623c:	e1a00004 	mov	r0, r4                                        
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
    6240:	e28dd004 	add	sp, sp, #4	; 0x4                              
    6244:	e8bd80f0 	pop	{r4, r5, r6, r7, pc}                          
                                                                      

00006248 <rtems_task_variable_delete>: rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ) {
    6248:	e92d4010 	push	{r4, lr}                                     
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
    624c:	e2514000 	subs	r4, r1, #0	; 0x0                             
                                                                      
rtems_status_code rtems_task_variable_delete(                         
  rtems_id  tid,                                                      
  void    **ptr                                                       
)                                                                     
{                                                                     
    6250:	e24dd004 	sub	sp, sp, #4	; 0x4                              
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp, *prev;                                  
                                                                      
  if ( !ptr )                                                         
    6254:	0a000018 	beq	62bc <rtems_task_variable_delete+0x74>        
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
    6258:	e1a0100d 	mov	r1, sp                                        
    625c:	eb0006dc 	bl	7dd4 <_Thread_Get>                             
  switch (location) {                                                 
    6260:	e59d3000 	ldr	r3, [sp]                                      
    6264:	e3530000 	cmp	r3, #0	; 0x0                                  
    6268:	13a00004 	movne	r0, #4	; 0x4                                
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
    626c:	01a02003 	moveq	r2, r3                                      
    6270:	05901114 	ldreq	r1, [r0, #276]                              
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  prev = NULL;                                                        
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
    6274:	0a00000d 	beq	62b0 <rtems_task_variable_delete+0x68>        
    6278:	ea000010 	b	62c0 <rtems_task_variable_delete+0x78>          <== NOT EXECUTED
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
    627c:	e5913004 	ldr	r3, [r1, #4]                                  
    6280:	e1530004 	cmp	r3, r4                                        
    6284:	1a000007 	bne	62a8 <rtems_task_variable_delete+0x60>        
    6288:	e5913000 	ldr	r3, [r1]                                      
          if (prev)                                                   
    628c:	e3520000 	cmp	r2, #0	; 0x0                                  
            prev->next = tvp->next;                                   
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
    6290:	05803114 	streq	r3, [r0, #276]                              
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
          if (prev)                                                   
            prev->next = tvp->next;                                   
    6294:	15823000 	strne	r3, [r2]                                    
          else                                                        
            the_thread->task_variables = (rtems_task_variable_t *)tvp->next;
                                                                      
          _RTEMS_Tasks_Invoke_task_variable_dtor( the_thread, tvp );  
    6298:	eb000028 	bl	6340 <_RTEMS_Tasks_Invoke_task_variable_dtor>  
          _Thread_Enable_dispatch();                                  
    629c:	eb0006c3 	bl	7db0 <_Thread_Enable_dispatch>                 
    62a0:	e3a00000 	mov	r0, #0	; 0x0                                  
    62a4:	ea000005 	b	62c0 <rtems_task_variable_delete+0x78>          
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
    62a8:	e1a02001 	mov	r2, r1                                        
    62ac:	e5911000 	ldr	r1, [r1]                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
                                                                      
    case OBJECTS_LOCAL:                                               
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
    62b0:	e3510000 	cmp	r1, #0	; 0x0                                  
    62b4:	1afffff0 	bne	627c <rtems_task_variable_delete+0x34>        
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        prev = tvp;                                                   
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
    62b8:	eb0006bc 	bl	7db0 <_Thread_Enable_dispatch>                 
    62bc:	e3a00009 	mov	r0, #9	; 0x9                                  
    case OBJECTS_ERROR:                                               
        break;                                                        
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
    62c0:	e28dd004 	add	sp, sp, #4	; 0x4                              
    62c4:	e8bd8010 	pop	{r4, pc}                                      
                                                                      

000062c8 <rtems_task_variable_get>: rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ) {
    62c8:	e92d4030 	push	{r4, r5, lr}                                 
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
    62cc:	e2515000 	subs	r5, r1, #0	; 0x0                             
rtems_status_code rtems_task_variable_get(                            
  rtems_id tid,                                                       
  void **ptr,                                                         
  void **result                                                       
)                                                                     
{                                                                     
    62d0:	e24dd004 	sub	sp, sp, #4	; 0x4                              
    62d4:	e1a04002 	mov	r4, r2                                        
  Thread_Control        *the_thread;                                  
  Objects_Locations      location;                                    
  rtems_task_variable_t *tvp;                                         
                                                                      
  if ( !ptr )                                                         
    62d8:	0a000015 	beq	6334 <rtems_task_variable_get+0x6c>           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( !result )                                                      
    62dc:	e3520000 	cmp	r2, #0	; 0x0                                  
    62e0:	0a000013 	beq	6334 <rtems_task_variable_get+0x6c>           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
    62e4:	e1a0100d 	mov	r1, sp                                        
    62e8:	eb0006b9 	bl	7dd4 <_Thread_Get>                             
  switch (location) {                                                 
    62ec:	e59d3000 	ldr	r3, [sp]                                      
    62f0:	e3530000 	cmp	r3, #0	; 0x0                                  
    62f4:	13a00004 	movne	r0, #4	; 0x4                                
                                                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
    62f8:	05900114 	ldreq	r0, [r0, #276]                              
                                                                      
  if ( !result )                                                      
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_thread = _Thread_Get (tid, &location);                          
  switch (location) {                                                 
    62fc:	0a000009 	beq	6328 <rtems_task_variable_get+0x60>           
    6300:	ea00000c 	b	6338 <rtems_task_variable_get+0x70>             <== NOT EXECUTED
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
        if (tvp->ptr == ptr) {                                        
    6304:	e5903004 	ldr	r3, [r0, #4]                                  
    6308:	e1530005 	cmp	r3, r5                                        
    630c:	1a000004 	bne	6324 <rtems_task_variable_get+0x5c>           
	  /*                                                                 
	   * Should this return the current (i.e not the                     
	   * saved) value if `tid' is the current task?                      
	   */                                                                
          *result = tvp->tval;                                        
    6310:	e590300c 	ldr	r3, [r0, #12]                                 
    6314:	e5843000 	str	r3, [r4]                                      
          _Thread_Enable_dispatch();                                  
    6318:	eb0006a4 	bl	7db0 <_Thread_Enable_dispatch>                 
    631c:	e3a00000 	mov	r0, #0	; 0x0                                  
    6320:	ea000004 	b	6338 <rtems_task_variable_get+0x70>             
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
    6324:	e5900000 	ldr	r0, [r0]                                      
    case OBJECTS_LOCAL:                                               
      /*                                                              
       *  Figure out if the variable is in this task's list.          
       */                                                             
      tvp = the_thread->task_variables;                               
      while (tvp) {                                                   
    6328:	e3500000 	cmp	r0, #0	; 0x0                                  
    632c:	1afffff4 	bne	6304 <rtems_task_variable_get+0x3c>           
          _Thread_Enable_dispatch();                                  
          return RTEMS_SUCCESSFUL;                                    
        }                                                             
        tvp = (rtems_task_variable_t *)tvp->next;                     
      }                                                               
      _Thread_Enable_dispatch();                                      
    6330:	eb00069e 	bl	7db0 <_Thread_Enable_dispatch>                 
      return RTEMS_INVALID_ADDRESS;                                   
    6334:	e3a00009 	mov	r0, #9	; 0x9                                  
                                                                      
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
  return RTEMS_INVALID_ID;                                            
}                                                                     
    6338:	e28dd004 	add	sp, sp, #4	; 0x4                              
    633c:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00001f78 <rtems_termios_bufsize>: int cbufsize, int raw_input, int raw_output ) { rtems_termios_cbufsize = cbufsize;
    1f78:	e59f3018 	ldr	r3, [pc, #24]	; 1f98 <rtems_termios_bufsize+0x20><== NOT EXECUTED
    1f7c:	e5830000 	str	r0, [r3]                                      <== NOT EXECUTED
  rtems_termios_raw_input_size  = raw_input;                          
    1f80:	e59f3014 	ldr	r3, [pc, #20]	; 1f9c <rtems_termios_bufsize+0x24><== NOT EXECUTED
    1f84:	e5831000 	str	r1, [r3]                                      <== NOT EXECUTED
  rtems_termios_raw_output_size = raw_output;                         
    1f88:	e59f3010 	ldr	r3, [pc, #16]	; 1fa0 <rtems_termios_bufsize+0x28><== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
    1f8c:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
  int raw_output                                                      
)                                                                     
{                                                                     
  rtems_termios_cbufsize        = cbufsize;                           
  rtems_termios_raw_input_size  = raw_input;                          
  rtems_termios_raw_output_size = raw_output;                         
    1f90:	e5832000 	str	r2, [r3]                                      <== NOT EXECUTED
  return RTEMS_SUCCESSFUL;                                            
}                                                                     
    1f94:	e12fff1e 	bx	lr                                             <== NOT EXECUTED
                                                                      

0000340c <rtems_termios_close>: { rtems_libio_open_close_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1; rtems_status_code sc; sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    340c:	e59f316c 	ldr	r3, [pc, #364]	; 3580 <rtems_termios_close+0x174>
                                                                      
rtems_status_code                                                     
rtems_termios_close (void *arg)                                       
{                                                                     
	rtems_libio_open_close_args_t *args = arg;                           
	struct rtems_termios_tty *tty = args->iop->data1;                    
    3410:	e590c000 	ldr	ip, [r0]                                      
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    3414:	e3a01000 	mov	r1, #0	; 0x0                                  
	}                                                                    
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_close (void *arg)                                       
{                                                                     
    3418:	e92d4030 	push	{r4, r5, lr}                                 
	rtems_libio_open_close_args_t *args = arg;                           
	struct rtems_termios_tty *tty = args->iop->data1;                    
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    341c:	e1a02001 	mov	r2, r1                                        
	}                                                                    
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_close (void *arg)                                       
{                                                                     
    3420:	e1a05000 	mov	r5, r0                                        
	rtems_libio_open_close_args_t *args = arg;                           
	struct rtems_termios_tty *tty = args->iop->data1;                    
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    3424:	e5930000 	ldr	r0, [r3]                                      
                                                                      
rtems_status_code                                                     
rtems_termios_close (void *arg)                                       
{                                                                     
	rtems_libio_open_close_args_t *args = arg;                           
	struct rtems_termios_tty *tty = args->iop->data1;                    
    3428:	e59c4028 	ldr	r4, [ip, #40]                                 
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    342c:	eb0003c3 	bl	4340 <rtems_semaphore_obtain>                  
	if (sc != RTEMS_SUCCESSFUL)                                          
    3430:	e3500000 	cmp	r0, #0	; 0x0                                  
    3434:	1a00001d 	bne	34b0 <rtems_termios_close+0xa4>               
		rtems_fatal_error_occurred (sc);                                    
	if (--tty->refcount == 0) {                                          
    3438:	e5943008 	ldr	r3, [r4, #8]                                  
    343c:	e2433001 	sub	r3, r3, #1	; 0x1                              
    3440:	e3530000 	cmp	r3, #0	; 0x0                                  
    3444:	e5843008 	str	r3, [r4, #8]                                  
    3448:	1a000047 	bne	356c <rtems_termios_close+0x160>              
                if (rtems_termios_linesw[tty->t_line].l_close != NULL) {
    344c:	e59420cc 	ldr	r2, [r4, #204]                                
    3450:	e59f312c 	ldr	r3, [pc, #300]	; 3584 <rtems_termios_close+0x178>
    3454:	e0833282 	add	r3, r3, r2, lsl #5                            
    3458:	e5933004 	ldr	r3, [r3, #4]                                  
    345c:	e3530000 	cmp	r3, #0	; 0x0                                  
    3460:	0a000003 	beq	3474 <rtems_termios_close+0x68>               
			/*                                                                 
			 * call discipline-specific close                                  
			 */                                                                
			sc = rtems_termios_linesw[tty->t_line].l_close(tty);               
    3464:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    3468:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    346c:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    3470:	ea000001 	b	347c <rtems_termios_close+0x70>                 <== NOT EXECUTED
		}                                                                   
		else {                                                              
			/*                                                                 
			 * default: just flush output buffer                               
			 */                                                                
		        drainOutput (tty);                                          
    3474:	e1a00004 	mov	r0, r4                                        
    3478:	ebfffdee 	bl	2c38 <drainOutput>                             
		}                                                                   
                                                                      
		if (tty->device.outputUsesInterrupts                                
    347c:	e59430b4 	ldr	r3, [r4, #180]                                
    3480:	e3530002 	cmp	r3, #2	; 0x2                                  
    3484:	1a00000a 	bne	34b4 <rtems_termios_close+0xa8>               
		    == TERMIOS_TASK_DRIVEN) {                                       
			/*                                                                 
			 * send "terminate" to I/O tasks                                   
			 */                                                                
			sc = rtems_event_send(                                             
    3488:	e59400c4 	ldr	r0, [r4, #196]                                <== NOT EXECUTED
    348c:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    3490:	eb000280 	bl	3e98 <rtems_event_send>                        <== NOT EXECUTED
                                  tty->rxTaskId,                      
				  TERMIOS_RX_TERMINATE_EVENT);                                    
			if (sc != RTEMS_SUCCESSFUL)                                        
    3494:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    3498:	1a000004 	bne	34b0 <rtems_termios_close+0xa4>               <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
			sc = rtems_event_send(                                             
    349c:	e59400c8 	ldr	r0, [r4, #200]                                <== NOT EXECUTED
    34a0:	e3a01001 	mov	r1, #1	; 0x1                                  <== NOT EXECUTED
    34a4:	eb00027b 	bl	3e98 <rtems_event_send>                        <== NOT EXECUTED
                                  tty->txTaskId,                      
				  TERMIOS_TX_TERMINATE_EVENT);                                    
			if (sc != RTEMS_SUCCESSFUL)                                        
    34a8:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    34ac:	0a000000 	beq	34b4 <rtems_termios_close+0xa8>               <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
    34b0:	eb00055a 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
		}                                                                   
		if (tty->device.lastClose)                                          
    34b4:	e594309c 	ldr	r3, [r4, #156]                                
    34b8:	e3530000 	cmp	r3, #0	; 0x0                                  
			 (*tty->device.lastClose)(tty->major, tty->minor, arg);            
    34bc:	11a02005 	movne	r2, r5                                      
    34c0:	1284000c 	addne	r0, r4, #12	; 0xc                           
    34c4:	18900003 	ldmne	r0, {r0, r1}                                
    34c8:	11a0e00f 	movne	lr, pc                                      
    34cc:	112fff13 	bxne	r3                                           
		if (tty->forw == NULL) {                                            
    34d0:	e8940006 	ldm	r4, {r1, r2}                                  
    34d4:	e3510000 	cmp	r1, #0	; 0x0                                  
			if ( rtems_termios_ttyTail != NULL ) {                             
				rtems_termios_ttyTail->forw = NULL;                               
			}                                                                  
		}                                                                   
		else {                                                              
			tty->forw->back = tty->back;                                       
    34d8:	15812004 	strne	r2, [r1, #4]                                
			if (sc != RTEMS_SUCCESSFUL)                                        
				rtems_fatal_error_occurred (sc);                                  
		}                                                                   
		if (tty->device.lastClose)                                          
			 (*tty->device.lastClose)(tty->major, tty->minor, arg);            
		if (tty->forw == NULL) {                                            
    34dc:	1a000003 	bne	34f0 <rtems_termios_close+0xe4>               
			rtems_termios_ttyTail = tty->back;                                 
    34e0:	e59f30a0 	ldr	r3, [pc, #160]	; 3588 <rtems_termios_close+0x17c>
			if ( rtems_termios_ttyTail != NULL ) {                             
    34e4:	e3520000 	cmp	r2, #0	; 0x0                                  
				rtems_fatal_error_occurred (sc);                                  
		}                                                                   
		if (tty->device.lastClose)                                          
			 (*tty->device.lastClose)(tty->major, tty->minor, arg);            
		if (tty->forw == NULL) {                                            
			rtems_termios_ttyTail = tty->back;                                 
    34e8:	e5832000 	str	r2, [r3]                                      
			if ( rtems_termios_ttyTail != NULL ) {                             
				rtems_termios_ttyTail->forw = NULL;                               
    34ec:	15821000 	strne	r1, [r2]                                    
			}                                                                  
		}                                                                   
		else {                                                              
			tty->forw->back = tty->back;                                       
		}                                                                   
		if (tty->back == NULL) {                                            
    34f0:	e5941004 	ldr	r1, [r4, #4]                                  
    34f4:	e5942000 	ldr	r2, [r4]                                      
    34f8:	e3510000 	cmp	r1, #0	; 0x0                                  
			if ( rtems_termios_ttyHead != NULL ) {                             
				rtems_termios_ttyHead->back = NULL;                               
			}                                                                  
		}                                                                   
		else {                                                              
			tty->back->forw = tty->forw;                                       
    34fc:	15812000 	strne	r2, [r1]                                    
			}                                                                  
		}                                                                   
		else {                                                              
			tty->forw->back = tty->back;                                       
		}                                                                   
		if (tty->back == NULL) {                                            
    3500:	1a000003 	bne	3514 <rtems_termios_close+0x108>              
			rtems_termios_ttyHead = tty->forw;                                 
    3504:	e59f3080 	ldr	r3, [pc, #128]	; 358c <rtems_termios_close+0x180>
			if ( rtems_termios_ttyHead != NULL ) {                             
    3508:	e3520000 	cmp	r2, #0	; 0x0                                  
		}                                                                   
		else {                                                              
			tty->forw->back = tty->back;                                       
		}                                                                   
		if (tty->back == NULL) {                                            
			rtems_termios_ttyHead = tty->forw;                                 
    350c:	e5832000 	str	r2, [r3]                                      
			if ( rtems_termios_ttyHead != NULL ) {                             
				rtems_termios_ttyHead->back = NULL;                               
    3510:	15821004 	strne	r1, [r2, #4]                                
			}                                                                  
		}                                                                   
		else {                                                              
			tty->back->forw = tty->forw;                                       
		}                                                                   
		rtems_semaphore_delete (tty->isem);                                 
    3514:	e5940014 	ldr	r0, [r4, #20]                                 
    3518:	eb00035f 	bl	429c <rtems_semaphore_delete>                  
		rtems_semaphore_delete (tty->osem);                                 
    351c:	e5940018 	ldr	r0, [r4, #24]                                 
    3520:	eb00035d 	bl	429c <rtems_semaphore_delete>                  
		rtems_semaphore_delete (tty->rawOutBuf.Semaphore);                  
    3524:	e594008c 	ldr	r0, [r4, #140]                                
    3528:	eb00035b 	bl	429c <rtems_semaphore_delete>                  
		if ((tty->device.pollRead == NULL) ||                               
    352c:	e59430a0 	ldr	r3, [r4, #160]                                
    3530:	e3530000 	cmp	r3, #0	; 0x0                                  
    3534:	0a000002 	beq	3544 <rtems_termios_close+0x138>              
    3538:	e59430b4 	ldr	r3, [r4, #180]                                
    353c:	e3530002 	cmp	r3, #2	; 0x2                                  
    3540:	1a000001 	bne	354c <rtems_termios_close+0x140>              
		    (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN))      
			rtems_semaphore_delete (tty->rawInBuf.Semaphore);                  
    3544:	e5940068 	ldr	r0, [r4, #104]                                <== NOT EXECUTED
    3548:	eb000353 	bl	429c <rtems_semaphore_delete>                  <== NOT EXECUTED
		free (tty->rawInBuf.theBuf);                                        
    354c:	e5940058 	ldr	r0, [r4, #88]                                 
    3550:	eb00145e 	bl	86d0 <free>                                    
		free (tty->rawOutBuf.theBuf);                                       
    3554:	e594007c 	ldr	r0, [r4, #124]                                
    3558:	eb00145c 	bl	86d0 <free>                                    
		free (tty->cbuf);                                                   
    355c:	e594001c 	ldr	r0, [r4, #28]                                 
    3560:	eb00145a 	bl	86d0 <free>                                    
		free (tty);                                                         
    3564:	e1a00004 	mov	r0, r4                                        
    3568:	eb001458 	bl	86d0 <free>                                    
	}                                                                    
	rtems_semaphore_release (rtems_termios_ttyMutex);                    
    356c:	e59f300c 	ldr	r3, [pc, #12]	; 3580 <rtems_termios_close+0x174>
    3570:	e5930000 	ldr	r0, [r3]                                      
    3574:	eb0003b7 	bl	4458 <rtems_semaphore_release>                 
	return RTEMS_SUCCESSFUL;                                             
}                                                                     
    3578:	e3a00000 	mov	r0, #0	; 0x0                                  
    357c:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

0000219c <rtems_termios_dequeue_characters>: rtems_status_code sc; /* * sum up character count already sent */ tty->t_dqlen += len;
    219c:	e5903090 	ldr	r3, [r0, #144]                                <== NOT EXECUTED
                                                                      
	if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {       
    21a0:	e590c0b4 	ldr	ip, [r0, #180]                                <== NOT EXECUTED
	rtems_status_code sc;                                                
                                                                      
	/*                                                                   
	 * sum up character count already sent                               
	 */                                                                  
	tty->t_dqlen += len;                                                 
    21a4:	e0833001 	add	r3, r3, r1                                    <== NOT EXECUTED
                                                                      
	if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {       
    21a8:	e35c0002 	cmp	ip, #2	; 0x2                                  <== NOT EXECUTED
 * for each transmitted character.                                    
 * It returns number of characters left to transmit                   
 */                                                                   
int                                                                   
rtems_termios_dequeue_characters (void *ttyp, int len)                
{                                                                     
    21ac:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)                 <== NOT EXECUTED
	rtems_status_code sc;                                                
                                                                      
	/*                                                                   
	 * sum up character count already sent                               
	 */                                                                  
	tty->t_dqlen += len;                                                 
    21b0:	e5803090 	str	r3, [r0, #144]                                <== NOT EXECUTED
                                                                      
	if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {       
    21b4:	1a000005 	bne	21d0 <rtems_termios_dequeue_characters+0x34>  <== NOT EXECUTED
		/*                                                                  
		 * send wake up to transmitter task                                 
		 */                                                                 
		sc = rtems_event_send(tty->txTaskId,                                
    21b8:	e59000c8 	ldr	r0, [r0, #200]                                <== NOT EXECUTED
    21bc:	e1a0100c 	mov	r1, ip                                        <== NOT EXECUTED
    21c0:	eb000734 	bl	3e98 <rtems_event_send>                        <== NOT EXECUTED
				      TERMIOS_TX_START_EVENT);                                    
		if (sc != RTEMS_SUCCESSFUL)                                         
    21c4:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    21c8:	0a00000c 	beq	2200 <rtems_termios_dequeue_characters+0x64>  <== NOT EXECUTED
			rtems_fatal_error_occurred (sc);                                   
    21cc:	eb000a13 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
		return 0; /* nothing to output in IRQ... */                         
	}                                                                    
	else if (tty->t_line == PPPDISC ) {                                  
    21d0:	e59030cc 	ldr	r3, [r0, #204]                                <== NOT EXECUTED
    21d4:	e3530005 	cmp	r3, #5	; 0x5                                  <== NOT EXECUTED
    21d8:	1a000006 	bne	21f8 <rtems_termios_dequeue_characters+0x5c>  <== NOT EXECUTED
		/*                                                                  
		 * call any line discipline start function                          
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_start != NULL) {            
    21dc:	e59f3024 	ldr	r3, [pc, #36]	; 2208 <rtems_termios_dequeue_characters+0x6c><== NOT EXECUTED
    21e0:	e59330b4 	ldr	r3, [r3, #180]                                <== NOT EXECUTED
    21e4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    21e8:	0a000004 	beq	2200 <rtems_termios_dequeue_characters+0x64>  <== NOT EXECUTED
			rtems_termios_linesw[tty->t_line].l_start(tty);                    
    21ec:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    21f0:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    21f4:	ea000001 	b	2200 <rtems_termios_dequeue_characters+0x64>    <== NOT EXECUTED
		return 0; /* nothing to output in IRQ... */                         
	}                                                                    
	else {                                                               
		return rtems_termios_refill_transmitter(tty);                       
	}                                                                    
}                                                                     
    21f8:	e49de004 	pop	{lr}		; (ldr lr, [sp], #4)                    <== NOT EXECUTED
			rtems_termios_linesw[tty->t_line].l_start(tty);                    
		}                                                                   
		return 0; /* nothing to output in IRQ... */                         
	}                                                                    
	else {                                                               
		return rtems_termios_refill_transmitter(tty);                       
    21fc:	eaffff6b 	b	1fb0 <rtems_termios_refill_transmitter>         <== NOT EXECUTED
	}                                                                    
}                                                                     
    2200:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    2204:	e49df004 	pop	{pc}		; (ldr pc, [sp], #4)                    <== NOT EXECUTED
                                                                      

0000220c <rtems_termios_enqueue_raw_characters>: * device receive interrupt handler. * Returns the number of characters dropped because of overflow. */ int rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) {
    220c:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
	char c;                                                              
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
    2210:	e59fc2b8 	ldr	ip, [pc, #696]	; 24d0 <rtems_termios_enqueue_raw_characters+0x2c4><== NOT EXECUTED
    2214:	e59030cc 	ldr	r3, [r0, #204]                                <== NOT EXECUTED
    2218:	e08c3283 	add	r3, ip, r3, lsl #5                            <== NOT EXECUTED
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
    221c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
	char c;                                                              
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
    2220:	e5930010 	ldr	r0, [r3, #16]                                 <== NOT EXECUTED
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
    2224:	e24dd00c 	sub	sp, sp, #12	; 0xc                             <== NOT EXECUTED
	char c;                                                              
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
    2228:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
 *       device receive interrupt handler.                            
 * Returns the number of characters dropped because of overflow.      
 */                                                                   
int                                                                   
rtems_termios_enqueue_raw_characters (void *ttyp, char *buf, int len) 
{                                                                     
    222c:	e58d1000 	str	r1, [sp]                                      <== NOT EXECUTED
    2230:	e1a08002 	mov	r8, r2                                        <== NOT EXECUTED
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
	  while (len--) {                                                    
	    c = *buf++;                                                      
	    rtems_termios_linesw[tty->t_line].l_rint(c,tty);                 
    2234:	11a0600c 	movne	r6, ip                                      <== NOT EXECUTED
	char c;                                                              
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
    2238:	13a05000 	movne	r5, #0	; 0x0                                <== NOT EXECUTED
    223c:	1a00000d 	bne	2278 <rtems_termios_enqueue_raw_characters+0x6c><== NOT EXECUTED
		    if ((tty->flow_ctrl & FL_OSTOP) ||                              
			(tty->rawOutBufState == rob_idle)) {                               
		      /* if tx is stopped due to XOFF or out of data */             
		      /*    call write function here                 */             
		      tty->flow_ctrl |= FL_ISNTXOF;                                 
		      (*tty->device.write)(tty->minor,                              
    2240:	e284204a 	add	r2, r4, #74	; 0x4a                            <== NOT EXECUTED
                                                                      
			/*                                                                 
			 * check to see if rcv wakeup callback was set                     
			 */                                                                
			if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {  
			  (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);      
    2244:	e2843030 	add	r3, r4, #48	; 0x30                            <== NOT EXECUTED
    2248:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
		    if ((tty->flow_ctrl & FL_OSTOP) ||                              
			(tty->rawOutBufState == rob_idle)) {                               
		      /* if tx is stopped due to XOFF or out of data */             
		      /*    call write function here                 */             
		      tty->flow_ctrl |= FL_ISNTXOF;                                 
		      (*tty->device.write)(tty->minor,                              
    224c:	e98d000c 	stmib	sp, {r2, r3}                                <== NOT EXECUTED
                                                                      
			/*                                                                 
			 * check to see if rcv wakeup callback was set                     
			 */                                                                
			if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {  
			  (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);      
    2250:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
    2254:	e1a09000 	mov	r9, r0                                        <== NOT EXECUTED
    2258:	ea000090 	b	24a0 <rtems_termios_enqueue_raw_characters+0x294><== NOT EXECUTED
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
	  while (len--) {                                                    
	    c = *buf++;                                                      
	    rtems_termios_linesw[tty->t_line].l_rint(c,tty);                 
    225c:	e59430cc 	ldr	r3, [r4, #204]                                <== NOT EXECUTED
    2260:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
    2264:	e0863283 	add	r3, r6, r3, lsl #5                            <== NOT EXECUTED
    2268:	e7d20005 	ldrb	r0, [r2, r5]                                 <== NOT EXECUTED
    226c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2270:	e593f010 	ldr	pc, [r3, #16]                                 <== NOT EXECUTED
    2274:	e2855001 	add	r5, r5, #1	; 0x1                              <== NOT EXECUTED
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
	  while (len--) {                                                    
    2278:	e2588001 	subs	r8, r8, #1	; 0x1                             <== NOT EXECUTED
	    c = *buf++;                                                      
	    rtems_termios_linesw[tty->t_line].l_rint(c,tty);                 
    227c:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
	int dropped = 0;                                                     
	bool flow_rcv = false; /* true, if flow control char received */     
	rtems_interrupt_level level;                                         
                                                                      
	if (rtems_termios_linesw[tty->t_line].l_rint != NULL) {              
	  while (len--) {                                                    
    2280:	2afffff5 	bcs	225c <rtems_termios_enqueue_raw_characters+0x50><== NOT EXECUTED
	  }                                                                  
                                                                      
	  /*                                                                 
	   * check to see if rcv wakeup callback was set                     
	   */                                                                
	  if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {  
    2284:	e59450e4 	ldr	r5, [r4, #228]                                <== NOT EXECUTED
    2288:	e3550000 	cmp	r5, #0	; 0x0                                  <== NOT EXECUTED
    228c:	1a00008b 	bne	24c0 <rtems_termios_enqueue_raw_characters+0x2b4><== NOT EXECUTED
    2290:	e59430dc 	ldr	r3, [r4, #220]                                <== NOT EXECUTED
    2294:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2298:	0a000088 	beq	24c0 <rtems_termios_enqueue_raw_characters+0x2b4><== NOT EXECUTED
	    (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);      
    229c:	e2840030 	add	r0, r4, #48	; 0x30                            <== NOT EXECUTED
    22a0:	e59410e0 	ldr	r1, [r4, #224]                                <== NOT EXECUTED
    22a4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    22a8:	e12fff13 	bx	r3                                             <== NOT EXECUTED
	    tty->tty_rcvwakeup = 1;                                          
    22ac:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    22b0:	e58430e4 	str	r3, [r4, #228]                                <== NOT EXECUTED
    22b4:	ea000082 	b	24c4 <rtems_termios_enqueue_raw_characters+0x2b8><== NOT EXECUTED
                                                                      
	while (len--) {                                                      
	  c = *buf++;                                                        
	  /* FIXME: implement IXANY: any character restarts output */        
	  /* if incoming XON/XOFF controls outgoing stream: */               
	  if (tty->flow_ctrl & FL_MDXON) {                                   
    22b8:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    22bc:	e3130c02 	tst	r3, #512	; 0x200                              <== NOT EXECUTED
    	  }                                                              
	  return 0;                                                          
	}                                                                    
                                                                      
	while (len--) {                                                      
	  c = *buf++;                                                        
    22c0:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    22c4:	e7d37009 	ldrb	r7, [r3, r9]                                 <== NOT EXECUTED
	  /* FIXME: implement IXANY: any character restarts output */        
	  /* if incoming XON/XOFF controls outgoing stream: */               
	  if (tty->flow_ctrl & FL_MDXON) {                                   
    22c8:	0a00000f 	beq	230c <rtems_termios_enqueue_raw_characters+0x100><== NOT EXECUTED
	    /* if received char is V_STOP and V_START (both are equal value) */
	    if (c == tty->termios.c_cc[VSTOP]) {                             
    22cc:	e5d4204a 	ldrb	r2, [r4, #74]                                <== NOT EXECUTED
    22d0:	e1520007 	cmp	r2, r7                                        <== NOT EXECUTED
    22d4:	e5d43049 	ldrb	r3, [r4, #73]                                <== NOT EXECUTED
    22d8:	1a000005 	bne	22f4 <rtems_termios_enqueue_raw_characters+0xe8><== NOT EXECUTED
	      if (c == tty->termios.c_cc[VSTART]) {                          
    22dc:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
		/* received VSTOP and VSTART==VSTOP? */                             
		/* then toggle "stop output" status  */                             
		tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF;                       
    22e0:	059430b8 	ldreq	r3, [r4, #184]                              <== NOT EXECUTED
	      }                                                              
	      else {                                                         
		/* VSTOP received (other code than VSTART) */                       
		/* stop output                             */                       
		tty->flow_ctrl |= FL_ORCVXOF;                                       
    22e4:	159430b8 	ldrne	r3, [r4, #184]                              <== NOT EXECUTED
	    /* if received char is V_STOP and V_START (both are equal value) */
	    if (c == tty->termios.c_cc[VSTOP]) {                             
	      if (c == tty->termios.c_cc[VSTART]) {                          
		/* received VSTOP and VSTART==VSTOP? */                             
		/* then toggle "stop output" status  */                             
		tty->flow_ctrl = tty->flow_ctrl ^ FL_ORCVXOF;                       
    22e8:	02233010 	eoreq	r3, r3, #16	; 0x10                          <== NOT EXECUTED
	      }                                                              
	      else {                                                         
		/* VSTOP received (other code than VSTART) */                       
		/* stop output                             */                       
		tty->flow_ctrl |= FL_ORCVXOF;                                       
    22ec:	13833010 	orrne	r3, r3, #16	; 0x10                          <== NOT EXECUTED
    22f0:	ea000003 	b	2304 <rtems_termios_enqueue_raw_characters+0xf8><== NOT EXECUTED
	      }                                                              
	      flow_rcv = true;                                               
	    }                                                                
	    else if (c == tty->termios.c_cc[VSTART]) {                       
    22f4:	e1530007 	cmp	r3, r7                                        <== NOT EXECUTED
    22f8:	1a000003 	bne	230c <rtems_termios_enqueue_raw_characters+0x100><== NOT EXECUTED
	      /* VSTART received */                                          
	      /* restart output  */                                          
	      tty->flow_ctrl &= ~FL_ORCVXOF;                                 
    22fc:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2300:	e3c33010 	bic	r3, r3, #16	; 0x10                            <== NOT EXECUTED
    2304:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
    2308:	ea000001 	b	2314 <rtems_termios_enqueue_raw_characters+0x108><== NOT EXECUTED
	      flow_rcv = true;                                               
	    }                                                                
	  }                                                                  
	  if (flow_rcv) {                                                    
    230c:	e35a0000 	cmp	sl, #0	; 0x0                                  <== NOT EXECUTED
    2310:	0a000016 	beq	2370 <rtems_termios_enqueue_raw_characters+0x164><== NOT EXECUTED
	    /* restart output according to FL_ORCVXOF flag */                
	    if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) {    
    2314:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2318:	e2033030 	and	r3, r3, #48	; 0x30                            <== NOT EXECUTED
    231c:	e3530020 	cmp	r3, #32	; 0x20                                <== NOT EXECUTED
    2320:	1a000010 	bne	2368 <rtems_termios_enqueue_raw_characters+0x15c><== NOT EXECUTED
	      /* disable interrupts    */                                    
	      rtems_interrupt_disable(level);                                
    2324:	e10f6000 	mrs	r6, CPSR                                      <== NOT EXECUTED
    2328:	e38630c0 	orr	r3, r6, #192	; 0xc0                           <== NOT EXECUTED
    232c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
	      tty->flow_ctrl &= ~FL_OSTOP;                                   
    2330:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
	      /* check for chars in output buffer (or rob_state?) */         
	      if (tty->rawOutBufState != rob_idle) {                         
    2334:	e5942094 	ldr	r2, [r4, #148]                                <== NOT EXECUTED
	  if (flow_rcv) {                                                    
	    /* restart output according to FL_ORCVXOF flag */                
	    if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) {    
	      /* disable interrupts    */                                    
	      rtems_interrupt_disable(level);                                
	      tty->flow_ctrl &= ~FL_OSTOP;                                   
    2338:	e3c33020 	bic	r3, r3, #32	; 0x20                            <== NOT EXECUTED
	      /* check for chars in output buffer (or rob_state?) */         
	      if (tty->rawOutBufState != rob_idle) {                         
    233c:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
	  if (flow_rcv) {                                                    
	    /* restart output according to FL_ORCVXOF flag */                
	    if ((tty->flow_ctrl & (FL_ORCVXOF | FL_OSTOP)) == FL_OSTOP) {    
	      /* disable interrupts    */                                    
	      rtems_interrupt_disable(level);                                
	      tty->flow_ctrl &= ~FL_OSTOP;                                   
    2340:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
	      /* check for chars in output buffer (or rob_state?) */         
	      if (tty->rawOutBufState != rob_idle) {                         
    2344:	0a000006 	beq	2364 <rtems_termios_enqueue_raw_characters+0x158><== NOT EXECUTED
	      /* if chars available, call write function... */               
		(*tty->device.write)(tty->minor,                                    
    2348:	e5943084 	ldr	r3, [r4, #132]                                <== NOT EXECUTED
    234c:	e594107c 	ldr	r1, [r4, #124]                                <== NOT EXECUTED
    2350:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    2354:	e0811003 	add	r1, r1, r3                                    <== NOT EXECUTED
    2358:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    235c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2360:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
		     &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail], 1);               
	      }                                                              
	      /* reenable interrupts */                                      
	      rtems_interrupt_enable(level);                                 
    2364:	e129f006 	msr	CPSR_fc, r6                                   <== NOT EXECUTED
    2368:	e3a0a001 	mov	sl, #1	; 0x1                                  <== NOT EXECUTED
    236c:	ea00004a 	b	249c <rtems_termios_enqueue_raw_characters+0x290><== NOT EXECUTED
	    }                                                                
	  }                                                                  
	  else {                                                             
		newTail = (tty->rawInBuf.Tail + 1) % tty->rawInBuf.Size;            
    2370:	e5940060 	ldr	r0, [r4, #96]                                 <== NOT EXECUTED
    2374:	e5941064 	ldr	r1, [r4, #100]                                <== NOT EXECUTED
    2378:	e2800001 	add	r0, r0, #1	; 0x1                              <== NOT EXECUTED
    237c:	eb003c93 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
    2380:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
		/* if chars_in_buffer > highwater                */                 
		rtems_interrupt_disable(level);                                     
    2384:	e10fb000 	mrs	fp, CPSR                                      <== NOT EXECUTED
    2388:	e38b30c0 	orr	r3, fp, #192	; 0xc0                           <== NOT EXECUTED
    238c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
		if ((((newTail - tty->rawInBuf.Head + tty->rawInBuf.Size)           
    2390:	e594305c 	ldr	r3, [r4, #92]                                 <== NOT EXECUTED
    2394:	e5940064 	ldr	r0, [r4, #100]                                <== NOT EXECUTED
    2398:	e0630000 	rsb	r0, r3, r0                                    <== NOT EXECUTED
    239c:	e5941064 	ldr	r1, [r4, #100]                                <== NOT EXECUTED
    23a0:	e0800006 	add	r0, r0, r6                                    <== NOT EXECUTED
    23a4:	eb003c89 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
    23a8:	e59430c0 	ldr	r3, [r4, #192]                                <== NOT EXECUTED
    23ac:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
    23b0:	9a000025 	bls	244c <rtems_termios_enqueue_raw_characters+0x240><== NOT EXECUTED
    23b4:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    23b8:	e3130001 	tst	r3, #1	; 0x1                                  <== NOT EXECUTED
    23bc:	1a000022 	bne	244c <rtems_termios_enqueue_raw_characters+0x240><== NOT EXECUTED
		      % tty->rawInBuf.Size)                                         
		     > tty->highwater) &&                                           
		    !(tty->flow_ctrl & FL_IREQXOF)) {                               
		  /* incoming data stream should be stopped */                      
		  tty->flow_ctrl |= FL_IREQXOF;                                     
    23c0:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    23c4:	e3833001 	orr	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    23c8:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
		  if ((tty->flow_ctrl & (FL_MDXOF | FL_ISNTXOF))                    
    23cc:	e59f3100 	ldr	r3, [pc, #256]	; 24d4 <rtems_termios_enqueue_raw_characters+0x2c8><== NOT EXECUTED
    23d0:	e59420b8 	ldr	r2, [r4, #184]                                <== NOT EXECUTED
    23d4:	e0023003 	and	r3, r2, r3                                    <== NOT EXECUTED
    23d8:	e3530b01 	cmp	r3, #1024	; 0x400                             <== NOT EXECUTED
    23dc:	1a00000e 	bne	241c <rtems_termios_enqueue_raw_characters+0x210><== NOT EXECUTED
		      ==                (FL_MDXOF             ) ){                  
		    if ((tty->flow_ctrl & FL_OSTOP) ||                              
    23e0:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    23e4:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
    23e8:	1a000002 	bne	23f8 <rtems_termios_enqueue_raw_characters+0x1ec><== NOT EXECUTED
    23ec:	e5943094 	ldr	r3, [r4, #148]                                <== NOT EXECUTED
    23f0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    23f4:	1a000014 	bne	244c <rtems_termios_enqueue_raw_characters+0x240><== NOT EXECUTED
			(tty->rawOutBufState == rob_idle)) {                               
		      /* if tx is stopped due to XOFF or out of data */             
		      /*    call write function here                 */             
		      tty->flow_ctrl |= FL_ISNTXOF;                                 
    23f8:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    23fc:	e3833002 	orr	r3, r3, #2	; 0x2                              <== NOT EXECUTED
    2400:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
		      (*tty->device.write)(tty->minor,                              
    2404:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    2408:	e59d1004 	ldr	r1, [sp, #4]                                  <== NOT EXECUTED
    240c:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    2410:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2414:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
    2418:	ea00000b 	b	244c <rtems_termios_enqueue_raw_characters+0x240><== NOT EXECUTED
			 (void *)&(tty->termios.c_cc[VSTOP]),                              
			 1);                                                               
		    }                                                               
		  }                                                                 
		  else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF))               
    241c:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2420:	e2033f41 	and	r3, r3, #260	; 0x104                          <== NOT EXECUTED
    2424:	e3530c01 	cmp	r3, #256	; 0x100                              <== NOT EXECUTED
    2428:	1a000007 	bne	244c <rtems_termios_enqueue_raw_characters+0x240><== NOT EXECUTED
			   ==                (FL_MDRTS             ) ) {                   
		    tty->flow_ctrl |= FL_IRTSOFF;                                   
    242c:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
		    /* deactivate RTS line */                                       
		    if (tty->device.stopRemoteTx != NULL) {                         
    2430:	e59420ac 	ldr	r2, [r4, #172]                                <== NOT EXECUTED
			 1);                                                               
		    }                                                               
		  }                                                                 
		  else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF))               
			   ==                (FL_MDRTS             ) ) {                   
		    tty->flow_ctrl |= FL_IRTSOFF;                                   
    2434:	e3833004 	orr	r3, r3, #4	; 0x4                              <== NOT EXECUTED
		    /* deactivate RTS line */                                       
		    if (tty->device.stopRemoteTx != NULL) {                         
    2438:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
			 1);                                                               
		    }                                                               
		  }                                                                 
		  else if ((tty->flow_ctrl & (FL_MDRTS | FL_IRTSOFF))               
			   ==                (FL_MDRTS             ) ) {                   
		    tty->flow_ctrl |= FL_IRTSOFF;                                   
    243c:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
		    /* deactivate RTS line */                                       
		    if (tty->device.stopRemoteTx != NULL) {                         
		      tty->device.stopRemoteTx(tty->minor);                         
    2440:	15940010 	ldrne	r0, [r4, #16]                               <== NOT EXECUTED
    2444:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    2448:	112fff12 	bxne	r2                                           <== NOT EXECUTED
		    }                                                               
		  }                                                                 
		}                                                                   
		/* reenable interrupts */                                           
		rtems_interrupt_enable(level);                                      
    244c:	e129f00b 	msr	CPSR_fc, fp                                   <== NOT EXECUTED
                                                                      
		if (newTail == tty->rawInBuf.Head) {                                
    2450:	e594305c 	ldr	r3, [r4, #92]                                 <== NOT EXECUTED
    2454:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
		        dropped++;                                                  
    2458:	02855001 	addeq	r5, r5, #1	; 0x1                            <== NOT EXECUTED
		  }                                                                 
		}                                                                   
		/* reenable interrupts */                                           
		rtems_interrupt_enable(level);                                      
                                                                      
		if (newTail == tty->rawInBuf.Head) {                                
    245c:	0a00000e 	beq	249c <rtems_termios_enqueue_raw_characters+0x290><== NOT EXECUTED
		        dropped++;                                                  
		}                                                                   
		else {                                                              
		        tty->rawInBuf.theBuf[newTail] = c;                          
    2460:	e5943058 	ldr	r3, [r4, #88]                                 <== NOT EXECUTED
    2464:	e7c37006 	strb	r7, [r3, r6]                                 <== NOT EXECUTED
		        tty->rawInBuf.Tail = newTail;                               
                                                                      
			/*                                                                 
			 * check to see if rcv wakeup callback was set                     
			 */                                                                
			if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {  
    2468:	e59430e4 	ldr	r3, [r4, #228]                                <== NOT EXECUTED
    246c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
		if (newTail == tty->rawInBuf.Head) {                                
		        dropped++;                                                  
		}                                                                   
		else {                                                              
		        tty->rawInBuf.theBuf[newTail] = c;                          
		        tty->rawInBuf.Tail = newTail;                               
    2470:	e5846060 	str	r6, [r4, #96]                                 <== NOT EXECUTED
                                                                      
			/*                                                                 
			 * check to see if rcv wakeup callback was set                     
			 */                                                                
			if (( !tty->tty_rcvwakeup ) && ( tty->tty_rcv.sw_pfn != NULL )) {  
    2474:	1a000008 	bne	249c <rtems_termios_enqueue_raw_characters+0x290><== NOT EXECUTED
    2478:	e59430dc 	ldr	r3, [r4, #220]                                <== NOT EXECUTED
    247c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2480:	0a000005 	beq	249c <rtems_termios_enqueue_raw_characters+0x290><== NOT EXECUTED
			  (*tty->tty_rcv.sw_pfn)(&tty->termios, tty->tty_rcv.sw_arg);      
    2484:	e59d0008 	ldr	r0, [sp, #8]                                  <== NOT EXECUTED
    2488:	e59410e0 	ldr	r1, [r4, #224]                                <== NOT EXECUTED
    248c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2490:	e12fff13 	bx	r3                                             <== NOT EXECUTED
			  tty->tty_rcvwakeup = 1;                                          
    2494:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    2498:	e58420e4 	str	r2, [r4, #228]                                <== NOT EXECUTED
    249c:	e2899001 	add	r9, r9, #1	; 0x1                              <== NOT EXECUTED
	    tty->tty_rcvwakeup = 1;                                          
    	  }                                                              
	  return 0;                                                          
	}                                                                    
                                                                      
	while (len--) {                                                      
    24a0:	e2588001 	subs	r8, r8, #1	; 0x1                             <== NOT EXECUTED
    24a4:	2affff83 	bcs	22b8 <rtems_termios_enqueue_raw_characters+0xac><== NOT EXECUTED
			  tty->tty_rcvwakeup = 1;                                          
			}                                                                  
		}                                                                   
	  }                                                                  
	}                                                                    
	tty->rawInBufDropped += dropped;                                     
    24a8:	e5943078 	ldr	r3, [r4, #120]                                <== NOT EXECUTED
    24ac:	e0833005 	add	r3, r3, r5                                    <== NOT EXECUTED
    24b0:	e5843078 	str	r3, [r4, #120]                                <== NOT EXECUTED
	rtems_semaphore_release (tty->rawInBuf.Semaphore);                   
    24b4:	e5940068 	ldr	r0, [r4, #104]                                <== NOT EXECUTED
    24b8:	eb0007e6 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
    24bc:	ea000000 	b	24c4 <rtems_termios_enqueue_raw_characters+0x2b8><== NOT EXECUTED
	return dropped;                                                      
    24c0:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
}                                                                     
    24c4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    24c8:	e28dd00c 	add	sp, sp, #12	; 0xc                             <== NOT EXECUTED
    24cc:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      

00003048 <rtems_termios_ioctl>: } } rtems_status_code rtems_termios_ioctl (void *arg) {
    3048:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     <== NOT EXECUTED
	rtems_libio_ioctl_args_t *args = arg;                                
	struct rtems_termios_tty *tty = args->iop->data1;                    
    304c:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
	struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer; 
	rtems_status_code sc;                                                
                                                                      
 	args->ioctl_return = 0;                                             
    3050:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
rtems_status_code                                                     
rtems_termios_ioctl (void *arg)                                       
{                                                                     
	rtems_libio_ioctl_args_t *args = arg;                                
	struct rtems_termios_tty *tty = args->iop->data1;                    
    3054:	e5935028 	ldr	r5, [r3, #40]                                 <== NOT EXECUTED
	struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer; 
	rtems_status_code sc;                                                
                                                                      
 	args->ioctl_return = 0;                                             
    3058:	e580100c 	str	r1, [r0, #12]                                 <== NOT EXECUTED
  }                                                                   
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_ioctl (void *arg)                                       
{                                                                     
    305c:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
    3060:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
	struct rtems_termios_tty *tty = args->iop->data1;                    
	struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer; 
	rtems_status_code sc;                                                
                                                                      
 	args->ioctl_return = 0;                                             
	sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    3064:	e5950018 	ldr	r0, [r5, #24]                                 <== NOT EXECUTED
    3068:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
rtems_status_code                                                     
rtems_termios_ioctl (void *arg)                                       
{                                                                     
	rtems_libio_ioctl_args_t *args = arg;                                
	struct rtems_termios_tty *tty = args->iop->data1;                    
	struct ttywakeup         *wakeup = (struct ttywakeup *)args->buffer; 
    306c:	e5964008 	ldr	r4, [r6, #8]                                  <== NOT EXECUTED
	rtems_status_code sc;                                                
                                                                      
 	args->ioctl_return = 0;                                             
	sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    3070:	eb0004b2 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
	if (sc != RTEMS_SUCCESSFUL) {                                        
    3074:	e2508000 	subs	r8, r0, #0	; 0x0                             <== NOT EXECUTED
    3078:	1a0000dc 	bne	33f0 <rtems_termios_ioctl+0x3a8>              <== NOT EXECUTED
		args->ioctl_return = sc;                                            
		return sc;                                                          
	}                                                                    
	switch (args->command) {                                             
    307c:	e5962004 	ldr	r2, [r6, #4]                                  <== NOT EXECUTED
    3080:	e3520004 	cmp	r2, #4	; 0x4                                  <== NOT EXECUTED
    3084:	0a0000ad 	beq	3340 <rtems_termios_ioctl+0x2f8>              <== NOT EXECUTED
    3088:	8a000005 	bhi	30a4 <rtems_termios_ioctl+0x5c>               <== NOT EXECUTED
    308c:	e3520002 	cmp	r2, #2	; 0x2                                  <== NOT EXECUTED
    3090:	0a000026 	beq	3130 <rtems_termios_ioctl+0xe8>               <== NOT EXECUTED
    3094:	8a0000a2 	bhi	3324 <rtems_termios_ioctl+0x2dc>              <== NOT EXECUTED
    3098:	e3520001 	cmp	r2, #1	; 0x1                                  <== NOT EXECUTED
    309c:	1a00000d 	bne	30d8 <rtems_termios_ioctl+0x90>               <== NOT EXECUTED
    30a0:	ea000018 	b	3108 <rtems_termios_ioctl+0xc0>                 <== NOT EXECUTED
    30a4:	e59f3354 	ldr	r3, [pc, #852]	; 3400 <rtems_termios_ioctl+0x3b8><== NOT EXECUTED
    30a8:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    30ac:	0a0000c2 	beq	33bc <rtems_termios_ioctl+0x374>              <== NOT EXECUTED
    30b0:	8a000002 	bhi	30c0 <rtems_termios_ioctl+0x78>               <== NOT EXECUTED
    30b4:	e3520005 	cmp	r2, #5	; 0x5                                  <== NOT EXECUTED
    30b8:	1a000006 	bne	30d8 <rtems_termios_ioctl+0x90>               <== NOT EXECUTED
    30bc:	ea00009b 	b	3330 <rtems_termios_ioctl+0x2e8>                <== NOT EXECUTED
    30c0:	e59f333c 	ldr	r3, [pc, #828]	; 3404 <rtems_termios_ioctl+0x3bc><== NOT EXECUTED
    30c4:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    30c8:	0a0000b8 	beq	33b0 <rtems_termios_ioctl+0x368>              <== NOT EXECUTED
    30cc:	e2833105 	add	r3, r3, #1073741825	; 0x40000001              <== NOT EXECUTED
    30d0:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    30d4:	0a00009d 	beq	3350 <rtems_termios_ioctl+0x308>              <== NOT EXECUTED
	default:                                                             
		if (rtems_termios_linesw[tty->t_line].l_ioctl != NULL) {            
    30d8:	e59520cc 	ldr	r2, [r5, #204]                                <== NOT EXECUTED
    30dc:	e59f3324 	ldr	r3, [pc, #804]	; 3408 <rtems_termios_ioctl+0x3c0><== NOT EXECUTED
    30e0:	e0833282 	add	r3, r3, r2, lsl #5                            <== NOT EXECUTED
    30e4:	e5933018 	ldr	r3, [r3, #24]                                 <== NOT EXECUTED
    30e8:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    30ec:	03a0800a 	moveq	r8, #10	; 0xa                               <== NOT EXECUTED
    30f0:	0a0000bc 	beq	33e8 <rtems_termios_ioctl+0x3a0>              <== NOT EXECUTED
			sc = rtems_termios_linesw[tty->t_line].l_ioctl(tty,args);          
    30f4:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    30f8:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    30fc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    3100:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    3104:	ea0000a7 	b	33a8 <rtems_termios_ioctl+0x360>                <== NOT EXECUTED
			sc = RTEMS_INVALID_NUMBER;                                         
		}                                                                   
		break;                                                              
                                                                      
	case RTEMS_IO_GET_ATTRIBUTES:                                        
		*(struct termios *)args->buffer = tty->termios;                     
    3108:	e5964008 	ldr	r4, [r6, #8]                                  <== NOT EXECUTED
    310c:	e285c030 	add	ip, r5, #48	; 0x30                            <== NOT EXECUTED
    3110:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    3114:	e1a0e004 	mov	lr, r4                                        <== NOT EXECUTED
    3118:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    311c:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    3120:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    3124:	e59c3000 	ldr	r3, [ip]                                      <== NOT EXECUTED
    3128:	e58e3000 	str	r3, [lr]                                      <== NOT EXECUTED
    312c:	ea0000ad 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
		break;                                                              
                                                                      
	case RTEMS_IO_SET_ATTRIBUTES:                                        
		tty->termios = *(struct termios *)args->buffer;                     
    3130:	e5963008 	ldr	r3, [r6, #8]                                  <== NOT EXECUTED
    3134:	e1a0e003 	mov	lr, r3                                        <== NOT EXECUTED
    3138:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    313c:	e285c030 	add	ip, r5, #48	; 0x30                            <== NOT EXECUTED
    3140:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
    3144:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}                         <== NOT EXECUTED
    3148:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3}                       <== NOT EXECUTED
  /*                                                                  
   * check for flow control options to be switched off                
   */                                                                 
                                                                      
  /* check for outgoing XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXON) &&                                 
    314c:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
	case RTEMS_IO_GET_ATTRIBUTES:                                        
		*(struct termios *)args->buffer = tty->termios;                     
		break;                                                              
                                                                      
	case RTEMS_IO_SET_ATTRIBUTES:                                        
		tty->termios = *(struct termios *)args->buffer;                     
    3150:	e59e2000 	ldr	r2, [lr]                                      <== NOT EXECUTED
  /*                                                                  
   * check for flow control options to be switched off                
   */                                                                 
                                                                      
  /* check for outgoing XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXON) &&                                 
    3154:	e3130c02 	tst	r3, #512	; 0x200                              <== NOT EXECUTED
	case RTEMS_IO_GET_ATTRIBUTES:                                        
		*(struct termios *)args->buffer = tty->termios;                     
		break;                                                              
                                                                      
	case RTEMS_IO_SET_ATTRIBUTES:                                        
		tty->termios = *(struct termios *)args->buffer;                     
    3158:	e58c2000 	str	r2, [ip]                                      <== NOT EXECUTED
  /*                                                                  
   * check for flow control options to be switched off                
   */                                                                 
                                                                      
  /* check for outgoing XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXON) &&                                 
    315c:	0a000019 	beq	31c8 <rtems_termios_ioctl+0x180>              <== NOT EXECUTED
    3160:	e5953030 	ldr	r3, [r5, #48]                                 <== NOT EXECUTED
    3164:	e3130b01 	tst	r3, #1024	; 0x400                             <== NOT EXECUTED
    3168:	1a000016 	bne	31c8 <rtems_termios_ioctl+0x180>              <== NOT EXECUTED
      !(tty->termios.c_iflag & IXON)) {                               
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDXON | FL_ORCVXOF);                       
    316c:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    3170:	e3c33e21 	bic	r3, r3, #528	; 0x210                          <== NOT EXECUTED
    3174:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
                                                                      
    /* has output been stopped due to received XOFF? */               
    if (tty->flow_ctrl & FL_OSTOP) {                                  
    3178:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    317c:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
    3180:	0a000010 	beq	31c8 <rtems_termios_ioctl+0x180>              <== NOT EXECUTED
      /* disable interrupts    */                                     
      rtems_interrupt_disable(level);                                 
    3184:	e10f4000 	mrs	r4, CPSR                                      <== NOT EXECUTED
    3188:	e38430c0 	orr	r3, r4, #192	; 0xc0                           <== NOT EXECUTED
    318c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
      tty->flow_ctrl &= ~FL_OSTOP;                                    
    3190:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
      /* check for chars in output buffer (or rob_state?) */          
      if (tty->rawOutBufState != rob_idle) {                          
    3194:	e5952094 	ldr	r2, [r5, #148]                                <== NOT EXECUTED
                                                                      
    /* has output been stopped due to received XOFF? */               
    if (tty->flow_ctrl & FL_OSTOP) {                                  
      /* disable interrupts    */                                     
      rtems_interrupt_disable(level);                                 
      tty->flow_ctrl &= ~FL_OSTOP;                                    
    3198:	e3c33020 	bic	r3, r3, #32	; 0x20                            <== NOT EXECUTED
      /* check for chars in output buffer (or rob_state?) */          
      if (tty->rawOutBufState != rob_idle) {                          
    319c:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
    /* has output been stopped due to received XOFF? */               
    if (tty->flow_ctrl & FL_OSTOP) {                                  
      /* disable interrupts    */                                     
      rtems_interrupt_disable(level);                                 
      tty->flow_ctrl &= ~FL_OSTOP;                                    
    31a0:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
      /* check for chars in output buffer (or rob_state?) */          
      if (tty->rawOutBufState != rob_idle) {                          
    31a4:	0a000006 	beq	31c4 <rtems_termios_ioctl+0x17c>              <== NOT EXECUTED
	/* if chars available, call write function... */                     
	(*tty->device.write)(tty->minor,                                     
    31a8:	e5953084 	ldr	r3, [r5, #132]                                <== NOT EXECUTED
    31ac:	e595107c 	ldr	r1, [r5, #124]                                <== NOT EXECUTED
    31b0:	e5950010 	ldr	r0, [r5, #16]                                 <== NOT EXECUTED
    31b4:	e0811003 	add	r1, r1, r3                                    <== NOT EXECUTED
    31b8:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    31bc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    31c0:	e595f0a4 	ldr	pc, [r5, #164]                                <== NOT EXECUTED
		     &tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1);                
      }                                                               
      /* reenable interrupts */                                       
      rtems_interrupt_enable(level);                                  
    31c4:	e129f004 	msr	CPSR_fc, r4                                   <== NOT EXECUTED
    }                                                                 
  }                                                                   
  /* check for incoming XON/XOFF flow control switched off */         
  if (( tty->flow_ctrl & FL_MDXOF) &&                                 
    31c8:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    31cc:	e3130b01 	tst	r3, #1024	; 0x400                             <== NOT EXECUTED
    31d0:	0a000008 	beq	31f8 <rtems_termios_ioctl+0x1b0>              <== NOT EXECUTED
    31d4:	e5953030 	ldr	r3, [r5, #48]                                 <== NOT EXECUTED
    31d8:	e3130a01 	tst	r3, #4096	; 0x1000                            <== NOT EXECUTED
    31dc:	1a000005 	bne	31f8 <rtems_termios_ioctl+0x1b0>              <== NOT EXECUTED
      !(tty->termios.c_iflag & IXOFF)) {                              
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDXOF);                                    
    31e0:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    31e4:	e3c33b01 	bic	r3, r3, #1024	; 0x400                         <== NOT EXECUTED
    31e8:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
    /* FIXME: what happens, if we had sent XOFF but not yet XON? */   
    tty->flow_ctrl &= ~(FL_ISNTXOF);                                  
    31ec:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    31f0:	e3c33002 	bic	r3, r3, #2	; 0x2                              <== NOT EXECUTED
    31f4:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
  }                                                                   
                                                                      
  /* check for incoming RTS/CTS flow control switched off */          
  if (( tty->flow_ctrl & FL_MDRTS) &&                                 
    31f8:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    31fc:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
    3200:	0a000010 	beq	3248 <rtems_termios_ioctl+0x200>              <== NOT EXECUTED
    3204:	e5953038 	ldr	r3, [r5, #56]                                 <== NOT EXECUTED
    3208:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    320c:	ba00000d 	blt	3248 <rtems_termios_ioctl+0x200>              <== NOT EXECUTED
      !(tty->termios.c_cflag & CRTSCTS)) {                            
    /* clear related flags in flow_ctrl */                            
    tty->flow_ctrl &= ~(FL_MDRTS);                                    
    3210:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    3214:	e3c33c01 	bic	r3, r3, #256	; 0x100                          <== NOT EXECUTED
    3218:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
                                                                      
    /* restart remote Tx, if it was stopped */                        
    if ((tty->flow_ctrl & FL_IRTSOFF) &&                              
    321c:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    3220:	e3130004 	tst	r3, #4	; 0x4                                  <== NOT EXECUTED
    3224:	0a000004 	beq	323c <rtems_termios_ioctl+0x1f4>              <== NOT EXECUTED
    3228:	e59530b0 	ldr	r3, [r5, #176]                                <== NOT EXECUTED
    322c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
	(tty->device.startRemoteTx != NULL)) {                               
      tty->device.startRemoteTx(tty->minor);                          
    3230:	15950010 	ldrne	r0, [r5, #16]                               <== NOT EXECUTED
    3234:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    3238:	112fff13 	bxne	r3                                           <== NOT EXECUTED
    }                                                                 
    tty->flow_ctrl &= ~(FL_IRTSOFF);                                  
    323c:	e59530b8 	ldr	r3, [r5, #184]                                <== NOT EXECUTED
    3240:	e3c33004 	bic	r3, r3, #4	; 0x4                              <== NOT EXECUTED
    3244:	e58530b8 	str	r3, [r5, #184]                                <== NOT EXECUTED
                                                                      
  /*                                                                  
   * check for flow control options to be switched on                 
   */                                                                 
  /* check for incoming RTS/CTS flow control switched on */           
  if (tty->termios.c_cflag & CRTSCTS) {                               
    3248:	e5953038 	ldr	r3, [r5, #56]                                 <== NOT EXECUTED
    324c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    tty->flow_ctrl |= FL_MDRTS;                                       
    3250:	b59530b8 	ldrlt	r3, [r5, #184]                              <== NOT EXECUTED
    3254:	b3833c01 	orrlt	r3, r3, #256	; 0x100                        <== NOT EXECUTED
    3258:	b58530b8 	strlt	r3, [r5, #184]                              <== NOT EXECUTED
  }                                                                   
  /* check for incoming XON/XOF flow control switched on */           
  if (tty->termios.c_iflag & IXOFF) {                                 
    325c:	e5953030 	ldr	r3, [r5, #48]                                 <== NOT EXECUTED
    3260:	e3130a01 	tst	r3, #4096	; 0x1000                            <== NOT EXECUTED
    tty->flow_ctrl |= FL_MDXOF;                                       
    3264:	159530b8 	ldrne	r3, [r5, #184]                              <== NOT EXECUTED
    3268:	13833b01 	orrne	r3, r3, #1024	; 0x400                       <== NOT EXECUTED
    326c:	158530b8 	strne	r3, [r5, #184]                              <== NOT EXECUTED
  }                                                                   
  /* check for outgoing XON/XOF flow control switched on */           
  if (tty->termios.c_iflag & IXON) {                                  
    3270:	e5953030 	ldr	r3, [r5, #48]                                 <== NOT EXECUTED
    3274:	e3130b01 	tst	r3, #1024	; 0x400                             <== NOT EXECUTED
    tty->flow_ctrl |= FL_MDXON;                                       
    3278:	159530b8 	ldrne	r3, [r5, #184]                              <== NOT EXECUTED
    327c:	13833c02 	orrne	r3, r3, #512	; 0x200                        <== NOT EXECUTED
    3280:	158530b8 	strne	r3, [r5, #184]                              <== NOT EXECUTED
		tty->termios = *(struct termios *)args->buffer;                     
                                                                      
		/* check for and process change in flow control options */          
		termios_set_flowctrl(tty);                                          
                                                                      
		if (tty->termios.c_lflag & ICANON) {                                
    3284:	e595303c 	ldr	r3, [r5, #60]                                 <== NOT EXECUTED
    3288:	e2137002 	ands	r7, r3, #2	; 0x2                             <== NOT EXECUTED
			tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                        
    328c:	13a03000 	movne	r3, #0	; 0x0                                <== NOT EXECUTED
			tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;                  
			tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;             
    3290:	15853074 	strne	r3, [r5, #116]                              <== NOT EXECUTED
                                                                      
		/* check for and process change in flow control options */          
		termios_set_flowctrl(tty);                                          
                                                                      
		if (tty->termios.c_lflag & ICANON) {                                
			tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                        
    3294:	1585306c 	strne	r3, [r5, #108]                              <== NOT EXECUTED
			tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;                  
    3298:	15853070 	strne	r3, [r5, #112]                              <== NOT EXECUTED
    329c:	1a000018 	bne	3304 <rtems_termios_ioctl+0x2bc>              <== NOT EXECUTED
			tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;             
		}                                                                   
		else {                                                              
			rtems_interval ticksPerSecond;                                     
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond);
    32a0:	e1a0100d 	mov	r1, sp                                        <== NOT EXECUTED
    32a4:	e3a00003 	mov	r0, #3	; 0x3                                  <== NOT EXECUTED
    32a8:	eb000206 	bl	3ac8 <rtems_clock_get>                         <== NOT EXECUTED
			tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10;  
    32ac:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    32b0:	e5d54046 	ldrb	r4, [r5, #70]                                <== NOT EXECUTED
    32b4:	e3a0100a 	mov	r1, #10	; 0xa                                 <== NOT EXECUTED
    32b8:	e0000493 	mul	r0, r3, r4                                    <== NOT EXECUTED
    32bc:	eb00387f 	bl	114c0 <__aeabi_uidiv>                          <== NOT EXECUTED
			if (tty->termios.c_cc[VTIME]) {                                    
    32c0:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
			tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;             
		}                                                                   
		else {                                                              
			rtems_interval ticksPerSecond;                                     
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond);
			tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10;  
    32c4:	e5850054 	str	r0, [r5, #84]                                 <== NOT EXECUTED
    32c8:	e5d53047 	ldrb	r3, [r5, #71]                                <== NOT EXECUTED
			if (tty->termios.c_cc[VTIME]) {                                    
    32cc:	0a000006 	beq	32ec <rtems_termios_ioctl+0x2a4>              <== NOT EXECUTED
				tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                       
				tty->rawInBufSemaphoreTimeout = tty->vtimeTicks;                  
				if (tty->termios.c_cc[VMIN])                                      
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
    32d0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    32d4:	01a03000 	moveq	r3, r0                                      <== NOT EXECUTED
    32d8:	13a03000 	movne	r3, #0	; 0x0                                <== NOT EXECUTED
		else {                                                              
			rtems_interval ticksPerSecond;                                     
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond);
			tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10;  
			if (tty->termios.c_cc[VTIME]) {                                    
				tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                       
    32dc:	e585706c 	str	r7, [r5, #108]                                <== NOT EXECUTED
				tty->rawInBufSemaphoreTimeout = tty->vtimeTicks;                  
				if (tty->termios.c_cc[VMIN])                                      
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
    32e0:	e5853074 	str	r3, [r5, #116]                                <== NOT EXECUTED
			rtems_interval ticksPerSecond;                                     
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_PER_SECOND, &ticksPerSecond);
			tty->vtimeTicks = tty->termios.c_cc[VTIME] * ticksPerSecond / 10;  
			if (tty->termios.c_cc[VTIME]) {                                    
				tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                       
				tty->rawInBufSemaphoreTimeout = tty->vtimeTicks;                  
    32e4:	e5850070 	str	r0, [r5, #112]                                <== NOT EXECUTED
    32e8:	ea000005 	b	3304 <rtems_termios_ioctl+0x2bc>                <== NOT EXECUTED
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
				else                                                              
					tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks;            
			}                                                                  
			else {                                                             
				if (tty->termios.c_cc[VMIN]) {                                    
    32ec:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
					tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                      
					tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;                
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
				}                                                                 
				else {                                                            
					tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT;                   
    32f0:	03a03001 	moveq	r3, #1	; 0x1                                <== NOT EXECUTED
			}                                                                  
			else {                                                             
				if (tty->termios.c_cc[VMIN]) {                                    
					tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                      
					tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;                
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
    32f4:	15854074 	strne	r4, [r5, #116]                              <== NOT EXECUTED
				else                                                              
					tty->rawInBufSemaphoreFirstTimeout = tty->vtimeTicks;            
			}                                                                  
			else {                                                             
				if (tty->termios.c_cc[VMIN]) {                                    
					tty->rawInBufSemaphoreOptions = RTEMS_WAIT;                      
    32f8:	1585406c 	strne	r4, [r5, #108]                              <== NOT EXECUTED
					tty->rawInBufSemaphoreTimeout = RTEMS_NO_TIMEOUT;                
    32fc:	15854070 	strne	r4, [r5, #112]                              <== NOT EXECUTED
					tty->rawInBufSemaphoreFirstTimeout = RTEMS_NO_TIMEOUT;           
				}                                                                 
				else {                                                            
					tty->rawInBufSemaphoreOptions = RTEMS_NO_WAIT;                   
    3300:	0585306c 	streq	r3, [r5, #108]                              <== NOT EXECUTED
				}                                                                 
			}                                                                  
		}                                                                   
		if (tty->device.setAttributes)                                      
    3304:	e59530a8 	ldr	r3, [r5, #168]                                <== NOT EXECUTED
    3308:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    330c:	0a000035 	beq	33e8 <rtems_termios_ioctl+0x3a0>              <== NOT EXECUTED
			(*tty->device.setAttributes)(tty->minor, &tty->termios);           
    3310:	e5950010 	ldr	r0, [r5, #16]                                 <== NOT EXECUTED
    3314:	e2851030 	add	r1, r5, #48	; 0x30                            <== NOT EXECUTED
    3318:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    331c:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    3320:	ea000030 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
		break;                                                              
                                                                      
	case RTEMS_IO_TCDRAIN:                                               
		drainOutput (tty);                                                  
    3324:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    3328:	ebfffe42 	bl	2c38 <drainOutput>                             <== NOT EXECUTED
    332c:	ea00002d 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
		break;                                                              
                                                                      
	case RTEMS_IO_SNDWAKEUP:                                             
		tty->tty_snd = *wakeup;                                             
    3330:	e894000c 	ldm	r4, {r2, r3}                                  <== NOT EXECUTED
    3334:	e58530d8 	str	r3, [r5, #216]                                <== NOT EXECUTED
    3338:	e58520d4 	str	r2, [r5, #212]                                <== NOT EXECUTED
    333c:	ea000029 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
		break;                                                              
                                                                      
	case RTEMS_IO_RCVWAKEUP:                                             
		tty->tty_rcv = *wakeup;                                             
    3340:	e894000c 	ldm	r4, {r2, r3}                                  <== NOT EXECUTED
    3344:	e58530e0 	str	r3, [r5, #224]                                <== NOT EXECUTED
    3348:	e58520dc 	str	r2, [r5, #220]                                <== NOT EXECUTED
    334c:	ea000025 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
#if 1 /* FIXME */                                                     
	case TIOCSETD:                                                       
		/*                                                                  
		 * close old line discipline                                        
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_close != NULL) {            
    3350:	e59520cc 	ldr	r2, [r5, #204]                                <== NOT EXECUTED
    3354:	e59f30ac 	ldr	r3, [pc, #172]	; 3408 <rtems_termios_ioctl+0x3c0><== NOT EXECUTED
    3358:	e0833282 	add	r3, r3, r2, lsl #5                            <== NOT EXECUTED
    335c:	e5933004 	ldr	r3, [r3, #4]                                  <== NOT EXECUTED
    3360:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    3364:	0a000003 	beq	3378 <rtems_termios_ioctl+0x330>              <== NOT EXECUTED
			sc = rtems_termios_linesw[tty->t_line].l_close(tty);               
    3368:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    336c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    3370:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    3374:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
		}                                                                   
		tty->t_line=*(int*)(args->buffer);                                  
    3378:	e5963008 	ldr	r3, [r6, #8]                                  <== NOT EXECUTED
    337c:	e5932000 	ldr	r2, [r3]                                      <== NOT EXECUTED
		tty->t_sc = NULL; /* ensure that no more valid data */              
		/*                                                                  
		 * open new line discipline                                         
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_open != NULL) {             
    3380:	e59f3080 	ldr	r3, [pc, #128]	; 3408 <rtems_termios_ioctl+0x3c0><== NOT EXECUTED
    3384:	e7931282 	ldr	r1, [r3, r2, lsl #5]                          <== NOT EXECUTED
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_close != NULL) {            
			sc = rtems_termios_linesw[tty->t_line].l_close(tty);               
		}                                                                   
		tty->t_line=*(int*)(args->buffer);                                  
		tty->t_sc = NULL; /* ensure that no more valid data */              
    3388:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
		/*                                                                  
		 * open new line discipline                                         
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_open != NULL) {             
    338c:	e3510000 	cmp	r1, #0	; 0x0                                  <== NOT EXECUTED
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_close != NULL) {            
			sc = rtems_termios_linesw[tty->t_line].l_close(tty);               
		}                                                                   
		tty->t_line=*(int*)(args->buffer);                                  
		tty->t_sc = NULL; /* ensure that no more valid data */              
    3390:	e58530d0 	str	r3, [r5, #208]                                <== NOT EXECUTED
		 * close old line discipline                                        
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_close != NULL) {            
			sc = rtems_termios_linesw[tty->t_line].l_close(tty);               
		}                                                                   
		tty->t_line=*(int*)(args->buffer);                                  
    3394:	e58520cc 	str	r2, [r5, #204]                                <== NOT EXECUTED
		tty->t_sc = NULL; /* ensure that no more valid data */              
		/*                                                                  
		 * open new line discipline                                         
		 */                                                                 
		if (rtems_termios_linesw[tty->t_line].l_open != NULL) {             
    3398:	0a000012 	beq	33e8 <rtems_termios_ioctl+0x3a0>              <== NOT EXECUTED
			sc = rtems_termios_linesw[tty->t_line].l_open(tty);                
    339c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    33a0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    33a4:	e12fff11 	bx	r1                                             <== NOT EXECUTED
    33a8:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
    33ac:	ea00000d 	b	33e8 <rtems_termios_ioctl+0x3a0>                <== NOT EXECUTED
		}                                                                   
		break;                                                              
	case TIOCGETD:                                                       
		*(int*)(args->buffer)=tty->t_line;                                  
    33b0:	e5962008 	ldr	r2, [r6, #8]                                  <== NOT EXECUTED
    33b4:	e59530cc 	ldr	r3, [r5, #204]                                <== NOT EXECUTED
    33b8:	ea000009 	b	33e4 <rtems_termios_ioctl+0x39c>                <== NOT EXECUTED
		break;                                                              
#endif                                                                
 	case FIONREAD:                                                      
		{                                                                   
		int rawnc = tty->rawInBuf.Tail - tty->rawInBuf.Head;                
    33bc:	e5952060 	ldr	r2, [r5, #96]                                 <== NOT EXECUTED
    33c0:	e595305c 	ldr	r3, [r5, #92]                                 <== NOT EXECUTED
		if ( rawnc < 0 )                                                    
    33c4:	e0521003 	subs	r1, r2, r3                                   <== NOT EXECUTED
			rawnc += tty->rawInBuf.Size;                                       
    33c8:	45953064 	ldrmi	r3, [r5, #100]                              <== NOT EXECUTED
    33cc:	40811003 	addmi	r1, r1, r3                                  <== NOT EXECUTED
		/* Half guess that this is the right operation */                   
		*(int *)args->buffer = tty->ccount - tty->cindex + rawnc;           
    33d0:	e2852020 	add	r2, r5, #32	; 0x20                            <== NOT EXECUTED
    33d4:	e892000c 	ldm	r2, {r2, r3}                                  <== NOT EXECUTED
    33d8:	e0423003 	sub	r3, r2, r3                                    <== NOT EXECUTED
    33dc:	e5962008 	ldr	r2, [r6, #8]                                  <== NOT EXECUTED
    33e0:	e0833001 	add	r3, r3, r1                                    <== NOT EXECUTED
    33e4:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
		}                                                                   
		break;                                                              
	}                                                                    
	rtems_semaphore_release (tty->osem);                                 
    33e8:	e5950018 	ldr	r0, [r5, #24]                                 <== NOT EXECUTED
    33ec:	eb000419 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
	args->ioctl_return = sc;                                             
    33f0:	e586800c 	str	r8, [r6, #12]                                 <== NOT EXECUTED
	return sc;                                                           
}                                                                     
    33f4:	e1a00008 	mov	r0, r8                                        <== NOT EXECUTED
    33f8:	e28dd004 	add	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    33fc:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      <== NOT EXECUTED
                                                                      

00003590 <rtems_termios_open>: rtems_device_major_number major, rtems_device_minor_number minor, void *arg, const rtems_termios_callbacks *callbacks ) {
    3590:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
    3594:	e24dd00c 	sub	sp, sp, #12	; 0xc                             
    3598:	e58d2008 	str	r2, [sp, #8]                                  
	struct rtems_termios_tty *tty;                                       
                                                                      
	/*                                                                   
	 * See if the device has already been opened                         
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
    359c:	e59f23f4 	ldr	r2, [pc, #1012]	; 3998 <rtems_termios_open+0x408>
  rtems_device_major_number      major,                               
  rtems_device_minor_number      minor,                               
  void                          *arg,                                 
  const rtems_termios_callbacks *callbacks                            
  )                                                                   
{                                                                     
    35a0:	e1a0b001 	mov	fp, r1                                        
	struct rtems_termios_tty *tty;                                       
                                                                      
	/*                                                                   
	 * See if the device has already been opened                         
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
    35a4:	e3a01000 	mov	r1, #0	; 0x0                                  
  rtems_device_major_number      major,                               
  rtems_device_minor_number      minor,                               
  void                          *arg,                                 
  const rtems_termios_callbacks *callbacks                            
  )                                                                   
{                                                                     
    35a8:	e1a09000 	mov	r9, r0                                        
	struct rtems_termios_tty *tty;                                       
                                                                      
	/*                                                                   
	 * See if the device has already been opened                         
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
    35ac:	e5920000 	ldr	r0, [r2]                                      
    35b0:	e1a02001 	mov	r2, r1                                        
  rtems_device_major_number      major,                               
  rtems_device_minor_number      minor,                               
  void                          *arg,                                 
  const rtems_termios_callbacks *callbacks                            
  )                                                                   
{                                                                     
    35b4:	e1a07003 	mov	r7, r3                                        
	struct rtems_termios_tty *tty;                                       
                                                                      
	/*                                                                   
	 * See if the device has already been opened                         
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
    35b8:	eb000360 	bl	4340 <rtems_semaphore_obtain>                  
				     RTEMS_WAIT, RTEMS_NO_TIMEOUT);                               
	if (sc != RTEMS_SUCCESSFUL)                                          
    35bc:	e250a000 	subs	sl, r0, #0	; 0x0                             
		return sc;                                                          
	for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) {  
    35c0:	059f33d4 	ldreq	r3, [pc, #980]	; 399c <rtems_termios_open+0x40c>
    35c4:	05935000 	ldreq	r5, [r3]                                    
	/*                                                                   
	 * See if the device has already been opened                         
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
				     RTEMS_WAIT, RTEMS_NO_TIMEOUT);                               
	if (sc != RTEMS_SUCCESSFUL)                                          
    35c8:	0a000007 	beq	35ec <rtems_termios_open+0x5c>                
    35cc:	ea0000e6 	b	396c <rtems_termios_open+0x3dc>                 <== NOT EXECUTED
		return sc;                                                          
	for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) {  
		if ((tty->major == major) && (tty->minor == minor))                 
    35d0:	e595300c 	ldr	r3, [r5, #12]                                 
    35d4:	e1530009 	cmp	r3, r9                                        
    35d8:	1a000002 	bne	35e8 <rtems_termios_open+0x58>                
    35dc:	e5953010 	ldr	r3, [r5, #16]                                 
    35e0:	e153000b 	cmp	r3, fp                                        
    35e4:	0a0000be 	beq	38e4 <rtems_termios_open+0x354>               
	 */                                                                  
	sc = rtems_semaphore_obtain (rtems_termios_ttyMutex,                 
				     RTEMS_WAIT, RTEMS_NO_TIMEOUT);                               
	if (sc != RTEMS_SUCCESSFUL)                                          
		return sc;                                                          
	for (tty = rtems_termios_ttyHead ; tty != NULL ; tty = tty->forw) {  
    35e8:	e5955000 	ldr	r5, [r5]                                      <== NOT EXECUTED
    35ec:	e3550000 	cmp	r5, #0	; 0x0                                  
    35f0:	1afffff6 	bne	35d0 <rtems_termios_open+0x40>                
    35f4:	ea0000df 	b	3978 <rtems_termios_open+0x3e8>                 
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * allocate raw input buffer                                        
		 */                                                                 
		tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE;                         
    35f8:	e59f33a0 	ldr	r3, [pc, #928]	; 39a0 <rtems_termios_open+0x410>
    35fc:	e5933000 	ldr	r3, [r3]                                      
    3600:	e5853064 	str	r3, [r5, #100]                                
		tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size);                 
    3604:	e5950064 	ldr	r0, [r5, #100]                                
    3608:	eb001573 	bl	8bdc <malloc>                                  
		if (tty->rawInBuf.theBuf == NULL) {                                 
    360c:	e3500000 	cmp	r0, #0	; 0x0                                  
		}                                                                   
		/*                                                                  
		 * allocate raw input buffer                                        
		 */                                                                 
		tty->rawInBuf.Size = RAW_INPUT_BUFFER_SIZE;                         
		tty->rawInBuf.theBuf = malloc (tty->rawInBuf.Size);                 
    3610:	e5850058 	str	r0, [r5, #88]                                 
		if (tty->rawInBuf.theBuf == NULL) {                                 
    3614:	1a000006 	bne	3634 <rtems_termios_open+0xa4>                
		        free(tty);                                                  
    3618:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    361c:	eb00142b 	bl	86d0 <free>                                    <== NOT EXECUTED
			rtems_semaphore_release (rtems_termios_ttyMutex);                  
    3620:	e59f3370 	ldr	r3, [pc, #880]	; 3998 <rtems_termios_open+0x408><== NOT EXECUTED
    3624:	e5930000 	ldr	r0, [r3]                                      <== NOT EXECUTED
    3628:	eb00038a 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
    362c:	e3a0a01a 	mov	sl, #26	; 0x1a                                <== NOT EXECUTED
    3630:	ea0000cd 	b	396c <rtems_termios_open+0x3dc>                 <== NOT EXECUTED
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * allocate raw output buffer                                       
		 */                                                                 
		tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE;                       
    3634:	e59f3368 	ldr	r3, [pc, #872]	; 39a4 <rtems_termios_open+0x414>
    3638:	e5933000 	ldr	r3, [r3]                                      
    363c:	e5853088 	str	r3, [r5, #136]                                
		tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size);               
    3640:	e5950088 	ldr	r0, [r5, #136]                                
    3644:	eb001564 	bl	8bdc <malloc>                                  
		if (tty->rawOutBuf.theBuf == NULL) {                                
    3648:	e3500000 	cmp	r0, #0	; 0x0                                  
		}                                                                   
		/*                                                                  
		 * allocate raw output buffer                                       
		 */                                                                 
		tty->rawOutBuf.Size = RAW_OUTPUT_BUFFER_SIZE;                       
		tty->rawOutBuf.theBuf = malloc (tty->rawOutBuf.Size);               
    364c:	e585007c 	str	r0, [r5, #124]                                
		if (tty->rawOutBuf.theBuf == NULL) {                                
    3650:	0a000007 	beq	3674 <rtems_termios_open+0xe4>                
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * allocate cooked buffer                                           
		 */                                                                 
		tty->cbuf  = malloc (CBUFSIZE);                                     
    3654:	e59f334c 	ldr	r3, [pc, #844]	; 39a8 <rtems_termios_open+0x418>
    3658:	e5930000 	ldr	r0, [r3]                                      
    365c:	eb00155e 	bl	8bdc <malloc>                                  
		if (tty->cbuf == NULL) {                                            
    3660:	e3500000 	cmp	r0, #0	; 0x0                                  
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * allocate cooked buffer                                           
		 */                                                                 
		tty->cbuf  = malloc (CBUFSIZE);                                     
    3664:	e585001c 	str	r0, [r5, #28]                                 
		if (tty->cbuf == NULL) {                                            
    3668:	1a000004 	bne	3680 <rtems_termios_open+0xf0>                
		        free((void *)(tty->rawOutBuf.theBuf));                      
    366c:	e595007c 	ldr	r0, [r5, #124]                                <== NOT EXECUTED
    3670:	eb001416 	bl	86d0 <free>                                    <== NOT EXECUTED
		        free((void *)(tty->rawInBuf.theBuf));                       
    3674:	e5950058 	ldr	r0, [r5, #88]                                 <== NOT EXECUTED
    3678:	eb001414 	bl	86d0 <free>                                    <== NOT EXECUTED
    367c:	eaffffe5 	b	3618 <rtems_termios_open+0x88>                  <== NOT EXECUTED
		tty->tty_rcvwakeup  = 0;                                            
                                                                      
		/*                                                                  
		 * link tty                                                         
		 */                                                                 
		tty->forw = rtems_termios_ttyHead;                                  
    3680:	e59f3314 	ldr	r3, [pc, #788]	; 399c <rtems_termios_open+0x40c>
    3684:	e5932000 	ldr	r2, [r3]                                      
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * Initialize wakeup callbacks                                      
		 */                                                                 
		tty->tty_snd.sw_pfn = NULL;                                         
    3688:	e3a03000 	mov	r3, #0	; 0x0                                  
		/*                                                                  
		 * link tty                                                         
		 */                                                                 
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
    368c:	e3520000 	cmp	r2, #0	; 0x0                                  
                                                                      
		/*                                                                  
		 * link tty                                                         
		 */                                                                 
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
    3690:	e885000c 	stm	r5, {r2, r3}                                  
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
    3694:	15825004 	strne	r5, [r2, #4]                                
		rtems_termios_ttyHead = tty;                                        
		if (rtems_termios_ttyTail == NULL)                                  
    3698:	e59f230c 	ldr	r2, [pc, #780]	; 39ac <rtems_termios_open+0x41c>
			return RTEMS_NO_MEMORY;                                            
		}                                                                   
		/*                                                                  
		 * Initialize wakeup callbacks                                      
		 */                                                                 
		tty->tty_snd.sw_pfn = NULL;                                         
    369c:	e58530d4 	str	r3, [r5, #212]                                
		tty->tty_snd.sw_arg = NULL;                                         
    36a0:	e58530d8 	str	r3, [r5, #216]                                
		tty->tty_rcv.sw_pfn = NULL;                                         
    36a4:	e58530dc 	str	r3, [r5, #220]                                
		tty->tty_rcv.sw_arg = NULL;                                         
    36a8:	e58530e0 	str	r3, [r5, #224]                                
		tty->tty_rcvwakeup  = 0;                                            
    36ac:	e58530e4 	str	r3, [r5, #228]                                
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
		if (rtems_termios_ttyTail == NULL)                                  
    36b0:	e5923000 	ldr	r3, [r2]                                      
		tty->major = major;                                                 
                                                                      
		/*                                                                  
		 * Set up mutex semaphores                                          
		 */                                                                 
		sc = rtems_semaphore_create (                                       
    36b4:	e59f82f4 	ldr	r8, [pc, #756]	; 39b0 <rtems_termios_open+0x420>
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
		if (rtems_termios_ttyTail == NULL)                                  
    36b8:	e3530000 	cmp	r3, #0	; 0x0                                  
		 */                                                                 
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
    36bc:	e59f32d8 	ldr	r3, [pc, #728]	; 399c <rtems_termios_open+0x40c>
		tty->major = major;                                                 
                                                                      
		/*                                                                  
		 * Set up mutex semaphores                                          
		 */                                                                 
		sc = rtems_semaphore_create (                                       
    36c0:	e59f02ec 	ldr	r0, [pc, #748]	; 39b4 <rtems_termios_open+0x424>
		 */                                                                 
		tty->forw = rtems_termios_ttyHead;                                  
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
    36c4:	e5834000 	str	r4, [r3]                                      
		tty->major = major;                                                 
                                                                      
		/*                                                                  
		 * Set up mutex semaphores                                          
		 */                                                                 
		sc = rtems_semaphore_create (                                       
    36c8:	e5d83000 	ldrb	r3, [r8]                                     
		tty->back = NULL;                                                   
		if (rtems_termios_ttyHead != NULL)                                  
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
		if (rtems_termios_ttyTail == NULL)                                  
			rtems_termios_ttyTail = tty;                                       
    36cc:	05824000 	streq	r4, [r2]                                    
		tty->major = major;                                                 
                                                                      
		/*                                                                  
		 * Set up mutex semaphores                                          
		 */                                                                 
		sc = rtems_semaphore_create (                                       
    36d0:	e1830000 	orr	r0, r3, r0                                    
			rtems_termios_ttyHead->back = tty;                                 
		rtems_termios_ttyHead = tty;                                        
		if (rtems_termios_ttyTail == NULL)                                  
			rtems_termios_ttyTail = tty;                                       
                                                                      
		tty->minor = minor;                                                 
    36d4:	e584b010 	str	fp, [r4, #16]                                 
		tty->major = major;                                                 
    36d8:	e584900c 	str	r9, [r4, #12]                                 
                                                                      
		/*                                                                  
		 * Set up mutex semaphores                                          
		 */                                                                 
		sc = rtems_semaphore_create (                                       
    36dc:	e284c014 	add	ip, r4, #20	; 0x14                            
    36e0:	e3a02054 	mov	r2, #84	; 0x54                                
    36e4:	e3a01001 	mov	r1, #1	; 0x1                                  
    36e8:	e3a03000 	mov	r3, #0	; 0x0                                  
    36ec:	e58dc000 	str	ip, [sp]                                      
    36f0:	eb000279 	bl	40dc <rtems_semaphore_create>                  
			rtems_build_name ('T', 'R', 'i', c),                               
			1,                                                                 
			RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,  
			RTEMS_NO_PRIORITY,                                                 
			&tty->isem);                                                       
		if (sc != RTEMS_SUCCESSFUL)                                         
    36f4:	e2502000 	subs	r2, r0, #0	; 0x0                             
    36f8:	1a000097 	bne	395c <rtems_termios_open+0x3cc>               
			rtems_fatal_error_occurred (sc);                                   
		sc = rtems_semaphore_create (                                       
    36fc:	e5d83000 	ldrb	r3, [r8]                                     
    3700:	e59f02b0 	ldr	r0, [pc, #688]	; 39b8 <rtems_termios_open+0x428>
    3704:	e284c018 	add	ip, r4, #24	; 0x18                            
    3708:	e1830000 	orr	r0, r3, r0                                    
    370c:	e3a01001 	mov	r1, #1	; 0x1                                  
    3710:	e1a03002 	mov	r3, r2                                        
    3714:	e3a02054 	mov	r2, #84	; 0x54                                
    3718:	e58dc000 	str	ip, [sp]                                      
    371c:	eb00026e 	bl	40dc <rtems_semaphore_create>                  
			rtems_build_name ('T', 'R', 'o', c),                               
			1,                                                                 
			RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,  
			RTEMS_NO_PRIORITY,                                                 
			&tty->osem);                                                       
		if (sc != RTEMS_SUCCESSFUL)                                         
    3720:	e2501000 	subs	r1, r0, #0	; 0x0                             
    3724:	1a00008c 	bne	395c <rtems_termios_open+0x3cc>               
			rtems_fatal_error_occurred (sc);                                   
		sc = rtems_semaphore_create (                                       
    3728:	e5d83000 	ldrb	r3, [r8]                                     
    372c:	e59f0288 	ldr	r0, [pc, #648]	; 39bc <rtems_termios_open+0x42c>
    3730:	e284c08c 	add	ip, r4, #140	; 0x8c                           
    3734:	e1830000 	orr	r0, r3, r0                                    
    3738:	e3a02020 	mov	r2, #32	; 0x20                                
    373c:	e1a03001 	mov	r3, r1                                        
    3740:	e58dc000 	str	ip, [sp]                                      
    3744:	eb000264 	bl	40dc <rtems_semaphore_create>                  
			rtems_build_name ('T', 'R', 'x', c),                               
			0,                                                                 
			RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_FIFO,                        
			RTEMS_NO_PRIORITY,                                                 
			&tty->rawOutBuf.Semaphore);                                        
		if (sc != RTEMS_SUCCESSFUL)                                         
    3748:	e2506000 	subs	r6, r0, #0	; 0x0                             
    374c:	1a000082 	bne	395c <rtems_termios_open+0x3cc>               
		tty->rawOutBufState = rob_idle;                                     
                                                                      
		/*                                                                  
		 * Set callbacks                                                    
		 */                                                                 
		tty->device = *callbacks;                                           
    3750:	e1a0c007 	mov	ip, r7                                        
    3754:	e8bc000f 	ldm	ip!, {r0, r1, r2, r3}                         
    3758:	e284e098 	add	lr, r4, #152	; 0x98                           
    375c:	e8ae000f 	stmia	lr!, {r0, r1, r2, r3}                       
    3760:	e89c000f 	ldm	ip, {r0, r1, r2, r3}                          
    3764:	e88e000f 	stm	lr, {r0, r1, r2, r3}                          
                                                                      
		/*                                                                  
		 * Create I/O tasks                                                 
		 */                                                                 
		if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {      
    3768:	e59430b4 	ldr	r3, [r4, #180]                                
    376c:	e3530002 	cmp	r3, #2	; 0x2                                  
			RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_FIFO,                        
			RTEMS_NO_PRIORITY,                                                 
			&tty->rawOutBuf.Semaphore);                                        
		if (sc != RTEMS_SUCCESSFUL)                                         
			rtems_fatal_error_occurred (sc);                                   
		tty->rawOutBufState = rob_idle;                                     
    3770:	e5846094 	str	r6, [r4, #148]                                
		tty->device = *callbacks;                                           
                                                                      
		/*                                                                  
		 * Create I/O tasks                                                 
		 */                                                                 
		if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {      
    3774:	1a000016 	bne	37d4 <rtems_termios_open+0x244>               
			sc = rtems_task_create (                                           
    3778:	e5d83000 	ldrb	r3, [r8]                                     <== NOT EXECUTED
    377c:	e59f023c 	ldr	r0, [pc, #572]	; 39c0 <rtems_termios_open+0x430><== NOT EXECUTED
    3780:	e284c0c8 	add	ip, r4, #200	; 0xc8                           <== NOT EXECUTED
    3784:	e1830000 	orr	r0, r3, r0                                    <== NOT EXECUTED
    3788:	e3a0100a 	mov	r1, #10	; 0xa                                 <== NOT EXECUTED
    378c:	e3a02b01 	mov	r2, #1024	; 0x400                             <== NOT EXECUTED
    3790:	e3a03c05 	mov	r3, #1280	; 0x500                             <== NOT EXECUTED
    3794:	e88d1040 	stm	sp, {r6, ip}                                  <== NOT EXECUTED
    3798:	eb000356 	bl	44f8 <rtems_task_create>                       <== NOT EXECUTED
				   TERMIOS_TXTASK_STACKSIZE,                                      
				   RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE |                        
				   RTEMS_NO_ASR,                                                  
				   RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                         
				   &tty->txTaskId);                                               
			if (sc != RTEMS_SUCCESSFUL)                                        
    379c:	e250e000 	subs	lr, r0, #0	; 0x0                             <== NOT EXECUTED
    37a0:	1a00006d 	bne	395c <rtems_termios_open+0x3cc>               <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
			sc = rtems_task_create (                                           
    37a4:	e5d83000 	ldrb	r3, [r8]                                     <== NOT EXECUTED
    37a8:	e59f0214 	ldr	r0, [pc, #532]	; 39c4 <rtems_termios_open+0x434><== NOT EXECUTED
    37ac:	e284c0c4 	add	ip, r4, #196	; 0xc4                           <== NOT EXECUTED
    37b0:	e1830000 	orr	r0, r3, r0                                    <== NOT EXECUTED
    37b4:	e3a01009 	mov	r1, #9	; 0x9                                  <== NOT EXECUTED
    37b8:	e3a02b01 	mov	r2, #1024	; 0x400                             <== NOT EXECUTED
    37bc:	e3a03c05 	mov	r3, #1280	; 0x500                             <== NOT EXECUTED
    37c0:	e58de000 	str	lr, [sp]                                      <== NOT EXECUTED
    37c4:	e58dc004 	str	ip, [sp, #4]                                  <== NOT EXECUTED
    37c8:	eb00034a 	bl	44f8 <rtems_task_create>                       <== NOT EXECUTED
				   TERMIOS_RXTASK_STACKSIZE,                                      
				   RTEMS_NO_PREEMPT | RTEMS_NO_TIMESLICE |                        
				   RTEMS_NO_ASR,                                                  
				   RTEMS_NO_FLOATING_POINT | RTEMS_LOCAL,                         
				   &tty->rxTaskId);                                               
			if (sc != RTEMS_SUCCESSFUL)                                        
    37cc:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    37d0:	1a000061 	bne	395c <rtems_termios_open+0x3cc>               <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
                                                                      
		}                                                                   
		if ((tty->device.pollRead == NULL) ||                               
    37d4:	e59430a0 	ldr	r3, [r4, #160]                                
    37d8:	e3530000 	cmp	r3, #0	; 0x0                                  
    37dc:	0a000002 	beq	37ec <rtems_termios_open+0x25c>               
    37e0:	e59430b4 	ldr	r3, [r4, #180]                                
    37e4:	e3530002 	cmp	r3, #2	; 0x2                                  
    37e8:	1a00000b 	bne	381c <rtems_termios_open+0x28c>               
		    (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN)){     
			sc = rtems_semaphore_create (                                      
    37ec:	e59f31bc 	ldr	r3, [pc, #444]	; 39b0 <rtems_termios_open+0x420><== NOT EXECUTED
    37f0:	e59f01d0 	ldr	r0, [pc, #464]	; 39c8 <rtems_termios_open+0x438><== NOT EXECUTED
    37f4:	e5d33000 	ldrb	r3, [r3]                                     <== NOT EXECUTED
    37f8:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    37fc:	e1830000 	orr	r0, r3, r0                                    <== NOT EXECUTED
    3800:	e284c068 	add	ip, r4, #104	; 0x68                           <== NOT EXECUTED
    3804:	e3a02024 	mov	r2, #36	; 0x24                                <== NOT EXECUTED
    3808:	e1a03001 	mov	r3, r1                                        <== NOT EXECUTED
    380c:	e58dc000 	str	ip, [sp]                                      <== NOT EXECUTED
    3810:	eb000231 	bl	40dc <rtems_semaphore_create>                  <== NOT EXECUTED
				rtems_build_name ('T', 'R', 'r', c),                              
				0,                                                                
				RTEMS_SIMPLE_BINARY_SEMAPHORE | RTEMS_PRIORITY,                   
				RTEMS_NO_PRIORITY,                                                
				&tty->rawInBuf.Semaphore);                                        
			if (sc != RTEMS_SUCCESSFUL)                                        
    3814:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    3818:	1a00004f 	bne	395c <rtems_termios_open+0x3cc>               <== NOT EXECUTED
		tty->termios.c_cc[VINTR] = '\003';                                  
		tty->termios.c_cc[VQUIT] = '\034';                                  
		tty->termios.c_cc[VERASE] = '\177';                                 
		tty->termios.c_cc[VKILL] = '\025';                                  
		tty->termios.c_cc[VEOF] = '\004';                                   
		tty->termios.c_cc[VEOL] = '\000';                                   
    381c:	e3a02000 	mov	r2, #0	; 0x0                                  
		tty->termios.c_cc[VDISCARD] = '\017';                               
		tty->termios.c_cc[VWERASE] = '\027';                                
		tty->termios.c_cc[VLNEXT] = '\026';                                 
                                                                      
		/* start with no flow control, clear flow control flags */          
		tty->flow_ctrl = 0;                                                 
    3820:	e58420b8 	str	r2, [r4, #184]                                
		/*                                                                  
		 * set low/highwater mark for XON/XOFF support                      
		 */                                                                 
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
    3824:	e5940064 	ldr	r0, [r4, #100]                                
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
    3828:	e5943064 	ldr	r3, [r4, #100]                                
		tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;             
		tty->termios.c_oflag = OPOST | ONLCR | XTABS;                       
		tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;                
		tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;
                                                                      
		tty->termios.c_cc[VINTR] = '\003';                                  
    382c:	e3a0c003 	mov	ip, #3	; 0x3                                  
		tty->flow_ctrl = 0;                                                 
		/*                                                                  
		 * set low/highwater mark for XON/XOFF support                      
		 */                                                                 
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
    3830:	e001039c 	mul	r1, ip, r3                                    
		tty->termios.c_oflag = OPOST | ONLCR | XTABS;                       
		tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;                
		tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;
                                                                      
		tty->termios.c_cc[VINTR] = '\003';                                  
		tty->termios.c_cc[VQUIT] = '\034';                                  
    3834:	e3a0301c 	mov	r3, #28	; 0x1c                                
    3838:	e5c43042 	strb	r3, [r4, #66]                                
		tty->termios.c_cc[VERASE] = '\177';                                 
    383c:	e2833063 	add	r3, r3, #99	; 0x63                            
    3840:	e5c43043 	strb	r3, [r4, #67]                                
		tty->termios.c_cc[VKILL] = '\025';                                  
    3844:	e3a03015 	mov	r3, #21	; 0x15                                
    3848:	e5c43044 	strb	r3, [r4, #68]                                
		tty->termios.c_cc[VEOF] = '\004';                                   
    384c:	e3a03004 	mov	r3, #4	; 0x4                                  
    3850:	e5c43045 	strb	r3, [r4, #69]                                
		tty->termios.c_cc[VEOL] = '\000';                                   
		tty->termios.c_cc[VEOL2] = '\000';                                  
		tty->termios.c_cc[VSTART] = '\021';                                 
    3854:	e283300d 	add	r3, r3, #13	; 0xd                             
    3858:	e5c43049 	strb	r3, [r4, #73]                                
		tty->termios.c_cc[VSTOP] = '\023';                                  
    385c:	e2833002 	add	r3, r3, #2	; 0x2                              
    3860:	e5c4304a 	strb	r3, [r4, #74]                                
		tty->termios.c_cc[VSUSP] = '\032';                                  
    3864:	e2833007 	add	r3, r3, #7	; 0x7                              
    3868:	e5c4304b 	strb	r3, [r4, #75]                                
		tty->termios.c_cc[VREPRINT] = '\022';                               
    386c:	e3a03012 	mov	r3, #18	; 0x12                                
    3870:	e5c4304d 	strb	r3, [r4, #77]                                
		tty->termios.c_cc[VDISCARD] = '\017';                               
    3874:	e3a0300f 	mov	r3, #15	; 0xf                                 
    3878:	e5c4304e 	strb	r3, [r4, #78]                                
		tty->termios.c_cc[VWERASE] = '\027';                                
    387c:	e2833008 	add	r3, r3, #8	; 0x8                              
    3880:	e5c4304f 	strb	r3, [r4, #79]                                
		tty->termios.c_cc[VLNEXT] = '\026';                                 
    3884:	e3a03016 	mov	r3, #22	; 0x16                                
    3888:	e5c43050 	strb	r3, [r4, #80]                                
		tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;             
		tty->termios.c_oflag = OPOST | ONLCR | XTABS;                       
		tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;                
		tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;
                                                                      
		tty->termios.c_cc[VINTR] = '\003';                                  
    388c:	e5c4c041 	strb	ip, [r4, #65]                                
		tty->termios.c_cc[VQUIT] = '\034';                                  
		tty->termios.c_cc[VERASE] = '\177';                                 
		tty->termios.c_cc[VKILL] = '\025';                                  
		tty->termios.c_cc[VEOF] = '\004';                                   
		tty->termios.c_cc[VEOL] = '\000';                                   
    3890:	e5c4204c 	strb	r2, [r4, #76]                                
		tty->termios.c_cc[VEOL2] = '\000';                                  
    3894:	e5c42051 	strb	r2, [r4, #81]                                
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
		/*                                                                  
		 * Bump name characer                                               
		 */                                                                 
		if (c++ == 'z')                                                     
    3898:	e59fc110 	ldr	ip, [pc, #272]	; 39b0 <rtems_termios_open+0x420>
		}                                                                   
                                                                      
		/*                                                                  
		 * Set default parameters                                           
		 */                                                                 
		tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;             
    389c:	e59f3128 	ldr	r3, [pc, #296]	; 39cc <rtems_termios_open+0x43c>
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
		/*                                                                  
		 * Bump name characer                                               
		 */                                                                 
		if (c++ == 'z')                                                     
    38a0:	e5dc2000 	ldrb	r2, [ip]                                     
		}                                                                   
                                                                      
		/*                                                                  
		 * Set default parameters                                           
		 */                                                                 
		tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;             
    38a4:	e5843030 	str	r3, [r4, #48]                                 
		tty->termios.c_oflag = OPOST | ONLCR | XTABS;                       
    38a8:	e59f3120 	ldr	r3, [pc, #288]	; 39d0 <rtems_termios_open+0x440>
    38ac:	e5843034 	str	r3, [r4, #52]                                 
		tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;                
    38b0:	e59f311c 	ldr	r3, [pc, #284]	; 39d4 <rtems_termios_open+0x444>
    38b4:	e5843038 	str	r3, [r4, #56]                                 
		tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;
    38b8:	e59f3118 	ldr	r3, [pc, #280]	; 39d8 <rtems_termios_open+0x448>
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
		/*                                                                  
		 * Bump name characer                                               
		 */                                                                 
		if (c++ == 'z')                                                     
    38bc:	e352007a 	cmp	r2, #122	; 0x7a                               
		 * Set default parameters                                           
		 */                                                                 
		tty->termios.c_iflag = BRKINT | ICRNL | IXON | IMAXBEL;             
		tty->termios.c_oflag = OPOST | ONLCR | XTABS;                       
		tty->termios.c_cflag = B9600 | CS8 | CREAD | CLOCAL;                
		tty->termios.c_lflag = ISIG | ICANON | IEXTEN | ECHO | ECHOK | ECHOE | ECHOCTL;
    38c0:	e584303c 	str	r3, [r4, #60]                                 
		/* start with no flow control, clear flow control flags */          
		tty->flow_ctrl = 0;                                                 
		/*                                                                  
		 * set low/highwater mark for XON/XOFF support                      
		 */                                                                 
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
    38c4:	e1a000a0 	lsr	r0, r0, #1                                    
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
    38c8:	e1a01121 	lsr	r1, r1, #2                                    
		/*                                                                  
		 * Bump name characer                                               
		 */                                                                 
		if (c++ == 'z')                                                     
    38cc:	e2822001 	add	r2, r2, #1	; 0x1                              
			c = 'a';                                                           
    38d0:	03a03061 	moveq	r3, #97	; 0x61                              
		tty->flow_ctrl = 0;                                                 
		/*                                                                  
		 * set low/highwater mark for XON/XOFF support                      
		 */                                                                 
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
    38d4:	e58410c0 	str	r1, [r4, #192]                                
		/* start with no flow control, clear flow control flags */          
		tty->flow_ctrl = 0;                                                 
		/*                                                                  
		 * set low/highwater mark for XON/XOFF support                      
		 */                                                                 
		tty->lowwater  = tty->rawInBuf.Size * 1/2;                          
    38d8:	e58400bc 	str	r0, [r4, #188]                                
		tty->highwater = tty->rawInBuf.Size * 3/4;                          
		/*                                                                  
		 * Bump name characer                                               
		 */                                                                 
		if (c++ == 'z')                                                     
    38dc:	e5cc2000 	strb	r2, [ip]                                     
			c = 'a';                                                           
    38e0:	05cc3000 	strbeq	r3, [ip]                                   
                                                                      
	}                                                                    
	args->iop->data1 = tty;                                              
    38e4:	e59d1008 	ldr	r1, [sp, #8]                                  
	if (!tty->refcount++) {                                              
    38e8:	e5953008 	ldr	r3, [r5, #8]                                  
		 */                                                                 
		if (c++ == 'z')                                                     
			c = 'a';                                                           
                                                                      
	}                                                                    
	args->iop->data1 = tty;                                              
    38ec:	e5912000 	ldr	r2, [r1]                                      
	if (!tty->refcount++) {                                              
    38f0:	e3530000 	cmp	r3, #0	; 0x0                                  
    38f4:	e2833001 	add	r3, r3, #1	; 0x1                              
		 */                                                                 
		if (c++ == 'z')                                                     
			c = 'a';                                                           
                                                                      
	}                                                                    
	args->iop->data1 = tty;                                              
    38f8:	e5825028 	str	r5, [r2, #40]                                 
	if (!tty->refcount++) {                                              
    38fc:	e5853008 	str	r3, [r5, #8]                                  
    3900:	1a000016 	bne	3960 <rtems_termios_open+0x3d0>               
	  if (tty->device.firstOpen)                                         
    3904:	e5953098 	ldr	r3, [r5, #152]                                
    3908:	e3530000 	cmp	r3, #0	; 0x0                                  
		(*tty->device.firstOpen)(major, minor, arg);                        
    390c:	11a00009 	movne	r0, r9                                      
    3910:	11a0100b 	movne	r1, fp                                      
    3914:	159d2008 	ldrne	r2, [sp, #8]                                
    3918:	11a0e00f 	movne	lr, pc                                      
    391c:	112fff13 	bxne	r3                                           
	  /*                                                                 
	   * start I/O tasks, if needed                                      
	   */                                                                
	  if (tty->device.outputUsesInterrupts == TERMIOS_TASK_DRIVEN) {     
    3920:	e59530b4 	ldr	r3, [r5, #180]                                
    3924:	e3530002 	cmp	r3, #2	; 0x2                                  
    3928:	1a00000c 	bne	3960 <rtems_termios_open+0x3d0>               
	    sc = rtems_task_start(tty->rxTaskId,                             
    392c:	e59500c4 	ldr	r0, [r5, #196]                                <== NOT EXECUTED
    3930:	e59f10a4 	ldr	r1, [pc, #164]	; 39dc <rtems_termios_open+0x44c><== NOT EXECUTED
    3934:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    3938:	eb00039c 	bl	47b0 <rtems_task_start>                        <== NOT EXECUTED
				  rtems_termios_rxdaemon,                                         
				  (rtems_task_argument)tty);                                      
	    if (sc != RTEMS_SUCCESSFUL)                                      
    393c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    3940:	1a000005 	bne	395c <rtems_termios_open+0x3cc>               <== NOT EXECUTED
	      rtems_fatal_error_occurred (sc);                               
                                                                      
	    sc = rtems_task_start(tty->txTaskId,                             
    3944:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    3948:	e59500c8 	ldr	r0, [r5, #200]                                <== NOT EXECUTED
    394c:	e59f108c 	ldr	r1, [pc, #140]	; 39e0 <rtems_termios_open+0x450><== NOT EXECUTED
    3950:	eb000396 	bl	47b0 <rtems_task_start>                        <== NOT EXECUTED
				  rtems_termios_txdaemon,                                         
				  (rtems_task_argument)tty);                                      
	    if (sc != RTEMS_SUCCESSFUL)                                      
    3954:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    3958:	0a000000 	beq	3960 <rtems_termios_open+0x3d0>               <== NOT EXECUTED
	      rtems_fatal_error_occurred (sc);                               
    395c:	eb00042f 	bl	4a20 <rtems_fatal_error_occurred>              <== NOT EXECUTED
	  }                                                                  
	}                                                                    
	rtems_semaphore_release (rtems_termios_ttyMutex);                    
    3960:	e59f3030 	ldr	r3, [pc, #48]	; 3998 <rtems_termios_open+0x408>
    3964:	e5930000 	ldr	r0, [r3]                                      
    3968:	eb0002ba 	bl	4458 <rtems_semaphore_release>                 
	return RTEMS_SUCCESSFUL;                                             
}                                                                     
    396c:	e1a0000a 	mov	r0, sl                                        
    3970:	e28dd00c 	add	sp, sp, #12	; 0xc                             
    3974:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
		static char c = 'a';                                                
                                                                      
		/*                                                                  
		 * Create a new device                                              
		 */                                                                 
		tty = calloc (1, sizeof (struct rtems_termios_tty));                
    3978:	e3a00001 	mov	r0, #1	; 0x1                                  
    397c:	e3a010e8 	mov	r1, #232	; 0xe8                               
    3980:	eb001315 	bl	85dc <calloc>                                  
		if (tty == NULL) {                                                  
    3984:	e3500000 	cmp	r0, #0	; 0x0                                  
		static char c = 'a';                                                
                                                                      
		/*                                                                  
		 * Create a new device                                              
		 */                                                                 
		tty = calloc (1, sizeof (struct rtems_termios_tty));                
    3988:	e1a05000 	mov	r5, r0                                        
    398c:	e1a04000 	mov	r4, r0                                        
		if (tty == NULL) {                                                  
    3990:	1affff18 	bne	35f8 <rtems_termios_open+0x68>                
    3994:	eaffff21 	b	3620 <rtems_termios_open+0x90>                  <== NOT EXECUTED
                                                                      

000024d8 <rtems_termios_puts>: const unsigned char *buf = _buf; unsigned int newHead; rtems_interrupt_level level; rtems_status_code sc; if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {
    24d8:	e59230b4 	ldr	r3, [r2, #180]                                
    24dc:	e3530000 	cmp	r3, #0	; 0x0                                  
 * Send characters to device-specific code                            
 */                                                                   
void                                                                  
rtems_termios_puts (                                                  
  const void *_buf, int len, struct rtems_termios_tty *tty)           
{                                                                     
    24e0:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
    24e4:	e1a04002 	mov	r4, r2                                        
    24e8:	e1a0a000 	mov	sl, r0                                        
    24ec:	e1a07001 	mov	r7, r1                                        
	const unsigned char *buf = _buf;                                     
	unsigned int newHead;                                                
	rtems_interrupt_level level;                                         
	rtems_status_code sc;                                                
                                                                      
	if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {            
    24f0:	1a000005 	bne	250c <rtems_termios_puts+0x34>                
		(*tty->device.write)(tty->minor, (void *)buf, len);                 
    24f4:	e1a01000 	mov	r1, r0                                        
    24f8:	e1a02007 	mov	r2, r7                                        
    24fc:	e5940010 	ldr	r0, [r4, #16]                                 
    2500:	e1a0e00f 	mov	lr, pc                                        
    2504:	e594f0a4 	ldr	pc, [r4, #164]                                
    2508:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
		return;                                                             
	}                                                                    
	newHead = tty->rawOutBuf.Head;                                       
    250c:	e5926080 	ldr	r6, [r2, #128]                                <== NOT EXECUTED
    2510:	e3a08000 	mov	r8, #0	; 0x0                                  <== NOT EXECUTED
		 * with interrupts enabled.                                         
		 */                                                                 
		newHead = (newHead + 1) % tty->rawOutBuf.Size;                      
		rtems_interrupt_disable (level);                                    
		while (newHead == tty->rawOutBuf.Tail) {                            
			tty->rawOutBufState = rob_wait;                                    
    2514:	e3a0b002 	mov	fp, #2	; 0x2                                  <== NOT EXECUTED
		  }                                                                 
		  else {                                                            
		    /* remember that output has been stopped due to flow ctrl*/     
		    tty->flow_ctrl |= FL_OSTOP;                                     
		  }                                                                 
		  tty->rawOutBufState = rob_busy;                                   
    2518:	e3a09001 	mov	r9, #1	; 0x1                                  <== NOT EXECUTED
    251c:	ea00002e 	b	25dc <rtems_termios_puts+0x104>                 <== NOT EXECUTED
		 *	len -= ncopy                                                     
		 *                                                                  
		 * To minimize latency, the memcpy should be done                   
		 * with interrupts enabled.                                         
		 */                                                                 
		newHead = (newHead + 1) % tty->rawOutBuf.Size;                      
    2520:	e5941088 	ldr	r1, [r4, #136]                                <== NOT EXECUTED
    2524:	e2860001 	add	r0, r6, #1	; 0x1                              <== NOT EXECUTED
    2528:	eb003c28 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
    252c:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
		rtems_interrupt_disable (level);                                    
    2530:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
    2534:	e38530c0 	orr	r3, r5, #192	; 0xc0                           <== NOT EXECUTED
    2538:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    253c:	ea00000a 	b	256c <rtems_termios_puts+0x94>                  <== NOT EXECUTED
		while (newHead == tty->rawOutBuf.Tail) {                            
			tty->rawOutBufState = rob_wait;                                    
    2540:	e584b094 	str	fp, [r4, #148]                                <== NOT EXECUTED
			rtems_interrupt_enable (level);                                    
    2544:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
			sc = rtems_semaphore_obtain (tty->rawOutBuf.Semaphore,             
    2548:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    254c:	e594008c 	ldr	r0, [r4, #140]                                <== NOT EXECUTED
    2550:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
    2554:	eb000779 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
							RTEMS_WAIT,                                                    
							RTEMS_NO_TIMEOUT);                                             
			if (sc != RTEMS_SUCCESSFUL)                                        
    2558:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
				rtems_fatal_error_occurred (sc);                                  
    255c:	1b00092f 	blne	4a20 <rtems_fatal_error_occurred>            <== NOT EXECUTED
			rtems_interrupt_disable (level);                                   
    2560:	e10f5000 	mrs	r5, CPSR                                      <== NOT EXECUTED
    2564:	e38530c0 	orr	r3, r5, #192	; 0xc0                           <== NOT EXECUTED
    2568:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
		 * To minimize latency, the memcpy should be done                   
		 * with interrupts enabled.                                         
		 */                                                                 
		newHead = (newHead + 1) % tty->rawOutBuf.Size;                      
		rtems_interrupt_disable (level);                                    
		while (newHead == tty->rawOutBuf.Tail) {                            
    256c:	e5943084 	ldr	r3, [r4, #132]                                <== NOT EXECUTED
    2570:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
    2574:	0afffff1 	beq	2540 <rtems_termios_puts+0x68>                <== NOT EXECUTED
							RTEMS_NO_TIMEOUT);                                             
			if (sc != RTEMS_SUCCESSFUL)                                        
				rtems_fatal_error_occurred (sc);                                  
			rtems_interrupt_disable (level);                                   
		}                                                                   
		tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++;                
    2578:	e5941080 	ldr	r1, [r4, #128]                                <== NOT EXECUTED
    257c:	e7da2008 	ldrb	r2, [sl, r8]                                 <== NOT EXECUTED
    2580:	e594307c 	ldr	r3, [r4, #124]                                <== NOT EXECUTED
    2584:	e7c32001 	strb	r2, [r3, r1]                                 <== NOT EXECUTED
		tty->rawOutBuf.Head = newHead;                                      
		if (tty->rawOutBufState == rob_idle) {                              
    2588:	e5943094 	ldr	r3, [r4, #148]                                <== NOT EXECUTED
    258c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
			if (sc != RTEMS_SUCCESSFUL)                                        
				rtems_fatal_error_occurred (sc);                                  
			rtems_interrupt_disable (level);                                   
		}                                                                   
		tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++;                
		tty->rawOutBuf.Head = newHead;                                      
    2590:	e5846080 	str	r6, [r4, #128]                                <== NOT EXECUTED
		if (tty->rawOutBufState == rob_idle) {                              
    2594:	1a00000d 	bne	25d0 <rtems_termios_puts+0xf8>                <== NOT EXECUTED
		  /* check, whether XOFF has been received */                       
		  if (!(tty->flow_ctrl & FL_ORCVXOF)) {                             
    2598:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    259c:	e3130010 	tst	r3, #16	; 0x10                                <== NOT EXECUTED
		    (*tty->device.write)(tty->minor,                                
			(char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1);            
		  }                                                                 
		  else {                                                            
		    /* remember that output has been stopped due to flow ctrl*/     
		    tty->flow_ctrl |= FL_OSTOP;                                     
    25a0:	159430b8 	ldrne	r3, [r4, #184]                              <== NOT EXECUTED
    25a4:	13833020 	orrne	r3, r3, #32	; 0x20                          <== NOT EXECUTED
    25a8:	158430b8 	strne	r3, [r4, #184]                              <== NOT EXECUTED
		}                                                                   
		tty->rawOutBuf.theBuf[tty->rawOutBuf.Head] = *buf++;                
		tty->rawOutBuf.Head = newHead;                                      
		if (tty->rawOutBufState == rob_idle) {                              
		  /* check, whether XOFF has been received */                       
		  if (!(tty->flow_ctrl & FL_ORCVXOF)) {                             
    25ac:	1a000006 	bne	25cc <rtems_termios_puts+0xf4>                <== NOT EXECUTED
		    (*tty->device.write)(tty->minor,                                
    25b0:	e5943084 	ldr	r3, [r4, #132]                                <== NOT EXECUTED
    25b4:	e594107c 	ldr	r1, [r4, #124]                                <== NOT EXECUTED
    25b8:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    25bc:	e0811003 	add	r1, r1, r3                                    <== NOT EXECUTED
    25c0:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    25c4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    25c8:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
		  }                                                                 
		  else {                                                            
		    /* remember that output has been stopped due to flow ctrl*/     
		    tty->flow_ctrl |= FL_OSTOP;                                     
		  }                                                                 
		  tty->rawOutBufState = rob_busy;                                   
    25cc:	e5849094 	str	r9, [r4, #148]                                <== NOT EXECUTED
		}                                                                   
		rtems_interrupt_enable (level);                                     
    25d0:	e129f005 	msr	CPSR_fc, r5                                   <== NOT EXECUTED
		len--;                                                              
    25d4:	e2477001 	sub	r7, r7, #1	; 0x1                              <== NOT EXECUTED
    25d8:	e2888001 	add	r8, r8, #1	; 0x1                              <== NOT EXECUTED
	if (tty->device.outputUsesInterrupts == TERMIOS_POLLED) {            
		(*tty->device.write)(tty->minor, (void *)buf, len);                 
		return;                                                             
	}                                                                    
	newHead = tty->rawOutBuf.Head;                                       
	while (len) {                                                        
    25dc:	e3570000 	cmp	r7, #0	; 0x0                                  <== NOT EXECUTED
    25e0:	1affffce 	bne	2520 <rtems_termios_puts+0x48>                <== NOT EXECUTED
    25e4:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      

00002ca4 <rtems_termios_read>: return RTEMS_SUCCESSFUL; } rtems_status_code rtems_termios_read (void *arg) {
    2ca4:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         <== NOT EXECUTED
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
    2ca8:	e5903000 	ldr	r3, [r0]                                      <== NOT EXECUTED
	return RTEMS_SUCCESSFUL;                                             
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_read (void *arg)                                        
{                                                                     
    2cac:	e1a07000 	mov	r7, r0                                        <== NOT EXECUTED
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
    2cb0:	e5934028 	ldr	r4, [r3, #40]                                 <== NOT EXECUTED
	uint32_t   count = args->count;                                      
	char      *buffer = args->buffer;                                    
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    2cb4:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
rtems_termios_read (void *arg)                                        
{                                                                     
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
	uint32_t   count = args->count;                                      
	char      *buffer = args->buffer;                                    
    2cb8:	e5973008 	ldr	r3, [r7, #8]                                  <== NOT EXECUTED
	return RTEMS_SUCCESSFUL;                                             
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_read (void *arg)                                        
{                                                                     
    2cbc:	e24dd00c 	sub	sp, sp, #12	; 0xc                             <== NOT EXECUTED
	struct rtems_termios_tty *tty = args->iop->data1;                    
	uint32_t   count = args->count;                                      
	char      *buffer = args->buffer;                                    
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    2cc0:	e5940014 	ldr	r0, [r4, #20]                                 <== NOT EXECUTED
    2cc4:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
rtems_status_code                                                     
rtems_termios_read (void *arg)                                        
{                                                                     
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
	uint32_t   count = args->count;                                      
    2cc8:	e597800c 	ldr	r8, [r7, #12]                                 <== NOT EXECUTED
	char      *buffer = args->buffer;                                    
    2ccc:	e58d3000 	str	r3, [sp]                                      <== NOT EXECUTED
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (tty->isem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    2cd0:	eb00059a 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
	if (sc != RTEMS_SUCCESSFUL)                                          
    2cd4:	e250a000 	subs	sl, r0, #0	; 0x0                             <== NOT EXECUTED
    2cd8:	1a0000d4 	bne	3030 <rtems_termios_read+0x38c>               <== NOT EXECUTED
		return sc;                                                          
	if (rtems_termios_linesw[tty->t_line].l_read != NULL) {              
    2cdc:	e59420cc 	ldr	r2, [r4, #204]                                <== NOT EXECUTED
    2ce0:	e59f3354 	ldr	r3, [pc, #852]	; 303c <rtems_termios_read+0x398><== NOT EXECUTED
    2ce4:	e0833282 	add	r3, r3, r2, lsl #5                            <== NOT EXECUTED
    2ce8:	e5933008 	ldr	r3, [r3, #8]                                  <== NOT EXECUTED
    2cec:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2cf0:	0a000005 	beq	2d0c <rtems_termios_read+0x68>                <== NOT EXECUTED
		sc = rtems_termios_linesw[tty->t_line].l_read(tty,args);            
    2cf4:	e1a01007 	mov	r1, r7                                        <== NOT EXECUTED
    2cf8:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    2cfc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2d00:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    2d04:	e1a0a000 	mov	sl, r0                                        <== NOT EXECUTED
    2d08:	ea0000c4 	b	3020 <rtems_termios_read+0x37c>                 <== NOT EXECUTED
		tty->tty_rcvwakeup = 0;                                             
		rtems_semaphore_release (tty->isem);                                
		return sc;                                                          
	}                                                                    
	if (tty->cindex == tty->ccount) {                                    
    2d0c:	e5942024 	ldr	r2, [r4, #36]                                 <== NOT EXECUTED
    2d10:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    2d14:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2d18:	1a0000ad 	bne	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
		tty->cindex = tty->ccount = 0;                                      
		tty->read_start_column = tty->column;                               
		if (tty->device.pollRead != NULL                                    
    2d1c:	e59430a0 	ldr	r3, [r4, #160]                                <== NOT EXECUTED
		rtems_semaphore_release (tty->isem);                                
		return sc;                                                          
	}                                                                    
	if (tty->cindex == tty->ccount) {                                    
		tty->cindex = tty->ccount = 0;                                      
		tty->read_start_column = tty->column;                               
    2d20:	e5942028 	ldr	r2, [r4, #40]                                 <== NOT EXECUTED
		if (tty->device.pollRead != NULL                                    
    2d24:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
		rtems_semaphore_release (tty->isem);                                
		return sc;                                                          
	}                                                                    
	if (tty->cindex == tty->ccount) {                                    
		tty->cindex = tty->ccount = 0;                                      
		tty->read_start_column = tty->column;                               
    2d28:	e584202c 	str	r2, [r4, #44]                                 <== NOT EXECUTED
		tty->tty_rcvwakeup = 0;                                             
		rtems_semaphore_release (tty->isem);                                
		return sc;                                                          
	}                                                                    
	if (tty->cindex == tty->ccount) {                                    
		tty->cindex = tty->ccount = 0;                                      
    2d2c:	e584a020 	str	sl, [r4, #32]                                 <== NOT EXECUTED
    2d30:	e584a024 	str	sl, [r4, #36]                                 <== NOT EXECUTED
		tty->read_start_column = tty->column;                               
		if (tty->device.pollRead != NULL                                    
    2d34:	0a00004a 	beq	2e64 <rtems_termios_read+0x1c0>               <== NOT EXECUTED
    2d38:	e59430b4 	ldr	r3, [r4, #180]                                <== NOT EXECUTED
    2d3c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2d40:	1a000047 	bne	2e64 <rtems_termios_read+0x1c0>               <== NOT EXECUTED
static rtems_status_code                                              
fillBufferPoll (struct rtems_termios_tty *tty)                        
{                                                                     
	int n;                                                               
                                                                      
	if (tty->termios.c_lflag & ICANON) {                                 
    2d44:	e594303c 	ldr	r3, [r4, #60]                                 <== NOT EXECUTED
    2d48:	e3130002 	tst	r3, #2	; 0x2                                  <== NOT EXECUTED
    2d4c:	0a00000d 	beq	2d88 <rtems_termios_read+0xe4>                <== NOT EXECUTED
		for (;;) {                                                          
			n = (*tty->device.pollRead)(tty->minor);                           
    2d50:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    2d54:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2d58:	e594f0a0 	ldr	pc, [r4, #160]                                <== NOT EXECUTED
			if (n < 0) {                                                       
    2d5c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
				rtems_task_wake_after (1);                                        
			}                                                                  
			else {                                                             
				if  (siproc (n, tty))                                             
    2d60:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2d64:	e20000ff 	and	r0, r0, #255	; 0xff                           <== NOT EXECUTED
	int n;                                                               
                                                                      
	if (tty->termios.c_lflag & ICANON) {                                 
		for (;;) {                                                          
			n = (*tty->device.pollRead)(tty->minor);                           
			if (n < 0) {                                                       
    2d68:	aa000002 	bge	2d78 <rtems_termios_read+0xd4>                <== NOT EXECUTED
				rtems_task_wake_after (1);                                        
    2d6c:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
    2d70:	eb0006a8 	bl	4818 <rtems_task_wake_after>                   <== NOT EXECUTED
    2d74:	eafffff5 	b	2d50 <rtems_termios_read+0xac>                  <== NOT EXECUTED
			}                                                                  
			else {                                                             
				if  (siproc (n, tty))                                             
    2d78:	ebffff66 	bl	2b18 <siproc>                                  <== NOT EXECUTED
    2d7c:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    2d80:	0afffff2 	beq	2d50 <rtems_termios_read+0xac>                <== NOT EXECUTED
    2d84:	ea000092 	b	2fd4 <rtems_termios_read+0x330>                 <== NOT EXECUTED
			}                                                                  
		}                                                                   
	}                                                                    
	else {                                                               
		rtems_interval then, now;                                           
		if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME])           
    2d88:	e5d43047 	ldrb	r3, [r4, #71]                                <== NOT EXECUTED
    2d8c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2d90:	1a000004 	bne	2da8 <rtems_termios_read+0x104>               <== NOT EXECUTED
    2d94:	e5d43046 	ldrb	r3, [r4, #70]                                <== NOT EXECUTED
    2d98:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then);         
    2d9c:	13a00002 	movne	r0, #2	; 0x2                                <== NOT EXECUTED
    2da0:	128d1008 	addne	r1, sp, #8	; 0x8                            <== NOT EXECUTED
    2da4:	1b000347 	blne	3ac8 <rtems_clock_get>                       <== NOT EXECUTED
			else {                                                             
				siproc (n, tty);                                                  
				if (tty->ccount >= tty->termios.c_cc[VMIN])                       
					break;                                                           
				if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME])          
					rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then);       
    2da8:	e28d6008 	add	r6, sp, #8	; 0x8                              <== NOT EXECUTED
					}                                                                
				}                                                                 
				else {                                                            
					if (!tty->termios.c_cc[VTIME])                                   
						break;                                                          
					rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now);        
    2dac:	e28d5004 	add	r5, sp, #4	; 0x4                              <== NOT EXECUTED
	else {                                                               
		rtems_interval then, now;                                           
		if (!tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME])           
			rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then);         
		for (;;) {                                                          
			n = (*tty->device.pollRead)(tty->minor);                           
    2db0:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    2db4:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2db8:	e594f0a0 	ldr	pc, [r4, #160]                                <== NOT EXECUTED
			if (n < 0) {                                                       
    2dbc:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    2dc0:	aa000017 	bge	2e24 <rtems_termios_read+0x180>               <== NOT EXECUTED
				if (tty->termios.c_cc[VMIN]) {                                    
    2dc4:	e5d43047 	ldrb	r3, [r4, #71]                                <== NOT EXECUTED
    2dc8:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2dcc:	e5d43046 	ldrb	r3, [r4, #70]                                <== NOT EXECUTED
    2dd0:	0a000005 	beq	2dec <rtems_termios_read+0x148>               <== NOT EXECUTED
					if (tty->termios.c_cc[VTIME] && tty->ccount) {                   
    2dd4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2dd8:	0a00000e 	beq	2e18 <rtems_termios_read+0x174>               <== NOT EXECUTED
    2ddc:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    2de0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2de4:	0a00000b 	beq	2e18 <rtems_termios_read+0x174>               <== NOT EXECUTED
    2de8:	ea000001 	b	2df4 <rtems_termios_read+0x150>                 <== NOT EXECUTED
							break;                                                         
						}                                                               
					}                                                                
				}                                                                 
				else {                                                            
					if (!tty->termios.c_cc[VTIME])                                   
    2dec:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2df0:	0a000077 	beq	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
						break;                                                          
					rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &now);        
    2df4:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    2df8:	e3a00002 	mov	r0, #2	; 0x2                                  <== NOT EXECUTED
    2dfc:	eb000331 	bl	3ac8 <rtems_clock_get>                         <== NOT EXECUTED
					if ((now - then) > tty->vtimeTicks) {                            
    2e00:	e59d2008 	ldr	r2, [sp, #8]                                  <== NOT EXECUTED
    2e04:	e59d3004 	ldr	r3, [sp, #4]                                  <== NOT EXECUTED
    2e08:	e5941054 	ldr	r1, [r4, #84]                                 <== NOT EXECUTED
    2e0c:	e0623003 	rsb	r3, r2, r3                                    <== NOT EXECUTED
    2e10:	e1530001 	cmp	r3, r1                                        <== NOT EXECUTED
    2e14:	8a00006e 	bhi	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
						break;                                                          
					}                                                                
				}                                                                 
				rtems_task_wake_after (1);                                        
    2e18:	e3a00001 	mov	r0, #1	; 0x1                                  <== NOT EXECUTED
    2e1c:	eb00067d 	bl	4818 <rtems_task_wake_after>                   <== NOT EXECUTED
    2e20:	eaffffe2 	b	2db0 <rtems_termios_read+0x10c>                 <== NOT EXECUTED
			}                                                                  
			else {                                                             
				siproc (n, tty);                                                  
    2e24:	e20000ff 	and	r0, r0, #255	; 0xff                           <== NOT EXECUTED
    2e28:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2e2c:	ebffff39 	bl	2b18 <siproc>                                  <== NOT EXECUTED
				if (tty->ccount >= tty->termios.c_cc[VMIN])                       
    2e30:	e5d42047 	ldrb	r2, [r4, #71]                                <== NOT EXECUTED
    2e34:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    2e38:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
    2e3c:	aa000064 	bge	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
					break;                                                           
				if (tty->termios.c_cc[VMIN] && tty->termios.c_cc[VTIME])          
    2e40:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
    2e44:	0affffd9 	beq	2db0 <rtems_termios_read+0x10c>               <== NOT EXECUTED
    2e48:	e5d43046 	ldrb	r3, [r4, #70]                                <== NOT EXECUTED
    2e4c:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2e50:	0affffd6 	beq	2db0 <rtems_termios_read+0x10c>               <== NOT EXECUTED
					rtems_clock_get (RTEMS_CLOCK_GET_TICKS_SINCE_BOOT, &then);       
    2e54:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    2e58:	e3a00002 	mov	r0, #2	; 0x2                                  <== NOT EXECUTED
    2e5c:	eb000319 	bl	3ac8 <rtems_clock_get>                         <== NOT EXECUTED
    2e60:	eaffffd2 	b	2db0 <rtems_termios_read+0x10c>                 <== NOT EXECUTED
 * Fill the input buffer from the raw input queue                     
 */                                                                   
static rtems_status_code                                              
fillBufferQueue (struct rtems_termios_tty *tty)                       
{                                                                     
	rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout;         
    2e64:	e5945074 	ldr	r5, [r4, #116]                                <== NOT EXECUTED
			  if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))                  
			       ==                (FL_MDXON | FL_ISNTXOF))                  
			      && ((tty->rawOutBufState == rob_idle)                        
				  || (tty->flow_ctrl & FL_OSTOP))) {                              
			    /* XON should be sent now... */                                
			    (*tty->device.write)(tty->minor,                               
    2e68:	e2849049 	add	r9, r4, #73	; 0x49                            <== NOT EXECUTED
    2e6c:	e3a06001 	mov	r6, #1	; 0x1                                  <== NOT EXECUTED
			if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size)                
			    % tty->rawInBuf.Size)                                          
			   < tty->lowwater) {                                              
			  tty->flow_ctrl &= ~FL_IREQXOF;                                   
			  /* if tx stopped and XON should be sent... */                    
			  if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))                  
    2e70:	e59fb1c8 	ldr	fp, [pc, #456]	; 3040 <rtems_termios_read+0x39c><== NOT EXECUTED
    2e74:	ea000054 	b	2fcc <rtems_termios_read+0x328>                 <== NOT EXECUTED
		while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&                
                       (tty->ccount < (CBUFSIZE-1))) {                
			unsigned char c;                                                   
			unsigned int newHead;                                              
                                                                      
			newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;           
    2e78:	e594005c 	ldr	r0, [r4, #92]                                 <== NOT EXECUTED
    2e7c:	e5941064 	ldr	r1, [r4, #100]                                <== NOT EXECUTED
    2e80:	e2800001 	add	r0, r0, #1	; 0x1                              <== NOT EXECUTED
    2e84:	eb0039d1 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
			c = tty->rawInBuf.theBuf[newHead];                                 
    2e88:	e5943058 	ldr	r3, [r4, #88]                                 <== NOT EXECUTED
    2e8c:	e7d35000 	ldrb	r5, [r3, r0]                                 <== NOT EXECUTED
			tty->rawInBuf.Head = newHead;                                      
    2e90:	e584005c 	str	r0, [r4, #92]                                 <== NOT EXECUTED
		while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&                
                       (tty->ccount < (CBUFSIZE-1))) {                
			unsigned char c;                                                   
			unsigned int newHead;                                              
                                                                      
			newHead = (tty->rawInBuf.Head + 1) % tty->rawInBuf.Size;           
    2e94:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
			c = tty->rawInBuf.theBuf[newHead];                                 
			tty->rawInBuf.Head = newHead;                                      
			if(((tty->rawInBuf.Tail-newHead+tty->rawInBuf.Size)                
    2e98:	e5943060 	ldr	r3, [r4, #96]                                 <== NOT EXECUTED
    2e9c:	e5940064 	ldr	r0, [r4, #100]                                <== NOT EXECUTED
    2ea0:	e0800003 	add	r0, r0, r3                                    <== NOT EXECUTED
    2ea4:	e5941064 	ldr	r1, [r4, #100]                                <== NOT EXECUTED
    2ea8:	e0620000 	rsb	r0, r2, r0                                    <== NOT EXECUTED
    2eac:	eb0039c7 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
    2eb0:	e59430bc 	ldr	r3, [r4, #188]                                <== NOT EXECUTED
    2eb4:	e1500003 	cmp	r0, r3                                        <== NOT EXECUTED
    2eb8:	2a00001e 	bcs	2f38 <rtems_termios_read+0x294>               <== NOT EXECUTED
			    % tty->rawInBuf.Size)                                          
			   < tty->lowwater) {                                              
			  tty->flow_ctrl &= ~FL_IREQXOF;                                   
    2ebc:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2ec0:	e3c33001 	bic	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    2ec4:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
			  /* if tx stopped and XON should be sent... */                    
			  if (((tty->flow_ctrl & (FL_MDXON | FL_ISNTXOF))                  
    2ec8:	e59f3170 	ldr	r3, [pc, #368]	; 3040 <rtems_termios_read+0x39c><== NOT EXECUTED
    2ecc:	e59420b8 	ldr	r2, [r4, #184]                                <== NOT EXECUTED
    2ed0:	e0023003 	and	r3, r2, r3                                    <== NOT EXECUTED
    2ed4:	e153000b 	cmp	r3, fp                                        <== NOT EXECUTED
    2ed8:	1a00000b 	bne	2f0c <rtems_termios_read+0x268>               <== NOT EXECUTED
    2edc:	e5943094 	ldr	r3, [r4, #148]                                <== NOT EXECUTED
    2ee0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    2ee4:	0a000002 	beq	2ef4 <rtems_termios_read+0x250>               <== NOT EXECUTED
    2ee8:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2eec:	e3130020 	tst	r3, #32	; 0x20                                <== NOT EXECUTED
    2ef0:	0a000005 	beq	2f0c <rtems_termios_read+0x268>               <== NOT EXECUTED
			       ==                (FL_MDXON | FL_ISNTXOF))                  
			      && ((tty->rawOutBufState == rob_idle)                        
				  || (tty->flow_ctrl & FL_OSTOP))) {                              
			    /* XON should be sent now... */                                
			    (*tty->device.write)(tty->minor,                               
    2ef4:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    2ef8:	e1a01009 	mov	r1, r9                                        <== NOT EXECUTED
    2efc:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    2f00:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2f04:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
    2f08:	ea00000a 	b	2f38 <rtems_termios_read+0x294>                 <== NOT EXECUTED
				(void *)&(tty->termios.c_cc[VSTART]),                             
				1);                                                               
			  }                                                                
			  else if (tty->flow_ctrl & FL_MDRTS) {                            
    2f0c:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2f10:	e3130c01 	tst	r3, #256	; 0x100                              <== NOT EXECUTED
    2f14:	0a000007 	beq	2f38 <rtems_termios_read+0x294>               <== NOT EXECUTED
			    tty->flow_ctrl &= ~FL_IRTSOFF;                                 
    2f18:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
			    /* activate RTS line */                                        
			    if (tty->device.startRemoteTx != NULL) {                       
    2f1c:	e59420b0 	ldr	r2, [r4, #176]                                <== NOT EXECUTED
			    (*tty->device.write)(tty->minor,                               
				(void *)&(tty->termios.c_cc[VSTART]),                             
				1);                                                               
			  }                                                                
			  else if (tty->flow_ctrl & FL_MDRTS) {                            
			    tty->flow_ctrl &= ~FL_IRTSOFF;                                 
    2f20:	e3c33004 	bic	r3, r3, #4	; 0x4                              <== NOT EXECUTED
			    /* activate RTS line */                                        
			    if (tty->device.startRemoteTx != NULL) {                       
    2f24:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
			    (*tty->device.write)(tty->minor,                               
				(void *)&(tty->termios.c_cc[VSTART]),                             
				1);                                                               
			  }                                                                
			  else if (tty->flow_ctrl & FL_MDRTS) {                            
			    tty->flow_ctrl &= ~FL_IRTSOFF;                                 
    2f28:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
			    /* activate RTS line */                                        
			    if (tty->device.startRemoteTx != NULL) {                       
			      tty->device.startRemoteTx(tty->minor);                       
    2f2c:	15940010 	ldrne	r0, [r4, #16]                               <== NOT EXECUTED
    2f30:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    2f34:	112fff12 	bxne	r2                                           <== NOT EXECUTED
			    }                                                              
			  }                                                                
			}                                                                  
                                                                      
			/* continue processing new character */                            
			if (tty->termios.c_lflag & ICANON) {                               
    2f38:	e594303c 	ldr	r3, [r4, #60]                                 <== NOT EXECUTED
    2f3c:	e3130002 	tst	r3, #2	; 0x2                                  <== NOT EXECUTED
    2f40:	0a000005 	beq	2f5c <rtems_termios_read+0x2b8>               <== NOT EXECUTED
				if  (siproc (c, tty))                                             
    2f44:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    2f48:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2f4c:	ebfffef1 	bl	2b18 <siproc>                                  <== NOT EXECUTED
    2f50:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    2f54:	1a000007 	bne	2f78 <rtems_termios_read+0x2d4>               <== NOT EXECUTED
    2f58:	ea000007 	b	2f7c <rtems_termios_read+0x2d8>                 <== NOT EXECUTED
					wait = 0;                                                        
			}                                                                  
			else {                                                             
				siproc (c, tty);                                                  
    2f5c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    2f60:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2f64:	ebfffeeb 	bl	2b18 <siproc>                                  <== NOT EXECUTED
				if (tty->ccount >= tty->termios.c_cc[VMIN])                       
    2f68:	e5d42047 	ldrb	r2, [r4, #71]                                <== NOT EXECUTED
    2f6c:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    2f70:	e1530002 	cmp	r3, r2                                        <== NOT EXECUTED
    2f74:	ba000000 	blt	2f7c <rtems_termios_read+0x2d8>               <== NOT EXECUTED
    2f78:	e3a06000 	mov	r6, #0	; 0x0                                  <== NOT EXECUTED
					wait = 0;                                                        
			}                                                                  
			timeout = tty->rawInBufSemaphoreTimeout;                           
    2f7c:	e5941070 	ldr	r1, [r4, #112]                                <== NOT EXECUTED
                                                                      
	while ( wait ) {                                                     
		/*                                                                  
		 * Process characters read from raw queue                           
		 */                                                                 
		while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&                
    2f80:	e594205c 	ldr	r2, [r4, #92]                                 <== NOT EXECUTED
    2f84:	e5943060 	ldr	r3, [r4, #96]                                 <== NOT EXECUTED
    2f88:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2f8c:	0a000005 	beq	2fa8 <rtems_termios_read+0x304>               <== NOT EXECUTED
    2f90:	e59f20ac 	ldr	r2, [pc, #172]	; 3044 <rtems_termios_read+0x3a0><== NOT EXECUTED
    2f94:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    2f98:	e5942020 	ldr	r2, [r4, #32]                                 <== NOT EXECUTED
    2f9c:	e2433001 	sub	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    2fa0:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2fa4:	baffffb3 	blt	2e78 <rtems_termios_read+0x1d4>               <== NOT EXECUTED
		}                                                                   
                                                                      
		/*                                                                  
		 * Wait for characters                                              
		 */                                                                 
		if ( wait ) {                                                       
    2fa8:	e3560000 	cmp	r6, #0	; 0x0                                  <== NOT EXECUTED
                                                                      
	while ( wait ) {                                                     
		/*                                                                  
		 * Process characters read from raw queue                           
		 */                                                                 
		while ((tty->rawInBuf.Head != tty->rawInBuf.Tail) &&                
    2fac:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
		}                                                                   
                                                                      
		/*                                                                  
		 * Wait for characters                                              
		 */                                                                 
		if ( wait ) {                                                       
    2fb0:	0a000007 	beq	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
			sc = rtems_semaphore_obtain (tty->rawInBuf.Semaphore,              
    2fb4:	e2840068 	add	r0, r4, #104	; 0x68                           <== NOT EXECUTED
    2fb8:	e8900003 	ldm	r0, {r0, r1}                                  <== NOT EXECUTED
    2fbc:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    2fc0:	eb0004de 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
				tty->rawInBufSemaphoreOptions,                                    
				timeout);                                                         
			if (sc != RTEMS_SUCCESSFUL)                                        
    2fc4:	e3500000 	cmp	r0, #0	; 0x0                                  <== NOT EXECUTED
    2fc8:	1a000001 	bne	2fd4 <rtems_termios_read+0x330>               <== NOT EXECUTED
{                                                                     
	rtems_interval timeout = tty->rawInBufSemaphoreFirstTimeout;         
	rtems_status_code sc;                                                
	int               wait = (int)1;                                     
                                                                      
	while ( wait ) {                                                     
    2fcc:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    2fd0:	eaffffea 	b	2f80 <rtems_termios_read+0x2dc>                 <== NOT EXECUTED
    2fd4:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    2fd8:	ea000006 	b	2ff8 <rtems_termios_read+0x354>                 <== NOT EXECUTED
			sc = fillBufferQueue (tty);                                        
		if (sc != RTEMS_SUCCESSFUL)                                         
			tty->cindex = tty->ccount = 0;                                     
	}                                                                    
	while (count && (tty->cindex < tty->ccount)) {                       
		*buffer++ = tty->cbuf[tty->cindex++];                               
    2fdc:	e594301c 	ldr	r3, [r4, #28]                                 <== NOT EXECUTED
    2fe0:	e7d33002 	ldrb	r3, [r3, r2]                                 <== NOT EXECUTED
    2fe4:	e59d2000 	ldr	r2, [sp]                                      <== NOT EXECUTED
    2fe8:	e7c23001 	strb	r3, [r2, r1]                                 <== NOT EXECUTED
    2fec:	e5840024 	str	r0, [r4, #36]                                 <== NOT EXECUTED
		count--;                                                            
    2ff0:	e2488001 	sub	r8, r8, #1	; 0x1                              <== NOT EXECUTED
    2ff4:	e2811001 	add	r1, r1, #1	; 0x1                              <== NOT EXECUTED
		else                                                                
			sc = fillBufferQueue (tty);                                        
		if (sc != RTEMS_SUCCESSFUL)                                         
			tty->cindex = tty->ccount = 0;                                     
	}                                                                    
	while (count && (tty->cindex < tty->ccount)) {                       
    2ff8:	e3580000 	cmp	r8, #0	; 0x0                                  <== NOT EXECUTED
    2ffc:	0a000004 	beq	3014 <rtems_termios_read+0x370>               <== NOT EXECUTED
    3000:	e5942024 	ldr	r2, [r4, #36]                                 <== NOT EXECUTED
    3004:	e5943020 	ldr	r3, [r4, #32]                                 <== NOT EXECUTED
    3008:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
		*buffer++ = tty->cbuf[tty->cindex++];                               
    300c:	e2820001 	add	r0, r2, #1	; 0x1                              <== NOT EXECUTED
		else                                                                
			sc = fillBufferQueue (tty);                                        
		if (sc != RTEMS_SUCCESSFUL)                                         
			tty->cindex = tty->ccount = 0;                                     
	}                                                                    
	while (count && (tty->cindex < tty->ccount)) {                       
    3010:	bafffff1 	blt	2fdc <rtems_termios_read+0x338>               <== NOT EXECUTED
		*buffer++ = tty->cbuf[tty->cindex++];                               
		count--;                                                            
	}                                                                    
	args->bytes_moved = args->count - count;                             
    3014:	e597300c 	ldr	r3, [r7, #12]                                 <== NOT EXECUTED
    3018:	e0683003 	rsb	r3, r8, r3                                    <== NOT EXECUTED
    301c:	e5873014 	str	r3, [r7, #20]                                 <== NOT EXECUTED
	tty->tty_rcvwakeup = 0;                                              
    3020:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    3024:	e58430e4 	str	r3, [r4, #228]                                <== NOT EXECUTED
	rtems_semaphore_release (tty->isem);                                 
    3028:	e5940014 	ldr	r0, [r4, #20]                                 <== NOT EXECUTED
    302c:	eb000509 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
	return sc;                                                           
}                                                                     
    3030:	e1a0000a 	mov	r0, sl                                        <== NOT EXECUTED
    3034:	e28dd00c 	add	sp, sp, #12	; 0xc                             <== NOT EXECUTED
    3038:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          <== NOT EXECUTED
                                                                      

00001fb0 <rtems_termios_refill_transmitter>: int nToSend; rtems_interrupt_level level; int len; /* check for XOF/XON to send */ if ((tty->flow_ctrl & (FL_MDXOF | FL_IREQXOF | FL_ISNTXOF))
    1fb0:	e59030b8 	ldr	r3, [r0, #184]                                <== NOT EXECUTED
    1fb4:	e59f21d8 	ldr	r2, [pc, #472]	; 2194 <rtems_termios_refill_transmitter+0x1e4><== NOT EXECUTED
    1fb8:	e0032002 	and	r2, r3, r2                                    <== NOT EXECUTED
    1fbc:	e59f31d4 	ldr	r3, [pc, #468]	; 2198 <rtems_termios_refill_transmitter+0x1e8><== NOT EXECUTED
    1fc0:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
 * in task-driven mode, this function is called in Tx task context    
 * in interrupt-driven mode, this function is called in TxIRQ context 
 */                                                                   
int                                                                   
rtems_termios_refill_transmitter (struct rtems_termios_tty *tty)      
{                                                                     
    1fc4:	e92d4070 	push	{r4, r5, r6, lr}                             <== NOT EXECUTED
    1fc8:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
	int nToSend;                                                         
	rtems_interrupt_level level;                                         
	int len;                                                             
                                                                      
	/* check for XOF/XON to send */                                      
	if ((tty->flow_ctrl & (FL_MDXOF | FL_IREQXOF | FL_ISNTXOF))          
    1fcc:	1a00000f 	bne	2010 <rtems_termios_refill_transmitter+0x60>  <== NOT EXECUTED
	    == (FL_MDXOF | FL_IREQXOF)) {                                    
	  /* XOFF should be sent now... */                                   
	  (*tty->device.write)(tty->minor,                                   
    1fd0:	e284104a 	add	r1, r4, #74	; 0x4a                            <== NOT EXECUTED
    1fd4:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    1fd8:	e5900010 	ldr	r0, [r0, #16]                                 <== NOT EXECUTED
    1fdc:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1fe0:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
			       (void *)&(tty->termios.c_cc[VSTOP]), 1);                    
                                                                      
	  rtems_interrupt_disable(level);                                    
    1fe4:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
    1fe8:	e38130c0 	orr	r3, r1, #192	; 0xc0                           <== NOT EXECUTED
    1fec:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
	  tty->t_dqlen--;                                                    
    1ff0:	e5942090 	ldr	r2, [r4, #144]                                <== NOT EXECUTED
	  tty->flow_ctrl |= FL_ISNTXOF;                                      
    1ff4:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
	  /* XOFF should be sent now... */                                   
	  (*tty->device.write)(tty->minor,                                   
			       (void *)&(tty->termios.c_cc[VSTOP]), 1);                    
                                                                      
	  rtems_interrupt_disable(level);                                    
	  tty->t_dqlen--;                                                    
    1ff8:	e2422001 	sub	r2, r2, #1	; 0x1                              <== NOT EXECUTED
	  tty->flow_ctrl |= FL_ISNTXOF;                                      
    1ffc:	e3833002 	orr	r3, r3, #2	; 0x2                              <== NOT EXECUTED
    2000:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
	  /* XOFF should be sent now... */                                   
	  (*tty->device.write)(tty->minor,                                   
			       (void *)&(tty->termios.c_cc[VSTOP]), 1);                    
                                                                      
	  rtems_interrupt_disable(level);                                    
	  tty->t_dqlen--;                                                    
    2004:	e5842090 	str	r2, [r4, #144]                                <== NOT EXECUTED
	  tty->flow_ctrl |= FL_ISNTXOF;                                      
	  rtems_interrupt_enable(level);                                     
    2008:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    200c:	ea000012 	b	205c <rtems_termios_refill_transmitter+0xac>    <== NOT EXECUTED
                                                                      
	  nToSend = 1;                                                       
	}                                                                    
	else if ((tty->flow_ctrl & (FL_IREQXOF | FL_ISNTXOF))                
    2010:	e59030b8 	ldr	r3, [r0, #184]                                <== NOT EXECUTED
    2014:	e2033003 	and	r3, r3, #3	; 0x3                              <== NOT EXECUTED
    2018:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
    201c:	1a000010 	bne	2064 <rtems_termios_refill_transmitter+0xb4>  <== NOT EXECUTED
		 * FIXME: this .write call will generate another                    
		 * dequeue callback. This will advance the "Tail" in the data       
		 * buffer, although the corresponding data is not yet out!          
		 * Therefore the dequeue "length" should be reduced by 1            
		 */                                                                 
	  (*tty->device.write)(tty->minor,                                   
    2020:	e2841049 	add	r1, r4, #73	; 0x49                            <== NOT EXECUTED
    2024:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    2028:	e5900010 	ldr	r0, [r0, #16]                                 <== NOT EXECUTED
    202c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2030:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
			       (void *)&(tty->termios.c_cc[VSTART]), 1);                   
                                                                      
	  rtems_interrupt_disable(level);                                    
    2034:	e10f1000 	mrs	r1, CPSR                                      <== NOT EXECUTED
    2038:	e38130c0 	orr	r3, r1, #192	; 0xc0                           <== NOT EXECUTED
    203c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
	  tty->t_dqlen--;                                                    
    2040:	e5942090 	ldr	r2, [r4, #144]                                <== NOT EXECUTED
	  tty->flow_ctrl &= ~FL_ISNTXOF;                                     
    2044:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
		 */                                                                 
	  (*tty->device.write)(tty->minor,                                   
			       (void *)&(tty->termios.c_cc[VSTART]), 1);                   
                                                                      
	  rtems_interrupt_disable(level);                                    
	  tty->t_dqlen--;                                                    
    2048:	e2422001 	sub	r2, r2, #1	; 0x1                              <== NOT EXECUTED
	  tty->flow_ctrl &= ~FL_ISNTXOF;                                     
    204c:	e3c33002 	bic	r3, r3, #2	; 0x2                              <== NOT EXECUTED
    2050:	e58430b8 	str	r3, [r4, #184]                                <== NOT EXECUTED
		 */                                                                 
	  (*tty->device.write)(tty->minor,                                   
			       (void *)&(tty->termios.c_cc[VSTART]), 1);                   
                                                                      
	  rtems_interrupt_disable(level);                                    
	  tty->t_dqlen--;                                                    
    2054:	e5842090 	str	r2, [r4, #144]                                <== NOT EXECUTED
	  tty->flow_ctrl &= ~FL_ISNTXOF;                                     
	  rtems_interrupt_enable(level);                                     
    2058:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
    205c:	e3a05001 	mov	r5, #1	; 0x1                                  <== NOT EXECUTED
    2060:	ea000049 	b	218c <rtems_termios_refill_transmitter+0x1dc>   <== NOT EXECUTED
                                                                      
	  nToSend = 1;                                                       
	}                                                                    
	else {                                                               
	  if ( tty->rawOutBuf.Head == tty->rawOutBuf.Tail ) {                
    2064:	e5902080 	ldr	r2, [r0, #128]                                <== NOT EXECUTED
    2068:	e5903084 	ldr	r3, [r0, #132]                                <== NOT EXECUTED
    206c:	e1520003 	cmp	r2, r3                                        <== NOT EXECUTED
    2070:	1a000006 	bne	2090 <rtems_termios_refill_transmitter+0xe0>  <== NOT EXECUTED
	    /*                                                               
	     * buffer was empty                                              
	     */                                                              
	    if (tty->rawOutBufState == rob_wait) {                           
    2074:	e5903094 	ldr	r3, [r0, #148]                                <== NOT EXECUTED
    2078:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
    207c:	1a000001 	bne	2088 <rtems_termios_refill_transmitter+0xd8>  <== NOT EXECUTED
	      /*                                                             
	       * this should never happen...                                 
	       */                                                            
	      rtems_semaphore_release (tty->rawOutBuf.Semaphore);            
    2080:	e590008c 	ldr	r0, [r0, #140]                                <== NOT EXECUTED
    2084:	eb0008f3 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
    2088:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
    208c:	ea00003e 	b	218c <rtems_termios_refill_transmitter+0x1dc>   <== NOT EXECUTED
	    }                                                                
	    return 0;                                                        
	  }                                                                  
                                                                      
	  rtems_interrupt_disable(level);                                    
    2090:	e10f2000 	mrs	r2, CPSR                                      <== NOT EXECUTED
    2094:	e38230c0 	orr	r3, r2, #192	; 0xc0                           <== NOT EXECUTED
    2098:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
	  len = tty->t_dqlen;                                                
	  tty->t_dqlen = 0;                                                  
    209c:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
	    }                                                                
	    return 0;                                                        
	  }                                                                  
                                                                      
	  rtems_interrupt_disable(level);                                    
	  len = tty->t_dqlen;                                                
    20a0:	e590c090 	ldr	ip, [r0, #144]                                <== NOT EXECUTED
	  tty->t_dqlen = 0;                                                  
    20a4:	e5803090 	str	r3, [r0, #144]                                <== NOT EXECUTED
	  rtems_interrupt_enable(level);                                     
    20a8:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
                                                                      
	  newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size;       
    20ac:	e5900084 	ldr	r0, [r0, #132]                                <== NOT EXECUTED
    20b0:	e5941088 	ldr	r1, [r4, #136]                                <== NOT EXECUTED
    20b4:	e08c0000 	add	r0, ip, r0                                    <== NOT EXECUTED
    20b8:	eb003d44 	bl	115d0 <__umodsi3>                              <== NOT EXECUTED
	  tty->rawOutBuf.Tail = newTail;                                     
	  if (tty->rawOutBufState == rob_wait) {                             
    20bc:	e5943094 	ldr	r3, [r4, #148]                                <== NOT EXECUTED
    20c0:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
	  rtems_interrupt_disable(level);                                    
	  len = tty->t_dqlen;                                                
	  tty->t_dqlen = 0;                                                  
	  rtems_interrupt_enable(level);                                     
                                                                      
	  newTail = (tty->rawOutBuf.Tail + len) % tty->rawOutBuf.Size;       
    20c4:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
	  tty->rawOutBuf.Tail = newTail;                                     
    20c8:	e5840084 	str	r0, [r4, #132]                                <== NOT EXECUTED
	  if (tty->rawOutBufState == rob_wait) {                             
	    /*                                                               
	     * wake up any pending writer task                               
	     */                                                              
	    rtems_semaphore_release (tty->rawOutBuf.Semaphore);              
    20cc:	0594008c 	ldreq	r0, [r4, #140]                              <== NOT EXECUTED
    20d0:	0b0008e0 	bleq	4458 <rtems_semaphore_release>               <== NOT EXECUTED
	  }                                                                  
	  if (newTail == tty->rawOutBuf.Head) {                              
    20d4:	e5943080 	ldr	r3, [r4, #128]                                <== NOT EXECUTED
    20d8:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
    20dc:	1a00000a 	bne	210c <rtems_termios_refill_transmitter+0x15c> <== NOT EXECUTED
	    nToSend = 0;                                                     
                                                                      
	    /*                                                               
	     * check to see if snd wakeup callback was set                   
	     */                                                              
	    if ( tty->tty_snd.sw_pfn != NULL) {                              
    20e0:	e59420d4 	ldr	r2, [r4, #212]                                <== NOT EXECUTED
	  }                                                                  
	  if (newTail == tty->rawOutBuf.Head) {                              
	    /*                                                               
	     * Buffer has become empty                                       
	     */                                                              
	    tty->rawOutBufState = rob_idle;                                  
    20e4:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
	    nToSend = 0;                                                     
                                                                      
	    /*                                                               
	     * check to see if snd wakeup callback was set                   
	     */                                                              
	    if ( tty->tty_snd.sw_pfn != NULL) {                              
    20e8:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
	  }                                                                  
	  if (newTail == tty->rawOutBuf.Head) {                              
	    /*                                                               
	     * Buffer has become empty                                       
	     */                                                              
	    tty->rawOutBufState = rob_idle;                                  
    20ec:	e5845094 	str	r5, [r4, #148]                                <== NOT EXECUTED
	    nToSend = 0;                                                     
                                                                      
	    /*                                                               
	     * check to see if snd wakeup callback was set                   
	     */                                                              
	    if ( tty->tty_snd.sw_pfn != NULL) {                              
    20f0:	01a05002 	moveq	r5, r2                                      <== NOT EXECUTED
    20f4:	0a000023 	beq	2188 <rtems_termios_refill_transmitter+0x1d8> <== NOT EXECUTED
	      (*tty->tty_snd.sw_pfn)(&tty->termios, tty->tty_snd.sw_arg);    
    20f8:	e2840030 	add	r0, r4, #48	; 0x30                            <== NOT EXECUTED
    20fc:	e59410d8 	ldr	r1, [r4, #216]                                <== NOT EXECUTED
    2100:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2104:	e12fff12 	bx	r2                                             <== NOT EXECUTED
    2108:	ea00001e 	b	2188 <rtems_termios_refill_transmitter+0x1d8>   <== NOT EXECUTED
	    }                                                                
	  }                                                                  
	  /* check, whether output should stop due to received XOFF */       
	  else if ((tty->flow_ctrl & (FL_MDXON | FL_ORCVXOF))                
    210c:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
    2110:	e2033e21 	and	r3, r3, #528	; 0x210                          <== NOT EXECUTED
    2114:	e3530e21 	cmp	r3, #528	; 0x210                              <== NOT EXECUTED
    2118:	1a00000a 	bne	2148 <rtems_termios_refill_transmitter+0x198> <== NOT EXECUTED
		   ==                (FL_MDXON | FL_ORCVXOF)) {                     
		  /* Buffer not empty, but output stops due to XOFF */              
		  /* set flag, that output has been stopped */                      
		  rtems_interrupt_disable(level);                                   
    211c:	e10f3000 	mrs	r3, CPSR                                      <== NOT EXECUTED
    2120:	e38320c0 	orr	r2, r3, #192	; 0xc0                           <== NOT EXECUTED
    2124:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
		  tty->flow_ctrl |= FL_OSTOP;                                       
    2128:	e59420b8 	ldr	r2, [r4, #184]                                <== NOT EXECUTED
    212c:	e3822020 	orr	r2, r2, #32	; 0x20                            <== NOT EXECUTED
    2130:	e58420b8 	str	r2, [r4, #184]                                <== NOT EXECUTED
		  tty->rawOutBufState = rob_busy; /*apm*/                           
    2134:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
    2138:	e5842094 	str	r2, [r4, #148]                                <== NOT EXECUTED
		  rtems_interrupt_enable(level);                                    
    213c:	e129f003 	msr	CPSR_fc, r3                                   <== NOT EXECUTED
    2140:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
    2144:	ea00000f 	b	2188 <rtems_termios_refill_transmitter+0x1d8>   <== NOT EXECUTED
	  }                                                                  
	  else {                                                             
	    /*                                                               
	     * Buffer not empty, start tranmitter                            
	     */                                                              
	    if (newTail > tty->rawOutBuf.Head)                               
    2148:	e5943080 	ldr	r3, [r4, #128]                                <== NOT EXECUTED
    214c:	e1560003 	cmp	r6, r3                                        <== NOT EXECUTED
		    nToSend = tty->rawOutBuf.Size - newTail;                        
    2150:	85943088 	ldrhi	r3, [r4, #136]                              <== NOT EXECUTED
	    else                                                             
		    nToSend = tty->rawOutBuf.Head - newTail;                        
    2154:	95943080 	ldrls	r3, [r4, #128]                              <== NOT EXECUTED
    2158:	e0665003 	rsb	r5, r6, r3                                    <== NOT EXECUTED
	    /* when flow control XON or XOF, don't send blocks of data     */
	    /* to allow fast reaction on incoming flow ctrl and low latency*/
	    /* for outgoing flow control                                   */
	    if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) {                    
    215c:	e59430b8 	ldr	r3, [r4, #184]                                <== NOT EXECUTED
		    nToSend = 1;                                                    
	    }                                                                
	    tty->rawOutBufState = rob_busy; /*apm*/                          
	    (*tty->device.write)(tty->minor,                                 
    2160:	e594107c 	ldr	r1, [r4, #124]                                <== NOT EXECUTED
	    else                                                             
		    nToSend = tty->rawOutBuf.Head - newTail;                        
	    /* when flow control XON or XOF, don't send blocks of data     */
	    /* to allow fast reaction on incoming flow ctrl and low latency*/
	    /* for outgoing flow control                                   */
	    if (tty->flow_ctrl & (FL_MDXON | FL_MDXOF)) {                    
    2164:	e3130c06 	tst	r3, #1536	; 0x600                             <== NOT EXECUTED
    2168:	13a05001 	movne	r5, #1	; 0x1                                <== NOT EXECUTED
		    nToSend = 1;                                                    
	    }                                                                
	    tty->rawOutBufState = rob_busy; /*apm*/                          
    216c:	e3a03001 	mov	r3, #1	; 0x1                                  <== NOT EXECUTED
    2170:	e5843094 	str	r3, [r4, #148]                                <== NOT EXECUTED
	    (*tty->device.write)(tty->minor,                                 
    2174:	e0811006 	add	r1, r1, r6                                    <== NOT EXECUTED
    2178:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    217c:	e1a02005 	mov	r2, r5                                        <== NOT EXECUTED
    2180:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2184:	e594f0a4 	ldr	pc, [r4, #164]                                <== NOT EXECUTED
				 &tty->rawOutBuf.theBuf[newTail],                                 
				 nToSend);                                                        
	  }                                                                  
	  tty->rawOutBuf.Tail = newTail; /*apm*/                             
    2188:	e5846084 	str	r6, [r4, #132]                                <== NOT EXECUTED
	}                                                                    
	return nToSend;                                                      
}                                                                     
    218c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    2190:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      

00003a54 <rtems_termios_rxdaemon>: /* * this task actually processes any receive events */ static rtems_task rtems_termios_rxdaemon(rtems_task_argument argument) {
    3a54:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
    3a58:	e24dd008 	sub	sp, sp, #8	; 0x8                              <== NOT EXECUTED
    3a5c:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
	char c_buf;                                                          
	while (1) {                                                          
		/*                                                                  
		 * wait for rtems event                                             
		 */                                                                 
		rtems_event_receive((TERMIOS_RX_PROC_EVENT |                        
    3a60:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
			if (c != EOF) {                                                    
				/*                                                                
				 * pollRead did call enqueue on its own                           
				 */                                                               
				c_buf = c;                                                        
				rtems_termios_enqueue_raw_characters (                            
    3a64:	e28d6007 	add	r6, sp, #7	; 0x7                              <== NOT EXECUTED
	char c_buf;                                                          
	while (1) {                                                          
		/*                                                                  
		 * wait for rtems event                                             
		 */                                                                 
		rtems_event_receive((TERMIOS_RX_PROC_EVENT |                        
    3a68:	e1a0300d 	mov	r3, sp                                        <== NOT EXECUTED
    3a6c:	e3a01002 	mov	r1, #2	; 0x2                                  <== NOT EXECUTED
    3a70:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    3a74:	e3a00003 	mov	r0, #3	; 0x3                                  <== NOT EXECUTED
    3a78:	eb0000a7 	bl	3d1c <rtems_event_receive>                     <== NOT EXECUTED
				     TERMIOS_RX_TERMINATE_EVENT),                                 
				    RTEMS_EVENT_ANY | RTEMS_WAIT,                                 
				    RTEMS_NO_TIMEOUT,                                             
				    &the_event);                                                  
		if ((the_event & TERMIOS_RX_TERMINATE_EVENT) != 0) {                
    3a7c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    3a80:	e3130001 	tst	r3, #1	; 0x1                                  <== NOT EXECUTED
    3a84:	0a000003 	beq	3a98 <rtems_termios_rxdaemon+0x44>            <== NOT EXECUTED
			tty->rxTaskId = 0;                                                 
    3a88:	e58450c4 	str	r5, [r4, #196]                                <== NOT EXECUTED
			rtems_task_delete(RTEMS_SELF);                                     
    3a8c:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    3a90:	eb0002e8 	bl	4638 <rtems_task_delete>                       <== NOT EXECUTED
    3a94:	eafffff3 	b	3a68 <rtems_termios_rxdaemon+0x14>              <== NOT EXECUTED
		}                                                                   
		else {                                                              
			/*                                                                 
			 * do something                                                    
			 */                                                                
			c = tty->device.pollRead(tty->minor);                              
    3a98:	e5940010 	ldr	r0, [r4, #16]                                 <== NOT EXECUTED
    3a9c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    3aa0:	e594f0a0 	ldr	pc, [r4, #160]                                <== NOT EXECUTED
    3aa4:	e1a03000 	mov	r3, r0                                        <== NOT EXECUTED
			if (c != EOF) {                                                    
    3aa8:	e3730001 	cmn	r3, #1	; 0x1                                  <== NOT EXECUTED
				/*                                                                
				 * pollRead did call enqueue on its own                           
				 */                                                               
				c_buf = c;                                                        
				rtems_termios_enqueue_raw_characters (                            
    3aac:	e1a01006 	mov	r1, r6                                        <== NOT EXECUTED
    3ab0:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    3ab4:	e3a02001 	mov	r2, #1	; 0x1                                  <== NOT EXECUTED
		else {                                                              
			/*                                                                 
			 * do something                                                    
			 */                                                                
			c = tty->device.pollRead(tty->minor);                              
			if (c != EOF) {                                                    
    3ab8:	0affffea 	beq	3a68 <rtems_termios_rxdaemon+0x14>            <== NOT EXECUTED
				/*                                                                
				 * pollRead did call enqueue on its own                           
				 */                                                               
				c_buf = c;                                                        
    3abc:	e5cd3007 	strb	r3, [sp, #7]                                 <== NOT EXECUTED
				rtems_termios_enqueue_raw_characters (                            
    3ac0:	ebfff9d1 	bl	220c <rtems_termios_enqueue_raw_characters>    <== NOT EXECUTED
    3ac4:	eaffffe7 	b	3a68 <rtems_termios_rxdaemon+0x14>              <== NOT EXECUTED
                                                                      

00001fa4 <rtems_termios_rxirq_occured>: void rtems_termios_rxirq_occured(struct rtems_termios_tty *tty) { /* * send event to rx daemon task */ rtems_event_send(tty->rxTaskId,TERMIOS_RX_PROC_EVENT);
    1fa4:	e59000c4 	ldr	r0, [r0, #196]                                <== NOT EXECUTED
    1fa8:	e3a01002 	mov	r1, #2	; 0x2                                  <== NOT EXECUTED
    1fac:	ea0007b9 	b	3e98 <rtems_event_send>                         <== NOT EXECUTED
                                                                      

000039e4 <rtems_termios_txdaemon>: /* * this task actually processes any transmit events */ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument) {
    39e4:	e92d40f0 	push	{r4, r5, r6, r7, lr}                         <== NOT EXECUTED
		}                                                                   
		else {                                                              
			/*                                                                 
			 * call any line discipline start function                         
			 */                                                                
			if (rtems_termios_linesw[tty->t_line].l_start != NULL) {           
    39e8:	e59f7060 	ldr	r7, [pc, #96]	; 3a50 <rtems_termios_txdaemon+0x6c><== NOT EXECUTED
                                                                      
/*                                                                    
 * this task actually processes any transmit events                   
 */                                                                   
static rtems_task rtems_termios_txdaemon(rtems_task_argument argument)
{                                                                     
    39ec:	e24dd004 	sub	sp, sp, #4	; 0x4                              <== NOT EXECUTED
    39f0:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
                                                                      
	while (1) {                                                          
		/*                                                                  
		 * wait for rtems event                                             
		 */                                                                 
		rtems_event_receive((TERMIOS_TX_START_EVENT |                       
    39f4:	e3a05000 	mov	r5, #0	; 0x0                                  <== NOT EXECUTED
    39f8:	e1a0300d 	mov	r3, sp                                        <== NOT EXECUTED
    39fc:	e3a01002 	mov	r1, #2	; 0x2                                  <== NOT EXECUTED
    3a00:	e3a02000 	mov	r2, #0	; 0x0                                  <== NOT EXECUTED
    3a04:	e3a00003 	mov	r0, #3	; 0x3                                  <== NOT EXECUTED
    3a08:	eb0000c3 	bl	3d1c <rtems_event_receive>                     <== NOT EXECUTED
				     TERMIOS_TX_TERMINATE_EVENT),                                 
				    RTEMS_EVENT_ANY | RTEMS_WAIT,                                 
				    RTEMS_NO_TIMEOUT,                                             
				    &the_event);                                                  
		if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) {                
    3a0c:	e59d3000 	ldr	r3, [sp]                                      <== NOT EXECUTED
    3a10:	e3130001 	tst	r3, #1	; 0x1                                  <== NOT EXECUTED
		else {                                                              
			/*                                                                 
			 * call any line discipline start function                         
			 */                                                                
			if (rtems_termios_linesw[tty->t_line].l_start != NULL) {           
				rtems_termios_linesw[tty->t_line].l_start(tty);                   
    3a14:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
		rtems_event_receive((TERMIOS_TX_START_EVENT |                       
				     TERMIOS_TX_TERMINATE_EVENT),                                 
				    RTEMS_EVENT_ANY | RTEMS_WAIT,                                 
				    RTEMS_NO_TIMEOUT,                                             
				    &the_event);                                                  
		if ((the_event & TERMIOS_TX_TERMINATE_EVENT) != 0) {                
    3a18:	0a000003 	beq	3a2c <rtems_termios_txdaemon+0x48>            <== NOT EXECUTED
			tty->txTaskId = 0;                                                 
    3a1c:	e58450c8 	str	r5, [r4, #200]                                <== NOT EXECUTED
			rtems_task_delete(RTEMS_SELF);                                     
    3a20:	e1a00005 	mov	r0, r5                                        <== NOT EXECUTED
    3a24:	eb000303 	bl	4638 <rtems_task_delete>                       <== NOT EXECUTED
    3a28:	eafffff2 	b	39f8 <rtems_termios_txdaemon+0x14>              <== NOT EXECUTED
		}                                                                   
		else {                                                              
			/*                                                                 
			 * call any line discipline start function                         
			 */                                                                
			if (rtems_termios_linesw[tty->t_line].l_start != NULL) {           
    3a2c:	e59430cc 	ldr	r3, [r4, #204]                                <== NOT EXECUTED
    3a30:	e0873283 	add	r3, r7, r3, lsl #5                            <== NOT EXECUTED
    3a34:	e5933014 	ldr	r3, [r3, #20]                                 <== NOT EXECUTED
    3a38:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
				rtems_termios_linesw[tty->t_line].l_start(tty);                   
    3a3c:	11a0e00f 	movne	lr, pc                                      <== NOT EXECUTED
    3a40:	112fff13 	bxne	r3                                           <== NOT EXECUTED
			}                                                                  
			/*                                                                 
			 * try to push further characters to device                        
			 */                                                                
			rtems_termios_refill_transmitter(tty);                             
    3a44:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    3a48:	ebfff958 	bl	1fb0 <rtems_termios_refill_transmitter>        <== NOT EXECUTED
    3a4c:	eaffffe9 	b	39f8 <rtems_termios_txdaemon+0x14>              <== NOT EXECUTED
                                                                      

00002b78 <rtems_termios_write>: rtems_status_code rtems_termios_write (void *arg) { rtems_libio_rw_args_t *args = arg; struct rtems_termios_tty *tty = args->iop->data1;
    2b78:	e5903000 	ldr	r3, [r0]                                      
	rtems_termios_puts (&c, 1, tty);                                     
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_write (void *arg)                                       
{                                                                     
    2b7c:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
    2b80:	e5937028 	ldr	r7, [r3, #40]                                 
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    2b84:	e3a01000 	mov	r1, #0	; 0x0                                  
	rtems_termios_puts (&c, 1, tty);                                     
}                                                                     
                                                                      
rtems_status_code                                                     
rtems_termios_write (void *arg)                                       
{                                                                     
    2b88:	e1a04000 	mov	r4, r0                                        
	rtems_libio_rw_args_t *args = arg;                                   
	struct rtems_termios_tty *tty = args->iop->data1;                    
	rtems_status_code sc;                                                
                                                                      
	sc = rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
    2b8c:	e1a02001 	mov	r2, r1                                        
    2b90:	e5970018 	ldr	r0, [r7, #24]                                 
    2b94:	eb0005e9 	bl	4340 <rtems_semaphore_obtain>                  
	if (sc != RTEMS_SUCCESSFUL)                                          
    2b98:	e2508000 	subs	r8, r0, #0	; 0x0                             
    2b9c:	1a000022 	bne	2c2c <rtems_termios_write+0xb4>               
		return sc;                                                          
	if (rtems_termios_linesw[tty->t_line].l_write != NULL) {             
    2ba0:	e59720cc 	ldr	r2, [r7, #204]                                
    2ba4:	e59f3088 	ldr	r3, [pc, #136]	; 2c34 <rtems_termios_write+0xbc>
    2ba8:	e0833282 	add	r3, r3, r2, lsl #5                            
    2bac:	e593300c 	ldr	r3, [r3, #12]                                 
    2bb0:	e3530000 	cmp	r3, #0	; 0x0                                  
    2bb4:	0a000005 	beq	2bd0 <rtems_termios_write+0x58>               
		sc = rtems_termios_linesw[tty->t_line].l_write(tty,args);           
    2bb8:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2bbc:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    2bc0:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    2bc4:	e12fff13 	bx	r3                                             <== NOT EXECUTED
    2bc8:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
    2bcc:	ea000014 	b	2c24 <rtems_termios_write+0xac>                 <== NOT EXECUTED
		rtems_semaphore_release (tty->osem);                                
		return sc;                                                          
	}                                                                    
	if (tty->termios.c_oflag & OPOST) {                                  
    2bd0:	e5973034 	ldr	r3, [r7, #52]                                 
    2bd4:	e3130001 	tst	r3, #1	; 0x1                                  
		uint32_t   count = args->count;                                     
    2bd8:	1594600c 	ldrne	r6, [r4, #12]                               
		char      *buffer = args->buffer;                                   
    2bdc:	1594a008 	ldrne	sl, [r4, #8]                                
    2be0:	11a05008 	movne	r5, r8                                      
	if (rtems_termios_linesw[tty->t_line].l_write != NULL) {             
		sc = rtems_termios_linesw[tty->t_line].l_write(tty,args);           
		rtems_semaphore_release (tty->osem);                                
		return sc;                                                          
	}                                                                    
	if (tty->termios.c_oflag & OPOST) {                                  
    2be4:	1a000003 	bne	2bf8 <rtems_termios_write+0x80>               
    2be8:	ea000007 	b	2c0c <rtems_termios_write+0x94>                 <== NOT EXECUTED
		uint32_t   count = args->count;                                     
		char      *buffer = args->buffer;                                   
		while (count--)                                                     
			oproc (*buffer++, tty);                                            
    2bec:	e7da0005 	ldrb	r0, [sl, r5]                                 
    2bf0:	ebfffe7c 	bl	25e8 <oproc>                                   
    2bf4:	e2855001 	add	r5, r5, #1	; 0x1                              
		return sc;                                                          
	}                                                                    
	if (tty->termios.c_oflag & OPOST) {                                  
		uint32_t   count = args->count;                                     
		char      *buffer = args->buffer;                                   
		while (count--)                                                     
    2bf8:	e3560000 	cmp	r6, #0	; 0x0                                  
			oproc (*buffer++, tty);                                            
    2bfc:	e1a01007 	mov	r1, r7                                        
    2c00:	e2466001 	sub	r6, r6, #1	; 0x1                              
		return sc;                                                          
	}                                                                    
	if (tty->termios.c_oflag & OPOST) {                                  
		uint32_t   count = args->count;                                     
		char      *buffer = args->buffer;                                   
		while (count--)                                                     
    2c04:	1afffff8 	bne	2bec <rtems_termios_write+0x74>               
    2c08:	ea000003 	b	2c1c <rtems_termios_write+0xa4>                 
			oproc (*buffer++, tty);                                            
		args->bytes_moved = args->count;                                    
	}                                                                    
	else {                                                               
		rtems_termios_puts (args->buffer, args->count, tty);                
    2c0c:	e2840008 	add	r0, r4, #8	; 0x8                              <== NOT EXECUTED
    2c10:	e8900003 	ldm	r0, {r0, r1}                                  <== NOT EXECUTED
    2c14:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
    2c18:	ebfffe2e 	bl	24d8 <rtems_termios_puts>                      <== NOT EXECUTED
		args->bytes_moved = args->count;                                    
    2c1c:	e594300c 	ldr	r3, [r4, #12]                                 
    2c20:	e5843014 	str	r3, [r4, #20]                                 
	}                                                                    
	rtems_semaphore_release (tty->osem);                                 
    2c24:	e5970018 	ldr	r0, [r7, #24]                                 
    2c28:	eb00060a 	bl	4458 <rtems_semaphore_release>                 
	return sc;                                                           
}                                                                     
    2c2c:	e1a00008 	mov	r0, r8                                        
    2c30:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      

00010a00 <rtems_timer_fire_after>: Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
   10a00:	e92d45f0 	push	{r4, r5, r6, r7, r8, sl, lr}                 
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
   10a04:	e251a000 	subs	sl, r1, #0	; 0x0                             
  Objects_Id                         id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
   10a08:	e1a07000 	mov	r7, r0                                        
   10a0c:	e24dd004 	sub	sp, sp, #4	; 0x4                              
   10a10:	e1a06002 	mov	r6, r2                                        
   10a14:	e1a08003 	mov	r8, r3                                        
  Timer_Control      *the_timer;                                      
  Objects_Locations   location;                                       
  ISR_Level           level;                                          
                                                                      
  if ( ticks == 0 )                                                   
   10a18:	03a0000a 	moveq	r0, #10	; 0xa                               
   10a1c:	0a000022 	beq	10aac <rtems_timer_fire_after+0xac>           
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  if ( !routine )                                                     
   10a20:	e3520000 	cmp	r2, #0	; 0x0                                  
   10a24:	03a00009 	moveq	r0, #9	; 0x9                                
   10a28:	0a00001f 	beq	10aac <rtems_timer_fire_after+0xac>           
RTEMS_INLINE_ROUTINE Timer_Control *_Timer_Get (                      
  Objects_Id         id,                                              
  Objects_Locations *location                                         
)                                                                     
{                                                                     
  return (Timer_Control *)                                            
   10a2c:	e59f0080 	ldr	r0, [pc, #128]	; 10ab4 <rtems_timer_fire_after+0xb4>
   10a30:	e1a01007 	mov	r1, r7                                        
   10a34:	e1a0200d 	mov	r2, sp                                        
   10a38:	eb000a5e 	bl	133b8 <_Objects_Get>                           
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   10a3c:	e59d3000 	ldr	r3, [sp]                                      
   10a40:	e3530000 	cmp	r3, #0	; 0x0                                  
   10a44:	e1a04000 	mov	r4, r0                                        
   10a48:	13a00004 	movne	r0, #4	; 0x4                                
   10a4c:	1a000016 	bne	10aac <rtems_timer_fire_after+0xac>           
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   10a50:	e2845010 	add	r5, r4, #16	; 0x10                            
   10a54:	e1a00005 	mov	r0, r5                                        
   10a58:	eb001246 	bl	15378 <_Watchdog_Remove>                       
                                                                      
      _ISR_Disable( level );                                          
   10a5c:	e10f2000 	mrs	r2, CPSR                                      
   10a60:	e38230c0 	orr	r3, r2, #192	; 0xc0                           
   10a64:	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 ) {         
   10a68:	e5943018 	ldr	r3, [r4, #24]                                 
   10a6c:	e3530000 	cmp	r3, #0	; 0x0                                  
   10a70:	0a000001 	beq	10a7c <rtems_timer_fire_after+0x7c>           
          _ISR_Enable( level );                                       
   10a74:	e129f002 	msr	CPSR_fc, r2                                   <== NOT EXECUTED
   10a78:	ea000009 	b	10aa4 <rtems_timer_fire_after+0xa4>             <== NOT EXECUTED
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   10a7c:	e5843018 	str	r3, [r4, #24]                                 
  the_watchdog->routine   = routine;                                  
   10a80:	e584602c 	str	r6, [r4, #44]                                 
  the_watchdog->id        = id;                                       
   10a84:	e5847030 	str	r7, [r4, #48]                                 
  the_watchdog->user_data = user_data;                                
   10a88:	e5848034 	str	r8, [r4, #52]                                 
        /*                                                            
         *  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;                        
   10a8c:	e5843038 	str	r3, [r4, #56]                                 
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
      _ISR_Enable( level );                                           
   10a90:	e129f002 	msr	CPSR_fc, r2                                   
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   10a94:	e59f001c 	ldr	r0, [pc, #28]	; 10ab8 <rtems_timer_fire_after+0xb8>
  Watchdog_Control      *the_watchdog,                                
  Watchdog_Interval      units                                        
)                                                                     
{                                                                     
                                                                      
  the_watchdog->initial = units;                                      
   10a98:	e584a01c 	str	sl, [r4, #28]                                 
                                                                      
  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );           
   10a9c:	e1a01005 	mov	r1, r5                                        
   10aa0:	eb0011d8 	bl	15208 <_Watchdog_Insert>                       
                                                                      
                                                                      
      _Watchdog_Insert_ticks( &the_timer->Ticker, ticks );            
      _Thread_Enable_dispatch();                                      
   10aa4:	eb000c69 	bl	13c50 <_Thread_Enable_dispatch>                
   10aa8:	e3a00000 	mov	r0, #0	; 0x0                                  
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   10aac:	e28dd004 	add	sp, sp, #4	; 0x4                              
   10ab0:	e8bd85f0 	pop	{r4, r5, r6, r7, r8, sl, pc}                  
                                                                      

00010c3c <rtems_timer_reset>: */ rtems_status_code rtems_timer_reset( Objects_Id id ) {
   10c3c:	e92d4030 	push	{r4, r5, lr}                                 
   10c40:	e24dd004 	sub	sp, sp, #4	; 0x4                              
   10c44:	e1a01000 	mov	r1, r0                                        
   10c48:	e1a0200d 	mov	r2, sp                                        
   10c4c:	e59f00a4 	ldr	r0, [pc, #164]	; 10cf8 <rtems_timer_reset+0xbc>
   10c50:	eb0009d8 	bl	133b8 <_Objects_Get>                           
  Timer_Control     *the_timer;                                       
  Objects_Locations  location;                                        
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   10c54:	e59d3000 	ldr	r3, [sp]                                      
   10c58:	e3530000 	cmp	r3, #0	; 0x0                                  
   10c5c:	e1a04000 	mov	r4, r0                                        
   10c60:	13a00004 	movne	r0, #4	; 0x4                                
   10c64:	1a000021 	bne	10cf0 <rtems_timer_reset+0xb4>                
                                                                      
    case OBJECTS_LOCAL:                                               
      switch ( the_timer->the_class ) {                               
   10c68:	e5943038 	ldr	r3, [r4, #56]                                 
   10c6c:	e3530004 	cmp	r3, #4	; 0x4                                  
   10c70:	979ff103 	ldrls	pc, [pc, r3, lsl #2]                        
   10c74:	ea00001b 	b	10ce8 <rtems_timer_reset+0xac>                  <== NOT EXECUTED
   10c78:	00010c8c 	.word	0x00010c8c                                  <== NOT EXECUTED
   10c7c:	00010ca8 	.word	0x00010ca8                                  <== NOT EXECUTED
   10c80:	00010cdc 	.word	0x00010cdc                                  <== NOT EXECUTED
   10c84:	00010cdc 	.word	0x00010cdc                                  <== NOT EXECUTED
   10c88:	00010cdc 	.word	0x00010cdc                                  <== NOT EXECUTED
        case TIMER_INTERVAL:                                          
          _Watchdog_Remove( &the_timer->Ticker );                     
   10c8c:	e2844010 	add	r4, r4, #16	; 0x10                            
   10c90:	e1a00004 	mov	r0, r4                                        
   10c94:	eb0011b7 	bl	15378 <_Watchdog_Remove>                       
          _Watchdog_Insert( &_Watchdog_Ticks_chain, &the_timer->Ticker );
   10c98:	e1a01004 	mov	r1, r4                                        
   10c9c:	e59f0058 	ldr	r0, [pc, #88]	; 10cfc <rtems_timer_reset+0xc0>
   10ca0:	eb001158 	bl	15208 <_Watchdog_Insert>                       
   10ca4:	ea00000f 	b	10ce8 <rtems_timer_reset+0xac>                  
          break;                                                      
        case TIMER_INTERVAL_ON_TASK:                                  
          if ( !_Timer_Server_schedule_operation ) {                  
   10ca8:	e59f5050 	ldr	r5, [pc, #80]	; 10d00 <rtems_timer_reset+0xc4>
   10cac:	e5953000 	ldr	r3, [r5]                                      
   10cb0:	e3530000 	cmp	r3, #0	; 0x0                                  
   10cb4:	1a000002 	bne	10cc4 <rtems_timer_reset+0x88>                
            _Thread_Enable_dispatch();                                
   10cb8:	eb000be4 	bl	13c50 <_Thread_Enable_dispatch>                <== NOT EXECUTED
   10cbc:	e3a0000e 	mov	r0, #14	; 0xe                                 <== NOT EXECUTED
   10cc0:	ea00000a 	b	10cf0 <rtems_timer_reset+0xb4>                  <== NOT EXECUTED
            return RTEMS_INCORRECT_STATE;                             
          }                                                           
          _Watchdog_Remove( &the_timer->Ticker );                     
   10cc4:	e2840010 	add	r0, r4, #16	; 0x10                            
   10cc8:	eb0011aa 	bl	15378 <_Watchdog_Remove>                       
          (*_Timer_Server_schedule_operation)( the_timer );           
   10ccc:	e1a00004 	mov	r0, r4                                        
   10cd0:	e1a0e00f 	mov	lr, pc                                        
   10cd4:	e595f000 	ldr	pc, [r5]                                      
   10cd8:	ea000002 	b	10ce8 <rtems_timer_reset+0xac>                  
          break;                                                      
        case TIMER_TIME_OF_DAY:                                       
        case TIMER_TIME_OF_DAY_ON_TASK:                               
        case TIMER_DORMANT:                                           
          _Thread_Enable_dispatch();                                  
   10cdc:	eb000bdb 	bl	13c50 <_Thread_Enable_dispatch>                
   10ce0:	e3a0000b 	mov	r0, #11	; 0xb                                 
   10ce4:	ea000001 	b	10cf0 <rtems_timer_reset+0xb4>                  
          return RTEMS_NOT_DEFINED;                                   
      }                                                               
      _Thread_Enable_dispatch();                                      
   10ce8:	eb000bd8 	bl	13c50 <_Thread_Enable_dispatch>                
   10cec:	e3a00000 	mov	r0, #0	; 0x0                                  
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   10cf0:	e28dd004 	add	sp, sp, #4	; 0x4                              
   10cf4:	e8bd8030 	pop	{r4, r5, pc}                                  
                                                                      

00010d04 <rtems_timer_server_fire_after>: Objects_Id id, rtems_interval ticks, rtems_timer_service_routine_entry routine, void *user_data ) {
   10d04:	e92d41f0 	push	{r4, r5, r6, r7, r8, lr}                     
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
                                                                      
  if ( !_Timer_Server )                                               
   10d08:	e59fc0c4 	ldr	ip, [pc, #196]	; 10dd4 <rtems_timer_server_fire_after+0xd0>
   10d0c:	e59cc000 	ldr	ip, [ip]                                      
   10d10:	e35c0000 	cmp	ip, #0	; 0x0                                  
  Objects_Id                         id,                              
  rtems_interval                     ticks,                           
  rtems_timer_service_routine_entry  routine,                         
  void                              *user_data                        
)                                                                     
{                                                                     
   10d14:	e1a06000 	mov	r6, r0                                        
   10d18:	e24dd004 	sub	sp, sp, #4	; 0x4                              
   10d1c:	e1a07001 	mov	r7, r1                                        
   10d20:	e1a05002 	mov	r5, r2                                        
   10d24:	e1a08003 	mov	r8, r3                                        
  Timer_Control        *the_timer;                                    
  Objects_Locations     location;                                     
  ISR_Level             level;                                        
                                                                      
  if ( !_Timer_Server )                                               
   10d28:	03a0000e 	moveq	r0, #14	; 0xe                               
   10d2c:	0a000026 	beq	10dcc <rtems_timer_server_fire_after+0xc8>    
    return RTEMS_INCORRECT_STATE;                                     
                                                                      
  if ( !routine )                                                     
   10d30:	e3520000 	cmp	r2, #0	; 0x0                                  
   10d34:	03a00009 	moveq	r0, #9	; 0x9                                
   10d38:	0a000023 	beq	10dcc <rtems_timer_server_fire_after+0xc8>    
    return RTEMS_INVALID_ADDRESS;                                     
                                                                      
  if ( ticks == 0 )                                                   
   10d3c:	e3510000 	cmp	r1, #0	; 0x0                                  
   10d40:	03a0000a 	moveq	r0, #10	; 0xa                               
   10d44:	0a000020 	beq	10dcc <rtems_timer_server_fire_after+0xc8>    
   10d48:	e59f0088 	ldr	r0, [pc, #136]	; 10dd8 <rtems_timer_server_fire_after+0xd4>
   10d4c:	e1a01006 	mov	r1, r6                                        
   10d50:	e1a0200d 	mov	r2, sp                                        
   10d54:	eb000997 	bl	133b8 <_Objects_Get>                           
    return RTEMS_INVALID_NUMBER;                                      
                                                                      
  the_timer = _Timer_Get( id, &location );                            
  switch ( location ) {                                               
   10d58:	e59d3000 	ldr	r3, [sp]                                      
   10d5c:	e3530000 	cmp	r3, #0	; 0x0                                  
   10d60:	e1a04000 	mov	r4, r0                                        
   10d64:	13a00004 	movne	r0, #4	; 0x4                                
   10d68:	1a000017 	bne	10dcc <rtems_timer_server_fire_after+0xc8>    
                                                                      
    case OBJECTS_LOCAL:                                               
      (void) _Watchdog_Remove( &the_timer->Ticker );                  
   10d6c:	e2840010 	add	r0, r4, #16	; 0x10                            
   10d70:	eb001180 	bl	15378 <_Watchdog_Remove>                       
                                                                      
      _ISR_Disable( level );                                          
   10d74:	e10f1000 	mrs	r1, CPSR                                      
   10d78:	e38130c0 	orr	r3, r1, #192	; 0xc0                           
   10d7c:	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 ) {         
   10d80:	e5942018 	ldr	r2, [r4, #24]                                 
   10d84:	e3520000 	cmp	r2, #0	; 0x0                                  
   10d88:	0a000001 	beq	10d94 <rtems_timer_server_fire_after+0x90>    
          _ISR_Enable( level );                                       
   10d8c:	e129f001 	msr	CPSR_fc, r1                                   <== NOT EXECUTED
   10d90:	ea00000b 	b	10dc4 <rtems_timer_server_fire_after+0xc0>      <== 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;                
   10d94:	e3a03001 	mov	r3, #1	; 0x1                                  
   10d98:	e5843038 	str	r3, [r4, #56]                                 
  Watchdog_Service_routine_entry  routine,                            
  Objects_Id                      id,                                 
  void                           *user_data                           
)                                                                     
{                                                                     
  the_watchdog->state     = WATCHDOG_INACTIVE;                        
   10d9c:	e5842018 	str	r2, [r4, #24]                                 
  the_watchdog->routine   = routine;                                  
   10da0:	e584502c 	str	r5, [r4, #44]                                 
  the_watchdog->id        = id;                                       
   10da4:	e5846030 	str	r6, [r4, #48]                                 
  the_watchdog->user_data = user_data;                                
   10da8:	e5848034 	str	r8, [r4, #52]                                 
        _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data );
        the_timer->Ticker.initial = ticks;                            
   10dac:	e584701c 	str	r7, [r4, #28]                                 
      _ISR_Enable( level );                                           
   10db0:	e129f001 	msr	CPSR_fc, r1                                   
      /*                                                              
       * _Timer_Server_schedule_operation != NULL because we checked that
       * _Timer_Server was != NULL above.  Both are set at the same time.
       */                                                             
                                                                      
      (*_Timer_Server_schedule_operation)( the_timer );               
   10db4:	e59f3020 	ldr	r3, [pc, #32]	; 10ddc <rtems_timer_server_fire_after+0xd8>
   10db8:	e1a00004 	mov	r0, r4                                        
   10dbc:	e1a0e00f 	mov	lr, pc                                        
   10dc0:	e593f000 	ldr	pc, [r3]                                      
                                                                      
      _Thread_Enable_dispatch();                                      
   10dc4:	eb000ba1 	bl	13c50 <_Thread_Enable_dispatch>                
   10dc8:	e3a00000 	mov	r0, #0	; 0x0                                  
    case OBJECTS_ERROR:                                               
      break;                                                          
  }                                                                   
                                                                      
  return RTEMS_INVALID_ID;                                            
}                                                                     
   10dcc:	e28dd004 	add	sp, sp, #4	; 0x4                              
   10dd0:	e8bd81f0 	pop	{r4, r5, r6, r7, r8, pc}                      
                                                                      

000022c4 <rtems_verror>: static int rtems_verror( uint32_t error_flag, const char *printf_format, va_list arglist ) {
    22c4:	e92d47f0 	push	{r4, r5, r6, r7, r8, r9, sl, lr}             <== NOT EXECUTED
    int               local_errno = 0;                                
    int               chars_written = 0;                              
    rtems_status_code status;                                         
                                                                      
    if (error_flag & RTEMS_ERROR_PANIC)                               
    22c8:	e2109202 	ands	r9, r0, #536870912	; 0x20000000              <== NOT EXECUTED
static int rtems_verror(                                              
    uint32_t     error_flag,                                          
    const char   *printf_format,                                      
    va_list      arglist                                              
)                                                                     
{                                                                     
    22cc:	e1a08000 	mov	r8, r0                                        <== NOT EXECUTED
    22d0:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
    22d4:	e1a0a002 	mov	sl, r2                                        <== NOT EXECUTED
    int               local_errno = 0;                                
    int               chars_written = 0;                              
    rtems_status_code status;                                         
                                                                      
    if (error_flag & RTEMS_ERROR_PANIC)                               
    22d8:	0a00000d 	beq	2314 <rtems_verror+0x50>                      <== NOT EXECUTED
    {                                                                 
        if (rtems_panic_in_progress++)                                
    22dc:	e59f2168 	ldr	r2, [pc, #360]	; 244c <rtems_verror+0x188>    <== NOT EXECUTED
    22e0:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    22e4:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    22e8:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    22ec:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
    22f0:	0a000003 	beq	2304 <rtems_verror+0x40>                      <== NOT EXECUTED
	rtems_fatal_error_occurred( 99 );                                    
      }                                                               
    }                                                                 
  #endif                                                              
                                                                      
  _Thread_Dispatch_disable_level += 1;                                
    22f4:	e59f2154 	ldr	r2, [pc, #340]	; 2450 <rtems_verror+0x18c>    <== NOT EXECUTED
    22f8:	e5923000 	ldr	r3, [r2]                                      <== NOT EXECUTED
    22fc:	e2833001 	add	r3, r3, #1	; 0x1                              <== NOT EXECUTED
    2300:	e5823000 	str	r3, [r2]                                      <== NOT EXECUTED
            _Thread_Disable_dispatch();       /* disable task switches */
                                                                      
        /* don't aggravate things */                                  
        if (rtems_panic_in_progress > 2)                              
    2304:	e59f3140 	ldr	r3, [pc, #320]	; 244c <rtems_verror+0x188>    <== NOT EXECUTED
    2308:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    230c:	e3530002 	cmp	r3, #2	; 0x2                                  <== NOT EXECUTED
    2310:	ca00004b 	bgt	2444 <rtems_verror+0x180>                     <== NOT EXECUTED
            return 0;                                                 
    }                                                                 
                                                                      
    (void) fflush(stdout);  	    /* in case stdout/stderr same */     
    2314:	e59f3138 	ldr	r3, [pc, #312]	; 2454 <rtems_verror+0x190>    <== NOT EXECUTED
    2318:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    231c:	e5930008 	ldr	r0, [r3, #8]                                  <== NOT EXECUTED
    2320:	eb0028c2 	bl	c630 <fflush>                                  <== NOT EXECUTED
                                                                      
    status = error_flag & ~RTEMS_ERROR_MASK;                          
    if (error_flag & RTEMS_ERROR_ERRNO)     /* include errno? */      
    2324:	e2180101 	ands	r0, r8, #1073741824	; 0x40000000             <== NOT EXECUTED
            return 0;                                                 
    }                                                                 
                                                                      
    (void) fflush(stdout);  	    /* in case stdout/stderr same */     
                                                                      
    status = error_flag & ~RTEMS_ERROR_MASK;                          
    2328:	e3c84207 	bic	r4, r8, #1879048192	; 0x70000000              <== NOT EXECUTED
    if (error_flag & RTEMS_ERROR_ERRNO)     /* include errno? */      
    232c:	01a07000 	moveq	r7, r0                                      <== NOT EXECUTED
    2330:	0a000001 	beq	233c <rtems_verror+0x78>                      <== NOT EXECUTED
        local_errno = errno;                                          
    2334:	eb0027fd 	bl	c330 <__errno>                                 <== NOT EXECUTED
    2338:	e5907000 	ldr	r7, [r0]                                      <== NOT EXECUTED
    #if defined(RTEMS_MULTIPROCESSING)                                
      if (_System_state_Is_multiprocessing)                           
        fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node);
    #endif                                                            
                                                                      
    chars_written += vfprintf(stderr, printf_format, arglist);        
    233c:	e59f6110 	ldr	r6, [pc, #272]	; 2454 <rtems_verror+0x190>    <== NOT EXECUTED
    2340:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
    2344:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    2348:	e593000c 	ldr	r0, [r3, #12]                                 <== NOT EXECUTED
    234c:	e1a0200a 	mov	r2, sl                                        <== NOT EXECUTED
    2350:	eb003d37 	bl	11834 <vfprintf>                               <== NOT EXECUTED
                                                                      
    if (status)                                                       
    2354:	e3540000 	cmp	r4, #0	; 0x0                                  <== NOT EXECUTED
    #if defined(RTEMS_MULTIPROCESSING)                                
      if (_System_state_Is_multiprocessing)                           
        fprintf(stderr, "[%" PRIu32 "] ", _Configuration_MP_table->node);
    #endif                                                            
                                                                      
    chars_written += vfprintf(stderr, printf_format, arglist);        
    2358:	e1a05000 	mov	r5, r0                                        <== NOT EXECUTED
                                                                      
    if (status)                                                       
    235c:	0a000009 	beq	2388 <rtems_verror+0xc4>                      <== NOT EXECUTED
        chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status));
    2360:	e5963000 	ldr	r3, [r6]                                      <== NOT EXECUTED
const char *                                                          
rtems_status_text(                                                    
    rtems_status_code status                                          
)                                                                     
{                                                                     
    return rtems_assoc_name_by_local(rtems_status_assoc, status);     
    2364:	e1a01004 	mov	r1, r4                                        <== NOT EXECUTED
    2368:	e59f00e8 	ldr	r0, [pc, #232]	; 2458 <rtems_verror+0x194>    <== NOT EXECUTED
    #endif                                                            
                                                                      
    chars_written += vfprintf(stderr, printf_format, arglist);        
                                                                      
    if (status)                                                       
        chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status));
    236c:	e593400c 	ldr	r4, [r3, #12]                                 <== NOT EXECUTED
const char *                                                          
rtems_status_text(                                                    
    rtems_status_code status                                          
)                                                                     
{                                                                     
    return rtems_assoc_name_by_local(rtems_status_assoc, status);     
    2370:	eb001faa 	bl	a220 <rtems_assoc_name_by_local>               <== NOT EXECUTED
    #endif                                                            
                                                                      
    chars_written += vfprintf(stderr, printf_format, arglist);        
                                                                      
    if (status)                                                       
        chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status));
    2374:	e59f10e0 	ldr	r1, [pc, #224]	; 245c <rtems_verror+0x198>    <== NOT EXECUTED
const char *                                                          
rtems_status_text(                                                    
    rtems_status_code status                                          
)                                                                     
{                                                                     
    return rtems_assoc_name_by_local(rtems_status_assoc, status);     
    2378:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
    #endif                                                            
                                                                      
    chars_written += vfprintf(stderr, printf_format, arglist);        
                                                                      
    if (status)                                                       
        chars_written += fprintf(stderr, " (status: %s)", rtems_status_text(status));
    237c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    2380:	eb002983 	bl	c994 <fprintf>                                 <== NOT EXECUTED
    2384:	e0855000 	add	r5, r5, r0                                    <== NOT EXECUTED
                                                                      
    if (local_errno)                                                  
    2388:	e3570000 	cmp	r7, #0	; 0x0                                  <== NOT EXECUTED
    238c:	0a000015 	beq	23e8 <rtems_verror+0x124>                     <== NOT EXECUTED
    {                                                                 
      if ((local_errno > 0) && *strerror(local_errno))                
    2390:	da00000d 	ble	23cc <rtems_verror+0x108>                     <== NOT EXECUTED
    2394:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    2398:	eb002d7c 	bl	d990 <strerror>                                <== NOT EXECUTED
    239c:	e5d03000 	ldrb	r3, [r0]                                     <== NOT EXECUTED
    23a0:	e3530000 	cmp	r3, #0	; 0x0                                  <== NOT EXECUTED
    23a4:	0a000008 	beq	23cc <rtems_verror+0x108>                     <== NOT EXECUTED
        chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno));
    23a8:	e59f30a4 	ldr	r3, [pc, #164]	; 2454 <rtems_verror+0x190>    <== NOT EXECUTED
    23ac:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    23b0:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    23b4:	e593400c 	ldr	r4, [r3, #12]                                 <== NOT EXECUTED
    23b8:	eb002d74 	bl	d990 <strerror>                                <== NOT EXECUTED
    23bc:	e59f109c 	ldr	r1, [pc, #156]	; 2460 <rtems_verror+0x19c>    <== NOT EXECUTED
    23c0:	e1a02000 	mov	r2, r0                                        <== NOT EXECUTED
    23c4:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    23c8:	ea000004 	b	23e0 <rtems_verror+0x11c>                       <== NOT EXECUTED
      else                                                            
        chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno);
    23cc:	e59f3080 	ldr	r3, [pc, #128]	; 2454 <rtems_verror+0x190>    <== NOT EXECUTED
    23d0:	e5933000 	ldr	r3, [r3]                                      <== NOT EXECUTED
    23d4:	e59f1088 	ldr	r1, [pc, #136]	; 2464 <rtems_verror+0x1a0>    <== NOT EXECUTED
    23d8:	e593000c 	ldr	r0, [r3, #12]                                 <== NOT EXECUTED
    23dc:	e1a02007 	mov	r2, r7                                        <== NOT EXECUTED
    23e0:	eb00296b 	bl	c994 <fprintf>                                 <== NOT EXECUTED
    23e4:	e0855000 	add	r5, r5, r0                                    <== NOT EXECUTED
    }                                                                 
                                                                      
    chars_written += fprintf(stderr, "\n");                           
    23e8:	e59f4064 	ldr	r4, [pc, #100]	; 2454 <rtems_verror+0x190>    <== NOT EXECUTED
    23ec:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
    23f0:	e59f1070 	ldr	r1, [pc, #112]	; 2468 <rtems_verror+0x1a4>    <== NOT EXECUTED
    23f4:	e593000c 	ldr	r0, [r3, #12]                                 <== NOT EXECUTED
    23f8:	eb002965 	bl	c994 <fprintf>                                 <== NOT EXECUTED
                                                                      
    (void) fflush(stderr);                                            
    23fc:	e5943000 	ldr	r3, [r4]                                      <== NOT EXECUTED
        chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno));
      else                                                            
        chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno);
    }                                                                 
                                                                      
    chars_written += fprintf(stderr, "\n");                           
    2400:	e1a06000 	mov	r6, r0                                        <== NOT EXECUTED
                                                                      
    (void) fflush(stderr);                                            
    2404:	e593000c 	ldr	r0, [r3, #12]                                 <== NOT EXECUTED
    2408:	eb002888 	bl	c630 <fflush>                                  <== NOT EXECUTED
                                                                      
    if (error_flag & (RTEMS_ERROR_PANIC | RTEMS_ERROR_ABORT))         
    240c:	e3180203 	tst	r8, #805306368	; 0x30000000                   <== NOT EXECUTED
        chars_written += fprintf(stderr, " (errno: %s)", strerror(local_errno));
      else                                                            
        chars_written += fprintf(stderr, " (unknown errno=%d)", local_errno);
    }                                                                 
                                                                      
    chars_written += fprintf(stderr, "\n");                           
    2410:	00860005 	addeq	r0, r6, r5                                  <== NOT EXECUTED
                                                                      
    (void) fflush(stderr);                                            
                                                                      
    if (error_flag & (RTEMS_ERROR_PANIC | RTEMS_ERROR_ABORT))         
    2414:	08bd87f0 	popeq	{r4, r5, r6, r7, r8, r9, sl, pc}            <== NOT EXECUTED
    {                                                                 
        if (error_flag & RTEMS_ERROR_PANIC)                           
    2418:	e3590000 	cmp	r9, #0	; 0x0                                  <== NOT EXECUTED
    241c:	0a000004 	beq	2434 <rtems_verror+0x170>                     <== NOT EXECUTED
        {                                                             
            rtems_error(0, "fatal error, exiting");                   
    2420:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
    2424:	e59f1040 	ldr	r1, [pc, #64]	; 246c <rtems_verror+0x1a8>     <== NOT EXECUTED
    2428:	eb00001a 	bl	2498 <rtems_error>                             <== NOT EXECUTED
            _exit(local_errno);                                       
    242c:	e1a00007 	mov	r0, r7                                        <== NOT EXECUTED
    2430:	eb00016b 	bl	29e4 <_exit>                                   <== NOT EXECUTED
        }                                                             
        else                                                          
        {                                                             
            rtems_error(0, "fatal error, aborting");                  
    2434:	e59f1034 	ldr	r1, [pc, #52]	; 2470 <rtems_verror+0x1ac>     <== NOT EXECUTED
    2438:	e1a00009 	mov	r0, r9                                        <== NOT EXECUTED
    243c:	eb000015 	bl	2498 <rtems_error>                             <== NOT EXECUTED
            abort();                                                  
    2440:	eb0027b1 	bl	c30c <abort>                                   <== NOT EXECUTED
    2444:	e3a00000 	mov	r0, #0	; 0x0                                  <== NOT EXECUTED
        }                                                             
    }                                                                 
    return chars_written;                                             
}                                                                     
    2448:	e8bd87f0 	pop	{r4, r5, r6, r7, r8, r9, sl, pc}              <== NOT EXECUTED
                                                                      

00002b18 <siproc>: int i; /* * Obtain output semaphore if character will be echoed */ if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
    2b18:	e591303c 	ldr	r3, [r1, #60]                                 <== NOT EXECUTED
    2b1c:	e59f2050 	ldr	r2, [pc, #80]	; 2b74 <siproc+0x5c>            <== NOT EXECUTED
    2b20:	e0032002 	and	r2, r3, r2                                    <== NOT EXECUTED
    2b24:	e3520000 	cmp	r2, #0	; 0x0                                  <== NOT EXECUTED
/*                                                                    
 * Process input character, with semaphore.                           
 */                                                                   
static int                                                            
siproc (unsigned char c, struct rtems_termios_tty *tty)               
{                                                                     
    2b28:	e92d4030 	push	{r4, r5, lr}                                 <== NOT EXECUTED
    2b2c:	e1a05001 	mov	r5, r1                                        <== NOT EXECUTED
    2b30:	e20040ff 	and	r4, r0, #255	; 0xff                           <== NOT EXECUTED
	int i;                                                               
                                                                      
	/*                                                                   
	 * Obtain output semaphore if character will be echoed               
	 */                                                                  
	if (tty->termios.c_lflag & (ECHO|ECHOE|ECHOK|ECHONL|ECHOPRT|ECHOCTL|ECHOKE)) {
    2b34:	0a00000b 	beq	2b68 <siproc+0x50>                            <== NOT EXECUTED
		rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);   
    2b38:	e3a01000 	mov	r1, #0	; 0x0                                  <== NOT EXECUTED
    2b3c:	e1a02001 	mov	r2, r1                                        <== NOT EXECUTED
    2b40:	e5950018 	ldr	r0, [r5, #24]                                 <== NOT EXECUTED
    2b44:	eb0005fd 	bl	4340 <rtems_semaphore_obtain>                  <== NOT EXECUTED
		i = iproc (c, tty);                                                 
    2b48:	e1a01005 	mov	r1, r5                                        <== NOT EXECUTED
    2b4c:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    2b50:	ebffff8b 	bl	2984 <iproc>                                   <== NOT EXECUTED
    2b54:	e1a04000 	mov	r4, r0                                        <== NOT EXECUTED
		rtems_semaphore_release (tty->osem);                                
    2b58:	e5950018 	ldr	r0, [r5, #24]                                 <== NOT EXECUTED
    2b5c:	eb00063d 	bl	4458 <rtems_semaphore_release>                 <== NOT EXECUTED
	}                                                                    
	else {                                                               
		i = iproc (c, tty);                                                 
	}                                                                    
	return i;                                                            
}                                                                     
    2b60:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
    2b64:	e8bd8030 	pop	{r4, r5, pc}                                  <== NOT EXECUTED
		rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);   
		i = iproc (c, tty);                                                 
		rtems_semaphore_release (tty->osem);                                
	}                                                                    
	else {                                                               
		i = iproc (c, tty);                                                 
    2b68:	e1a00004 	mov	r0, r4                                        <== NOT EXECUTED
	}                                                                    
	return i;                                                            
}                                                                     
    2b6c:	e8bd4030 	pop	{r4, r5, lr}                                  <== NOT EXECUTED
		rtems_semaphore_obtain (tty->osem, RTEMS_WAIT, RTEMS_NO_TIMEOUT);   
		i = iproc (c, tty);                                                 
		rtems_semaphore_release (tty->osem);                                
	}                                                                    
	else {                                                               
		i = iproc (c, tty);                                                 
    2b70:	eaffff83 	b	2984 <iproc>                                    <== NOT EXECUTED
                                                                      

00001c38 <vprintk>: */ void vprintk( const char *fmt, va_list ap ) {
    1c38:	e92d4ff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, lr}         
    1c3c:	e1a08000 	mov	r8, r0                                        
    1c40:	e24dd018 	sub	sp, sp, #24	; 0x18                            
    1c44:	e1a09001 	mov	r9, r1                                        
                                                                      
      if (base)                                                       
        printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int),
                 base, sign, width, lead);                            
    } else {                                                          
      BSP_output_char(*fmt);                                          
    1c48:	e59fb2bc 	ldr	fp, [pc, #700]	; 1f0c <vprintk+0x2d4>         
    1c4c:	ea0000a9 	b	1ef8 <vprintk+0x2c0>                            
    base  = 0;                                                        
    sign = 0;                                                         
    width = 0;                                                        
    minus = 0;                                                        
    lead = ' ';                                                       
    if (*fmt == '%') {                                                
    1c50:	e3500025 	cmp	r0, #37	; 0x25                                
    1c54:	1a0000a4 	bne	1eec <vprintk+0x2b4>                          
      fmt++;                                                          
      if (*fmt == '0' ) {                                             
    1c58:	e5f83001 	ldrb	r3, [r8, #1]!                                
    1c5c:	e3530030 	cmp	r3, #48	; 0x30                                
    1c60:	13a02020 	movne	r2, #32	; 0x20                              
    1c64:	158d2000 	strne	r2, [sp]                                    
        lead = '0';                                                   
        fmt++;                                                        
    1c68:	058d3000 	streq	r3, [sp]                                    
    1c6c:	02888001 	addeq	r8, r8, #1	; 0x1                            
      }                                                               
      if (*fmt == '-' ) {                                             
    1c70:	e5d83000 	ldrb	r3, [r8]                                     
    1c74:	e353002d 	cmp	r3, #45	; 0x2d                                
    1c78:	13a06000 	movne	r6, #0	; 0x0                                
        minus = 1;                                                    
        fmt++;                                                        
    1c7c:	02888001 	addeq	r8, r8, #1	; 0x1                            
    1c80:	03a06001 	moveq	r6, #1	; 0x1                                
    1c84:	e3a0a000 	mov	sl, #0	; 0x0                                  
    1c88:	ea000002 	b	1c98 <vprintk+0x60>                             
      }                                                               
      while (*fmt >= '0' && *fmt <= '9' ) {                           
        width *= 10;                                                  
        width += (*fmt - '0');                                        
    1c8c:	e3a0300a 	mov	r3, #10	; 0xa                                 
    1c90:	e02a2a93 	mla	sl, r3, sl, r2                                
        fmt++;                                                        
    1c94:	e2888001 	add	r8, r8, #1	; 0x1                              
      }                                                               
      if (*fmt == '-' ) {                                             
        minus = 1;                                                    
        fmt++;                                                        
      }                                                               
      while (*fmt >= '0' && *fmt <= '9' ) {                           
    1c98:	e5d80000 	ldrb	r0, [r8]                                     
    1c9c:	e2402030 	sub	r2, r0, #48	; 0x30                            
    1ca0:	e20230ff 	and	r3, r2, #255	; 0xff                           
    1ca4:	e3530009 	cmp	r3, #9	; 0x9                                  
    1ca8:	9afffff7 	bls	1c8c <vprintk+0x54>                           
        width *= 10;                                                  
        width += (*fmt - '0');                                        
        fmt++;                                                        
      }                                                               
                                                                      
      if ((c = *fmt) == 'l') {                                        
    1cac:	e350006c 	cmp	r0, #108	; 0x6c                               
        lflag = 1;                                                    
        c = *++fmt;                                                   
    1cb0:	05f80001 	ldrbeq	r0, [r8, #1]!                              
      }                                                               
      switch (c) {                                                    
    1cb4:	e3500064 	cmp	r0, #100	; 0x64                               
    1cb8:	0a00001e 	beq	1d38 <vprintk+0x100>                          
    1cbc:	8a00000e 	bhi	1cfc <vprintk+0xc4>                           
    1cc0:	e350004f 	cmp	r0, #79	; 0x4f                                
    1cc4:	0a00004f 	beq	1e08 <vprintk+0x1d0>                          
    1cc8:	8a000004 	bhi	1ce0 <vprintk+0xa8>                           
    1ccc:	e3500044 	cmp	r0, #68	; 0x44                                
    1cd0:	0a000018 	beq	1d38 <vprintk+0x100>                          
    1cd4:	e3500049 	cmp	r0, #73	; 0x49                                
    1cd8:	1a000083 	bne	1eec <vprintk+0x2b4>                          
    1cdc:	ea000015 	b	1d38 <vprintk+0x100>                            <== NOT EXECUTED
    1ce0:	e3500058 	cmp	r0, #88	; 0x58                                <== NOT EXECUTED
    1ce4:	0a00004a 	beq	1e14 <vprintk+0x1dc>                          <== NOT EXECUTED
    1ce8:	e3500063 	cmp	r0, #99	; 0x63                                <== NOT EXECUTED
    1cec:	0a00003f 	beq	1df0 <vprintk+0x1b8>                          <== NOT EXECUTED
    1cf0:	e3500055 	cmp	r0, #85	; 0x55                                <== NOT EXECUTED
    1cf4:	1a00007c 	bne	1eec <vprintk+0x2b4>                          <== NOT EXECUTED
    1cf8:	ea000010 	b	1d40 <vprintk+0x108>                            <== NOT EXECUTED
    1cfc:	e3500070 	cmp	r0, #112	; 0x70                               
    1d00:	0a000043 	beq	1e14 <vprintk+0x1dc>                          
    1d04:	8a000004 	bhi	1d1c <vprintk+0xe4>                           
    1d08:	e3500069 	cmp	r0, #105	; 0x69                               <== NOT EXECUTED
    1d0c:	0a000009 	beq	1d38 <vprintk+0x100>                          <== NOT EXECUTED
    1d10:	e350006f 	cmp	r0, #111	; 0x6f                               <== NOT EXECUTED
    1d14:	1a000074 	bne	1eec <vprintk+0x2b4>                          <== NOT EXECUTED
    1d18:	ea00003a 	b	1e08 <vprintk+0x1d0>                            <== NOT EXECUTED
    1d1c:	e3500075 	cmp	r0, #117	; 0x75                               
    1d20:	0a000006 	beq	1d40 <vprintk+0x108>                          
    1d24:	e3500078 	cmp	r0, #120	; 0x78                               
    1d28:	0a000039 	beq	1e14 <vprintk+0x1dc>                          
    1d2c:	e3500073 	cmp	r0, #115	; 0x73                               
    1d30:	1a00006d 	bne	1eec <vprintk+0x2b4>                          
    1d34:	ea000004 	b	1d4c <vprintk+0x114>                            
    1d38:	e3a03001 	mov	r3, #1	; 0x1                                  
    1d3c:	ea000000 	b	1d44 <vprintk+0x10c>                            
    1d40:	e3a03000 	mov	r3, #0	; 0x0                                  
    1d44:	e3a0700a 	mov	r7, #10	; 0xa                                 
    1d48:	ea000033 	b	1e1c <vprintk+0x1e4>                            
        case 'p':           base = 16; sign = 0; break;               
        case 's':                                                     
          { int i, len;                                               
            char *s;                                                  
                                                                      
            str = va_arg(ap, char *);                                 
    1d4c:	e5997000 	ldr	r7, [r9]                                      
    1d50:	e3a05000 	mov	r5, #0	; 0x0                                  
    1d54:	e2899004 	add	r9, r9, #4	; 0x4                              
    1d58:	ea000000 	b	1d60 <vprintk+0x128>                            
                                                                      
            /* calculate length of string */                          
            for ( len=0, s=str ; *s ; len++, s++ )                    
    1d5c:	e2855001 	add	r5, r5, #1	; 0x1                              
    1d60:	e7d73005 	ldrb	r3, [r7, r5]                                 
    1d64:	e3530000 	cmp	r3, #0	; 0x0                                  
    1d68:	1afffffb 	bne	1d5c <vprintk+0x124>                          
              ;                                                       
                                                                      
            /* leading spaces */                                      
            if ( !minus )                                             
    1d6c:	e3560000 	cmp	r6, #0	; 0x0                                  
    1d70:	01a04005 	moveq	r4, r5                                      
    1d74:	0a000002 	beq	1d84 <vprintk+0x14c>                          
    1d78:	ea000005 	b	1d94 <vprintk+0x15c>                            
              for ( i=len ; i<width ; i++ )                           
                BSP_output_char(' ');                                 
    1d7c:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1d80:	e59bf000 	ldr	pc, [fp]                                      <== NOT EXECUTED
            for ( len=0, s=str ; *s ; len++, s++ )                    
              ;                                                       
                                                                      
            /* leading spaces */                                      
            if ( !minus )                                             
              for ( i=len ; i<width ; i++ )                           
    1d84:	e154000a 	cmp	r4, sl                                        
                BSP_output_char(' ');                                 
    1d88:	e3a00020 	mov	r0, #32	; 0x20                                
            for ( len=0, s=str ; *s ; len++, s++ )                    
              ;                                                       
                                                                      
            /* leading spaces */                                      
            if ( !minus )                                             
              for ( i=len ; i<width ; i++ )                           
    1d8c:	e2844001 	add	r4, r4, #1	; 0x1                              
    1d90:	bafffff9 	blt	1d7c <vprintk+0x144>                          
                BSP_output_char(' ');                                 
                                                                      
	    /* no width option */                                            
	    if (width == 0) {                                                
    1d94:	e35a0000 	cmp	sl, #0	; 0x0                                  
    1d98:	01a0a005 	moveq	sl, r5                                      
		    width = len;                                                    
	    }                                                                
                                                                      
            /* output the string */                                   
            for ( i=0 ; i<width && *str ; str++ )                     
    1d9c:	e35a0000 	cmp	sl, #0	; 0x0                                  
    1da0:	c3a04000 	movgt	r4, #0	; 0x0                                
    1da4:	da000006 	ble	1dc4 <vprintk+0x18c>                          
    1da8:	ea000001 	b	1db4 <vprintk+0x17c>                            
              BSP_output_char(*str);                                  
    1dac:	e1a0e00f 	mov	lr, pc                                        
    1db0:	e59bf000 	ldr	pc, [fp]                                      
	    if (width == 0) {                                                
		    width = len;                                                    
	    }                                                                
                                                                      
            /* output the string */                                   
            for ( i=0 ; i<width && *str ; str++ )                     
    1db4:	e7d73004 	ldrb	r3, [r7, r4]                                 
    1db8:	e2530000 	subs	r0, r3, #0	; 0x0                             
    1dbc:	e2844001 	add	r4, r4, #1	; 0x1                              
    1dc0:	1afffff9 	bne	1dac <vprintk+0x174>                          
              BSP_output_char(*str);                                  
                                                                      
            /* trailing spaces */                                     
            if ( minus )                                              
    1dc4:	e3560000 	cmp	r6, #0	; 0x0                                  
    1dc8:	11a04005 	movne	r4, r5                                      
    1dcc:	1a000002 	bne	1ddc <vprintk+0x1a4>                          
    1dd0:	ea000047 	b	1ef4 <vprintk+0x2bc>                            
              for ( i=len ; i<width ; i++ )                           
                BSP_output_char(' ');                                 
    1dd4:	e1a0e00f 	mov	lr, pc                                        
    1dd8:	e59bf000 	ldr	pc, [fp]                                      
            for ( i=0 ; i<width && *str ; str++ )                     
              BSP_output_char(*str);                                  
                                                                      
            /* trailing spaces */                                     
            if ( minus )                                              
              for ( i=len ; i<width ; i++ )                           
    1ddc:	e154000a 	cmp	r4, sl                                        
                BSP_output_char(' ');                                 
    1de0:	e3a00020 	mov	r0, #32	; 0x20                                
            for ( i=0 ; i<width && *str ; str++ )                     
              BSP_output_char(*str);                                  
                                                                      
            /* trailing spaces */                                     
            if ( minus )                                              
              for ( i=len ; i<width ; i++ )                           
    1de4:	e2844001 	add	r4, r4, #1	; 0x1                              
    1de8:	bafffff9 	blt	1dd4 <vprintk+0x19c>                          
    1dec:	ea000040 	b	1ef4 <vprintk+0x2bc>                            
                BSP_output_char(' ');                                 
          }                                                           
          break;                                                      
        case 'c':                                                     
          BSP_output_char(va_arg(ap, int));                           
    1df0:	e5d90000 	ldrb	r0, [r9]                                     <== NOT EXECUTED
    1df4:	e2894004 	add	r4, r9, #4	; 0x4                              <== NOT EXECUTED
    1df8:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1dfc:	e59bf000 	ldr	pc, [fp]                                      <== NOT EXECUTED
    1e00:	e1a09004 	mov	r9, r4                                        <== NOT EXECUTED
    1e04:	ea00003a 	b	1ef4 <vprintk+0x2bc>                            <== NOT EXECUTED
          break;                                                      
        default:                                                      
          BSP_output_char(c);                                         
    1e08:	e3a03000 	mov	r3, #0	; 0x0                                  <== NOT EXECUTED
    1e0c:	e3a07008 	mov	r7, #8	; 0x8                                  <== NOT EXECUTED
    1e10:	ea000001 	b	1e1c <vprintk+0x1e4>                            <== NOT EXECUTED
    1e14:	e3a03000 	mov	r3, #0	; 0x0                                  
    1e18:	e3a07010 	mov	r7, #16	; 0x10                                
          break;                                                      
      } /* switch*/                                                   
                                                                      
      if (base)                                                       
        printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int),
    1e1c:	e5994000 	ldr	r4, [r9]                                      
    1e20:	e2892004 	add	r2, r9, #4	; 0x4                              
{                                                                     
  long unsigned int n;                                                
  int               count;                                            
  char              toPrint[20];                                      
                                                                      
  if ( (sign == 1) && ((long)num <  0) ) {                            
    1e24:	e0133fa4 	ands	r3, r3, r4, lsr #31                          
          BSP_output_char(c);                                         
          break;                                                      
      } /* switch*/                                                   
                                                                      
      if (base)                                                       
        printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int),
    1e28:	e1a09002 	mov	r9, r2                                        
{                                                                     
  long unsigned int n;                                                
  int               count;                                            
  char              toPrint[20];                                      
                                                                      
  if ( (sign == 1) && ((long)num <  0) ) {                            
    1e2c:	0a000005 	beq	1e48 <vprintk+0x210>                          
    BSP_output_char('-');                                             
    1e30:	e3a0002d 	mov	r0, #45	; 0x2d                                <== NOT EXECUTED
    1e34:	e1a0e00f 	mov	lr, pc                                        <== NOT EXECUTED
    1e38:	e59bf000 	ldr	pc, [fp]                                      <== NOT EXECUTED
    num = -num;                                                       
    if (maxwidth) maxwidth--;                                         
    1e3c:	e35a0000 	cmp	sl, #0	; 0x0                                  <== NOT EXECUTED
  int               count;                                            
  char              toPrint[20];                                      
                                                                      
  if ( (sign == 1) && ((long)num <  0) ) {                            
    BSP_output_char('-');                                             
    num = -num;                                                       
    1e40:	e2644000 	rsb	r4, r4, #0	; 0x0                              <== NOT EXECUTED
    if (maxwidth) maxwidth--;                                         
    1e44:	124aa001 	subne	sl, sl, #1	; 0x1                            <== NOT EXECUTED
    1e48:	e3a05000 	mov	r5, #0	; 0x0                                  
    1e4c:	ea000005 	b	1e68 <vprintk+0x230>                            
  }                                                                   
                                                                      
  count = 0;                                                          
  while ((n = num / base) > 0) {                                      
    toPrint[count++] = (num - (n*base));                              
    1e50:	e0030097 	mul	r3, r7, r0                                    
    1e54:	e28d2004 	add	r2, sp, #4	; 0x4                              
    1e58:	e0633004 	rsb	r3, r3, r4                                    
    1e5c:	e7c23005 	strb	r3, [r2, r5]                                 
    1e60:	e1a04000 	mov	r4, r0                                        
    1e64:	e1a05006 	mov	r5, r6                                        
    num = -num;                                                       
    if (maxwidth) maxwidth--;                                         
  }                                                                   
                                                                      
  count = 0;                                                          
  while ((n = num / base) > 0) {                                      
    1e68:	e1a00004 	mov	r0, r4                                        
    1e6c:	e1a01007 	mov	r1, r7                                        
    1e70:	eb003d92 	bl	114c0 <__aeabi_uidiv>                          
    1e74:	e3500000 	cmp	r0, #0	; 0x0                                  
    1e78:	e2856001 	add	r6, r5, #1	; 0x1                              
    1e7c:	1afffff3 	bne	1e50 <vprintk+0x218>                          
    toPrint[count++] = (num - (n*base));                              
    num = n;                                                          
  }                                                                   
  toPrint[count++] = num;                                             
    1e80:	e28d2018 	add	r2, sp, #24	; 0x18                            
    1e84:	e0823005 	add	r3, r2, r5                                    
    1e88:	e5434014 	strb	r4, [r3, #-20]                               
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    BSP_output_char(lead);                                            
    1e8c:	e59d3000 	ldr	r3, [sp]                                      
    toPrint[count++] = (num - (n*base));                              
    num = n;                                                          
  }                                                                   
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    1e90:	e1a0400a 	mov	r4, sl                                        
    BSP_output_char(lead);                                            
    1e94:	e20350ff 	and	r5, r3, #255	; 0xff                           
    1e98:	ea000001 	b	1ea4 <vprintk+0x26c>                            
    1e9c:	e1a0e00f 	mov	lr, pc                                        
    1ea0:	e59bf000 	ldr	pc, [fp]                                      
    toPrint[count++] = (num - (n*base));                              
    num = n;                                                          
  }                                                                   
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    1ea4:	e1540006 	cmp	r4, r6                                        
    BSP_output_char(lead);                                            
    1ea8:	e1a00005 	mov	r0, r5                                        
    toPrint[count++] = (num - (n*base));                              
    num = n;                                                          
  }                                                                   
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    1eac:	e2444001 	sub	r4, r4, #1	; 0x1                              
    1eb0:	8afffff9 	bhi	1e9c <vprintk+0x264>                          
    BSP_output_char(lead);                                            
                                                                      
  for (n = 0; n < count; n++) {                                       
    BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 
    1eb4:	e28d2018 	add	r2, sp, #24	; 0x18                            
    toPrint[count++] = (num - (n*base));                              
    num = n;                                                          
  }                                                                   
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    1eb8:	e3a04000 	mov	r4, #0	; 0x0                                  
    BSP_output_char(lead);                                            
                                                                      
  for (n = 0; n < count; n++) {                                       
    BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 
    1ebc:	e0825006 	add	r5, r2, r6                                    
    1ec0:	ea000004 	b	1ed8 <vprintk+0x2a0>                            
    1ec4:	e5533015 	ldrb	r3, [r3, #-21]                               
    1ec8:	e59f2040 	ldr	r2, [pc, #64]	; 1f10 <vprintk+0x2d8>          
    1ecc:	e7d20003 	ldrb	r0, [r2, r3]                                 
    1ed0:	e1a0e00f 	mov	lr, pc                                        
    1ed4:	e59bf000 	ldr	pc, [fp]                                      
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    BSP_output_char(lead);                                            
                                                                      
  for (n = 0; n < count; n++) {                                       
    1ed8:	e1540006 	cmp	r4, r6                                        
    BSP_output_char("0123456789ABCDEF"[(int)(toPrint[count-(n+1)])]); 
    1edc:	e0643005 	rsb	r3, r4, r5                                    
  toPrint[count++] = num;                                             
                                                                      
  for (n=maxwidth ; n > count; n-- )                                  
    BSP_output_char(lead);                                            
                                                                      
  for (n = 0; n < count; n++) {                                       
    1ee0:	e2844001 	add	r4, r4, #1	; 0x1                              
    1ee4:	3afffff6 	bcc	1ec4 <vprintk+0x28c>                          
    1ee8:	ea000001 	b	1ef4 <vprintk+0x2bc>                            
                                                                      
      if (base)                                                       
        printNum(lflag ? va_arg(ap, long int) : (long int)va_arg(ap, int),
                 base, sign, width, lead);                            
    } else {                                                          
      BSP_output_char(*fmt);                                          
    1eec:	e1a0e00f 	mov	lr, pc                                        
    1ef0:	e59bf000 	ldr	pc, [fp]                                      
)                                                                     
{                                                                     
  char     c, *str;                                                   
  int      lflag, base, sign, width, lead, minus;                     
                                                                      
  for (; *fmt != '\0'; fmt++) {                                       
    1ef4:	e2888001 	add	r8, r8, #1	; 0x1                              
    1ef8:	e5d80000 	ldrb	r0, [r8]                                     
    1efc:	e3500000 	cmp	r0, #0	; 0x0                                  
    1f00:	1affff52 	bne	1c50 <vprintk+0x18>                           
                 base, sign, width, lead);                            
    } else {                                                          
      BSP_output_char(*fmt);                                          
    }                                                                 
  }                                                                   
}                                                                     
    1f04:	e28dd018 	add	sp, sp, #24	; 0x18                            
    1f08:	e8bd8ff0 	pop	{r4, r5, r6, r7, r8, r9, sl, fp, pc}          
                                                                      

00013104 <write>: ) { ssize_t rc; rtems_libio_t *iop; rtems_libio_check_fd( fd );
   13104:	e59f30ac 	ldr	r3, [pc, #172]	; 131b8 <write+0xb4>           
   13108:	e5933000 	ldr	r3, [r3]                                      
   1310c:	e1500003 	cmp	r0, r3                                        
ssize_t write(                                                        
  int         fd,                                                     
  const void *buffer,                                                 
  size_t      count                                                   
)                                                                     
{                                                                     
   13110:	e92d4070 	push	{r4, r5, r6, lr}                             
   13114:	e1a0c000 	mov	ip, r0                                        
   13118:	e1a06001 	mov	r6, r1                                        
   1311c:	e1a05002 	mov	r5, r2                                        
  ssize_t  rc;                                                        
  rtems_libio_t     *iop;                                             
                                                                      
  rtems_libio_check_fd( fd );                                         
   13120:	2a000010 	bcs	13168 <write+0x64>                            
  iop = rtems_libio_iop( fd );                                        
   13124:	e59f3090 	ldr	r3, [pc, #144]	; 131bc <write+0xb8>           
   13128:	e5930000 	ldr	r0, [r3]                                      
   1312c:	e3a03034 	mov	r3, #52	; 0x34                                
   13130:	e0240c93 	mla	r4, r3, ip, r0                                
  rtems_libio_check_is_open( iop );                                   
   13134:	e594300c 	ldr	r3, [r4, #12]                                 
   13138:	e3130c01 	tst	r3, #256	; 0x100                              
   1313c:	0a000009 	beq	13168 <write+0x64>                            
  rtems_libio_check_buffer( buffer );                                 
   13140:	e3510000 	cmp	r1, #0	; 0x0                                  
   13144:	1a000002 	bne	13154 <write+0x50>                            
   13148:	ebffddb1 	bl	a814 <__errno>                                 <== NOT EXECUTED
   1314c:	e3a03016 	mov	r3, #22	; 0x16                                <== NOT EXECUTED
   13150:	ea00000d 	b	1318c <write+0x88>                              <== NOT EXECUTED
  rtems_libio_check_count( count );                                   
   13154:	e3520000 	cmp	r2, #0	; 0x0                                  
   13158:	01a00002 	moveq	r0, r2                                      
   1315c:	08bd8070 	popeq	{r4, r5, r6, pc}                            
  rtems_libio_check_permissions_with_error( iop, LIBIO_FLAGS_WRITE, EBADF );
   13160:	e3130004 	tst	r3, #4	; 0x4                                  
   13164:	1a000002 	bne	13174 <write+0x70>                            
   13168:	ebffdda9 	bl	a814 <__errno>                                 <== NOT EXECUTED
   1316c:	e3a03009 	mov	r3, #9	; 0x9                                  <== NOT EXECUTED
   13170:	ea000005 	b	1318c <write+0x88>                              <== NOT EXECUTED
                                                                      
  /*                                                                  
   *  Now process the write() request.                                
   */                                                                 
                                                                      
  if ( !iop->handlers->write_h )                                      
   13174:	e5943030 	ldr	r3, [r4, #48]                                 
   13178:	e593300c 	ldr	r3, [r3, #12]                                 
   1317c:	e3530000 	cmp	r3, #0	; 0x0                                  
   13180:	1a000004 	bne	13198 <write+0x94>                            
    rtems_set_errno_and_return_minus_one( ENOTSUP );                  
   13184:	ebffdda2 	bl	a814 <__errno>                                 <== NOT EXECUTED
   13188:	e3a03086 	mov	r3, #134	; 0x86                               <== NOT EXECUTED
   1318c:	e5803000 	str	r3, [r0]                                      <== NOT EXECUTED
   13190:	e3e00000 	mvn	r0, #0	; 0x0                                  <== NOT EXECUTED
   13194:	e8bd8070 	pop	{r4, r5, r6, pc}                              <== NOT EXECUTED
                                                                      
  rc = (*iop->handlers->write_h)( iop, buffer, count );               
   13198:	e1a00004 	mov	r0, r4                                        
   1319c:	e1a0e00f 	mov	lr, pc                                        
   131a0:	e12fff13 	bx	r3                                             
                                                                      
  if ( rc > 0 )                                                       
   131a4:	e3500000 	cmp	r0, #0	; 0x0                                  
    iop->offset += rc;                                                
   131a8:	c5943008 	ldrgt	r3, [r4, #8]                                
   131ac:	c0833000 	addgt	r3, r3, r0                                  
   131b0:	c5843008 	strgt	r3, [r4, #8]                                
                                                                      
  return rc;                                                          
}                                                                     
   131b4:	e8bd8070 	pop	{r4, r5, r6, pc}