RTEMS-6
Annotated Report
libimfs
Mon Mar 1 00:18:30 2021

0000000040023070 <IMFS_add_node>:                                                         
#endif                                                                                    
                                                                                          
#include <rtems/imfs.h>                                                                   
                                                                                          
int IMFS_add_node( const char *path, IMFS_jnode_t *node, void *arg )                      
{                                                                                         
    40023070:   a9b47bfd    stp x29, x30, [sp, #-192]!                                    
    40023074:   910003fd    mov x29, sp                                                   
    40023078:   a90153f3    stp x19, x20, [sp, #16]                                       
    4002307c:   aa0103f4    mov x20, x1                                                   
    40023080:   a9025bf5    stp x21, x22, [sp, #32]                                       
    40023084:   aa0003f5    mov x21, x0                                                   
    40023088:   aa0203f6    mov x22, x2                                                   
    4002308c:   f9001bf7    str x23, [sp, #48]                                            
  rtems_filesystem_eval_path_context_t    ctx;                                            
  const rtems_filesystem_location_info_t *currentloc;                                     
  int                                     eval_flags;                                     
  int                                     rv;                                             
                                                                                          
  mode = node->st_mode;                                                                   
    40023090:   b9402437    ldr w23, [x1, #36]                                            
  mode &= ~rtems_filesystem_umask;                                                        
    40023094:   97ffff07    bl  40022cb0 <rtems_current_user_env_get>                     
    40023098:   b9401013    ldr w19, [x0, #16]                                            
    4002309c:   0a3302f3    bic w19, w23, w19                                             
                                                                                          
  switch (mode & S_IFMT) {                                                                
    400230a0:   12140e63    and w3, w19, #0xf000                                          
    400230a4:   7140187f    cmp w3, #0x6, lsl #12                                         
    400230a8:   54000260    b.eq    400230f4 <IMFS_add_node+0x84>  // b.none              <== NEVER TAKEN
    400230ac:   540001e9    b.ls    400230e8 <IMFS_add_node+0x78>  // b.plast             <== ALWAYS TAKEN
    400230b0:   52960003    mov w3, #0xb000                 // #45056                     <== NOT EXECUTED
    400230b4:   0a030263    and w3, w19, w3                                               <== NOT EXECUTED
    400230b8:   7140207f    cmp w3, #0x8, lsl #12                                         <== NOT EXECUTED
    400230bc:   540001c0    b.eq    400230f4 <IMFS_add_node+0x84>  // b.none              <== NOT EXECUTED
    case S_IFIFO:                                                                         
    case S_IFREG:                                                                         
    case S_IFSOCK:                                                                        
      break;                                                                              
    default:                                                                              
      errno = EINVAL;                                                                     
    400230c0:   94002e00    bl  4002e8c0 <__errno>                                        
      return -1;                                                                          
    400230c4:   12800013    mov w19, #0xffffffff                // #-1                    
      errno = EINVAL;                                                                     
    400230c8:   528002c1    mov w1, #0x16                   // #22                        
    400230cc:   b9000001    str w1, [x0]                                                  
    rv = -1;                                                                              
  }                                                                                       
                                                                                          
  rtems_filesystem_eval_path_cleanup( &ctx );                                             
  return rv;                                                                              
}                                                                                         
    400230d0:   2a1303e0    mov w0, w19                                                   
    400230d4:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400230d8:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    400230dc:   f9401bf7    ldr x23, [sp, #48]                                            
    400230e0:   a8cc7bfd    ldp x29, x30, [sp], #192                                      
    400230e4:   d65f03c0    ret                                                           
  switch (mode & S_IFMT) {                                                                
    400230e8:   51400463    sub w3, w3, #0x1, lsl #12                                     
    400230ec:   7213487f    tst w3, #0xffffe000                                           
    400230f0:   54fffe81    b.ne    400230c0 <IMFS_add_node+0x50>  // b.any               
  currentloc = rtems_filesystem_eval_path_start( &ctx, path, eval_flags );                
    400230f4:   aa1503e1    mov x1, x21                                                   
    400230f8:   910163e0    add x0, sp, #0x58                                             
    400230fc:   52800302    mov w2, #0x18                   // #24                        
    40023100:   97fffc88    bl  40022320 <rtems_filesystem_eval_path_start>               
                                                                                          
static inline bool IMFS_is_imfs_instance(                                                 
  const rtems_filesystem_location_info_t *loc                                             
)                                                                                         
{                                                                                         
  return loc->mt_entry->ops->clonenod_h == IMFS_node_clone;                               
    40023104:   f9401400    ldr x0, [x0, #40]                                             
  if ( IMFS_is_imfs_instance( currentloc ) ) {                                            
    40023108:   b0000001    adrp    x1, 40024000 <memfile_read+0xe0>                      
    4002310c:   91114021    add x1, x1, #0x450                                            
    40023110:   f9400c00    ldr x0, [x0, #24]                                             
    40023114:   f9402400    ldr x0, [x0, #72]                                             
    40023118:   eb01001f    cmp x0, x1                                                    
    4002311c:   540001a0    b.eq    40023150 <IMFS_add_node+0xe0>  // b.none              
    rtems_filesystem_eval_path_error( &ctx, ENOTSUP );                                    
    40023120:   910163e0    add x0, sp, #0x58                                             
    rv = -1;                                                                              
    40023124:   12800013    mov w19, #0xffffffff                // #-1                    
    rtems_filesystem_eval_path_error( &ctx, ENOTSUP );                                    
    40023128:   528010c1    mov w1, #0x86                   // #134                       
    4002312c:   97fffc99    bl  40022390 <rtems_filesystem_eval_path_error>               
  rtems_filesystem_eval_path_cleanup( &ctx );                                             
    40023130:   910163e0    add x0, sp, #0x58                                             
    40023134:   97fffcb3    bl  40022400 <rtems_filesystem_eval_path_cleanup>             
}                                                                                         
    40023138:   2a1303e0    mov w0, w19                                                   
    4002313c:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40023140:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40023144:   f9401bf7    ldr x23, [sp, #48]                                            
    40023148:   a8cc7bfd    ldp x29, x30, [sp], #192                                      
    4002314c:   d65f03c0    ret                                                           
    rtems_filesystem_eval_path_set_path( &ctx, node->name, node->namelen );               
    40023150:   79404282    ldrh    w2, [x20, #32]                                        
  ctx->flags = flags;                                                                     
    40023154:   52800c01    mov w1, #0x60                   // #96                        
  ctx->path = path;                                                                       
    40023158:   f9400e83    ldr x3, [x20, #24]                                            
    rtems_filesystem_eval_path_continue( &ctx );                                          
    4002315c:   910163e0    add x0, sp, #0x58                                             
  ctx->pathlen = pathlen;                                                                 
    40023160:   a9058be3    stp x3, x2, [sp, #88]                                         
  ctx->flags = flags;                                                                     
    40023164:   b9007be1    str w1, [sp, #120]                                            
    40023168:   97fffbea    bl  40022110 <rtems_filesystem_eval_path_continue>            
    if ( rtems_filesystem_eval_path_get_token( &ctx ) == node->name ) {                   
    4002316c:   f9400e82    ldr x2, [x20, #24]                                            
  return ctx->token;                                                                      
    40023170:   f94037e0    ldr x0, [sp, #104]                                            
    40023174:   eb00005f    cmp x2, x0                                                    
    40023178:   540000e0    b.eq    40023194 <IMFS_add_node+0x124>  // b.none             
      if ( rtems_filesystem_eval_path_get_token( &ctx ) != NULL ) {                       
    4002317c:   b40001e0    cbz x0, 400231b8 <IMFS_add_node+0x148>                        <== NEVER TAKEN
        rtems_filesystem_eval_path_error( &ctx, EINVAL );                                 
    40023180:   910163e0    add x0, sp, #0x58                                             
    40023184:   528002c1    mov w1, #0x16                   // #22                        
      rv = -1;                                                                            
    40023188:   12800013    mov w19, #0xffffffff                // #-1                    
        rtems_filesystem_eval_path_error( &ctx, EINVAL );                                 
    4002318c:   97fffc81    bl  40022390 <rtems_filesystem_eval_path_error>               
    40023190:   17ffffe8    b   40023130 <IMFS_add_node+0xc0>                             
      node = IMFS_initialize_node(                                                        
    40023194:   79404283    ldrh    w3, [x20, #32]                                        
    40023198:   aa1603e5    mov x5, x22                                                   
    4002319c:   f9402681    ldr x1, [x20, #72]                                            
    400231a0:   2a1303e4    mov w4, w19                                                   
    400231a4:   aa1403e0    mov x0, x20                                                   
    400231a8:   94000482    bl  400243b0 <IMFS_initialize_node>                           
    400231ac:   aa0003e1    mov x1, x0                                                    
      if ( node != NULL ) {                                                               
    400231b0:   b5000080    cbnz    x0, 400231c0 <IMFS_add_node+0x150>                    
    400231b4:   d503201f    nop                                                           
        rv = -1;                                                                          
    400231b8:   12800013    mov w19, #0xffffffff                // #-1                    
    400231bc:   17ffffdd    b   40023130 <IMFS_add_node+0xc0>                             
        parent = currentloc->node_access;                                                 
    400231c0:   f9404bf4    ldr x20, [sp, #144]                                           
  _Timecounter_Getbintime( &now );                                                        
    400231c4:   910123e0    add x0, sp, #0x48                                             
        rv = 0;                                                                           
    400231c8:   52800013    mov w19, #0x0                       // #0                     
  old_last = tail->previous;                                                              
    400231cc:   91016282    add x2, x20, #0x58                                            
    400231d0:   f9403283    ldr x3, [x20, #96]                                            
  the_node->next = tail;                                                                  
    400231d4:   f9000022    str x2, [x1]                                                  
  IMFS_jnode_t *entry_node                                                                
)                                                                                         
{                                                                                         
  IMFS_directory_t *dir = (IMFS_directory_t *) dir_node;                                  
                                                                                          
  entry_node->Parent = dir_node;                                                          
    400231d8:   f9000834    str x20, [x1, #16]                                            
  tail->previous = the_node;                                                              
    400231dc:   f9003281    str x1, [x20, #96]                                            
  old_last->next = the_node;                                                              
    400231e0:   f9000061    str x1, [x3]                                                  
  the_node->previous = old_last;                                                          
    400231e4:   f9000423    str x3, [x1, #8]                                              
  _Timecounter_Getbintime( &now );                                                        
    400231e8:   9400091e    bl  40025660 <_Timecounter_Getbintime>                        
  return now.sec;                                                                         
    400231ec:   f94027e0    ldr x0, [sp, #72]                                             
  jnode->stat_ctime = now;                                                                
    400231f0:   a9038280    stp x0, x0, [x20, #56]                                        
    400231f4:   17ffffcf    b   40023130 <IMFS_add_node+0xc0>                             
    ...                                                                                   
                                                                                          

00000000400244c0 <IMFS_do_nothing_destroy>: void IMFS_do_nothing_destroy( IMFS_jnode_t *node ) { (void) node; }
    400244c0:   d65f03c0    ret                                                           <== NOT EXECUTED
    ...                                                                                   
                                                                                          

0000000040022380 <IMFS_eval_path_devfs>: return NULL; } void IMFS_eval_path_devfs( rtems_filesystem_eval_path_context_t *ctx ) {
    40022380:   a9bb7bfd    stp x29, x30, [sp, #-80]!                                     
    40022384:   910003fd    mov x29, sp                                                   
    40022388:   a9025bf5    stp x21, x22, [sp, #32]                                       
    4002238c:   aa0003f6    mov x22, x0                                                   
    40022390:   a90363f7    stp x23, x24, [sp, #48]                                       
  rtems_filesystem_location_info_t *currentloc;                                           
  IMFS_directory_t                 *dir;                                                  
  IMFS_jnode_t                     *entry;                                                
                                                                                          
  currentloc = rtems_filesystem_eval_path_get_currentloc( ctx );                          
  dir = currentloc->node_access;                                                          
    40022394:   9100a018    add x24, x0, #0x28                                            
  return ctx->pathlen;                                                                    
    40022398:   52800020    mov w0, #0x1                    // #1                         
    4002239c:   a94056d7    ldp x23, x21, [x22]                                           
{                                                                                         
    400223a0:   a90153f3    stp x19, x20, [sp, #16]                                       
    400223a4:   b0000094    adrp    x20, 40033000 <_init>                                 
    400223a8:   9119c294    add x20, x20, #0x670                                          
    400223ac:   f90023f9    str x25, [sp, #64]                                            
    400223b0:   91000693    add x19, x20, #0x1                                            
    400223b4:   91004694    add x20, x20, #0x11                                           
  dir = currentloc->node_access;                                                          
    400223b8:   f9400b19    ldr x25, [x24, #16]                                           
      && memcmp( IMFS_devfs_dirs[ i ].name, path, pathlen ) == 0;                         
    400223bc:   eb2002bf    cmp x21, w0, uxtb                                             
    400223c0:   540000e0    b.eq    400223dc <IMFS_eval_path_devfs+0x5c>  // b.none       <== NEVER TAKEN
  for ( i = 0; i < RTEMS_ARRAY_SIZE( IMFS_devfs_dirs ); ++i ) {                           
    400223c4:   91001273    add x19, x19, #0x4                                            
    400223c8:   eb13029f    cmp x20, x19                                                  
    400223cc:   540002a0    b.eq    40022420 <IMFS_eval_path_devfs+0xa0>  // b.none       
    match = IMFS_devfs_dirs[ i ].len == pathlen                                           
    400223d0:   385ff260    ldurb   w0, [x19, #-1]                                        
      && memcmp( IMFS_devfs_dirs[ i ].name, path, pathlen ) == 0;                         
    400223d4:   eb2002bf    cmp x21, w0, uxtb                                             
    400223d8:   54ffff61    b.ne    400223c4 <IMFS_eval_path_devfs+0x44>  // b.any        
    400223dc:   aa1503e2    mov x2, x21                                                   
    400223e0:   aa1703e1    mov x1, x23                                                   
    400223e4:   aa1303e0    mov x0, x19                                                   
    400223e8:   94002569    bl  4002b98c <memcmp>                                         
    400223ec:   35fffec0    cbnz    w0, 400223c4 <IMFS_eval_path_devfs+0x44>              <== NEVER TAKEN
      eval_flags &= ~RTEMS_FS_EXCLUSIVE;                                                  
    400223f0:   b94022c0    ldr w0, [x22, #32]                                            
    400223f4:   d2800015    mov x21, #0x0                       // #0                     
  ctx->pathlen = 0;                                                                       
    400223f8:   f90006df    str xzr, [x22, #8]                                            
    400223fc:   12197800    and w0, w0, #0xffffffbf                                       
  ctx->flags = flags;                                                                     
    40022400:   b90022c0    str w0, [x22, #32]                                            
                                                                                          
  entry = IMFS_devfs_is_dir( ctx, dir );                                                  
                                                                                          
  if ( entry != NULL ) {                                                                  
    40022404:   b40000f9    cbz x25, 40022420 <IMFS_eval_path_devfs+0xa0>                 <== NEVER TAKEN
      rtems_filesystem_eval_path_get_path( ctx ),                                         
      rtems_filesystem_eval_path_get_pathlen( ctx )                                       
    );                                                                                    
    rtems_filesystem_eval_path_clear_path( ctx );                                         
  }                                                                                       
}                                                                                         
    40022408:   a94153f3    ldp x19, x20, [sp, #16]                                       
    4002240c:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40022410:   a94363f7    ldp x23, x24, [sp, #48]                                       
    40022414:   f94023f9    ldr x25, [sp, #64]                                            
    40022418:   a8c57bfd    ldp x29, x30, [sp], #80                                       
    4002241c:   d65f03c0    ret                                                           
  return _Chain_Immutable_head( the_chain )->next;                                        
    40022420:   f9402b33    ldr x19, [x25, #80]                                           
  return &the_chain->Tail.Node;                                                           
    40022424:   91016334    add x20, x25, #0x58                                           
  while ( current != tail ) {                                                             
    40022428:   eb14027f    cmp x19, x20                                                  
    4002242c:   540000a1    b.ne    40022440 <IMFS_eval_path_devfs+0xc0>  // b.any        <== ALWAYS TAKEN
    40022430:   14000027    b   400224cc <IMFS_eval_path_devfs+0x14c>                     <== NOT EXECUTED
  return the_node->next;                                                                  
    40022434:   f9400273    ldr x19, [x19]                                                
    40022438:   eb13029f    cmp x20, x19                                                  
    4002243c:   54000480    b.eq    400224cc <IMFS_eval_path_devfs+0x14c>  // b.none      
    match = entry->namelen == pathlen                                                     
    40022440:   79404260    ldrh    w0, [x19, #32]                                        
      && memcmp( entry->name, path, pathlen ) == 0;                                       
    40022444:   eb15001f    cmp x0, x21                                                   
    40022448:   54ffff61    b.ne    40022434 <IMFS_eval_path_devfs+0xb4>  // b.any        
    4002244c:   f9400e60    ldr x0, [x19, #24]                                            
    40022450:   aa1503e2    mov x2, x21                                                   
    40022454:   aa1703e1    mov x1, x23                                                   
    40022458:   9400254d    bl  4002b98c <memcmp>                                         
    4002245c:   35fffec0    cbnz    w0, 40022434 <IMFS_eval_path_devfs+0xb4>              
    if ( ( eval_flags & RTEMS_FS_EXCLUSIVE ) == 0 ) {                                     
    40022460:   b94022c0    ldr w0, [x22, #32]                                            
    40022464:   37300240    tbnz    w0, #6, 400224ac <IMFS_eval_path_devfs+0x12c>         <== NEVER TAKEN
      --dir->Node.reference_count;                                                        
    40022468:   79405320    ldrh    w0, [x25, #40]                                        
      currentloc->node_access_2 = IMFS_generic_get_context_by_node( entry );              
    4002246c:   a9448a61    ldp x1, x2, [x19, #72]                                        
      --dir->Node.reference_count;                                                        
    40022470:   51000400    sub w0, w0, #0x1                                              
    40022474:   79005320    strh    w0, [x25, #40]                                        
}                                                                                         
    40022478:   f94023f9    ldr x25, [sp, #64]                                            
      ++entry->reference_count;                                                           
    4002247c:   79405260    ldrh    w0, [x19, #40]                                        
  loc->handlers = node->control->handlers;                                                
    40022480:   f9400021    ldr x1, [x1]                                                  
    40022484:   11000400    add w0, w0, #0x1                                              
    40022488:   79005260    strh    w0, [x19, #40]                                        
      currentloc->node_access_2 = IMFS_generic_get_context_by_node( entry );              
    4002248c:   a9010b13    stp x19, x2, [x24, #16]                                       
    40022490:   f9001301    str x1, [x24, #32]                                            
  ctx->pathlen = 0;                                                                       
    40022494:   f90006df    str xzr, [x22, #8]                                            
}                                                                                         
    40022498:   a94153f3    ldp x19, x20, [sp, #16]                                       
    4002249c:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    400224a0:   a94363f7    ldp x23, x24, [sp, #48]                                       
    400224a4:   a8c57bfd    ldp x29, x30, [sp], #80                                       
    400224a8:   d65f03c0    ret                                                           
      rtems_filesystem_eval_path_error( ctx, EEXIST );                                    
    400224ac:   aa1603e0    mov x0, x22                                                   <== NOT EXECUTED
    400224b0:   52800221    mov w1, #0x11                   // #17                        <== NOT EXECUTED
}                                                                                         
    400224b4:   a94153f3    ldp x19, x20, [sp, #16]                                       <== NOT EXECUTED
    400224b8:   a9425bf5    ldp x21, x22, [sp, #32]                                       <== NOT EXECUTED
    400224bc:   a94363f7    ldp x23, x24, [sp, #48]                                       <== NOT EXECUTED
    400224c0:   f94023f9    ldr x25, [sp, #64]                                            <== NOT EXECUTED
    400224c4:   a8c57bfd    ldp x29, x30, [sp], #80                                       <== NOT EXECUTED
      rtems_filesystem_eval_path_error( ctx, EEXIST );                                    
    400224c8:   17fffc0a    b   400214f0 <rtems_filesystem_eval_path_error>               <== NOT EXECUTED
  ctx->token = token;                                                                     
    400224cc:   a900dedf    stp xzr, x23, [x22, #8]                                       
  ctx->tokenlen = tokenlen;                                                               
    400224d0:   f9000ed5    str x21, [x22, #24]                                           
}                                                                                         
    400224d4:   17ffffcd    b   40022408 <IMFS_eval_path_devfs+0x88>                      
    ...                                                                                   
                                                                                          

00000000400277c0 <IMFS_fsunmount>: ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) void IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) {
    400277c0:   a9bb7bfd    stp x29, x30, [sp, #-80]!                                     
    400277c4:   910003fd    mov x29, sp                                                   
   /*                                                                                     
    * Traverse tree that starts at the mt_fs_root and deallocate memory                   
    * associated memory space                                                             
    */                                                                                    
                                                                                          
   loc = temp_mt_entry->mt_fs_root->location;                                             
    400277c8:   f9402401    ldr x1, [x0, #72]                                             
{                                                                                         
    400277cc:   a90153f3    stp x19, x20, [sp, #16]                                       
   loc = temp_mt_entry->mt_fs_root->location;                                             
    400277d0:   a9411022    ldp x2, x4, [x1, #16]                                         
    400277d4:   a9401420    ldp x0, x5, [x1]                                              
    400277d8:   a9420423    ldp x3, x1, [x1, #32]                                         
    400277dc:   f90013e0    str x0, [sp, #32]                                             
   jnode = (IMFS_jnode_t *)loc.node_access;                                               
    400277e0:   aa0203f3    mov x19, x2                                                   
  return S_ISDIR( node->st_mode );                                                        
    400277e4:   b9402440    ldr w0, [x2, #36]                                             
   loc = temp_mt_entry->mt_fs_root->location;                                             
    400277e8:   f90027e1    str x1, [sp, #72]                                             
                                                                                          
   do {                                                                                   
     next = jnode->Parent;                                                                
    400277ec:   12140c00    and w0, w0, #0xf000                                           
   loc = temp_mt_entry->mt_fs_root->location;                                             
    400277f0:   a9028be5    stp x5, x2, [sp, #40]                                         
     loc.node_access = (void *)jnode;                                                     
     IMFS_Set_handlers( &loc );                                                           
                                                                                          
     if ( !IMFS_is_directory( jnode ) || jnode_has_no_children( jnode ) ) {               
    400277f4:   7140101f    cmp w0, #0x4, lsl #12                                         
  loc->handlers = node->control->handlers;                                                
    400277f8:   f9402661    ldr x1, [x19, #72]                                            
   loc = temp_mt_entry->mt_fs_root->location;                                             
    400277fc:   a9038fe4    stp x4, x3, [sp, #56]                                         
     next = jnode->Parent;                                                                
    40027800:   f9400a74    ldr x20, [x19, #16]                                           
    40027804:   f9400020    ldr x0, [x1]                                                  
     loc.node_access = (void *)jnode;                                                     
    40027808:   f9001bf3    str x19, [sp, #48]                                            
    4002780c:   f90023e0    str x0, [sp, #64]                                             
     if ( !IMFS_is_directory( jnode ) || jnode_has_no_children( jnode ) ) {               
    40027810:   54000241    b.ne    40027858 <IMFS_fsunmount+0x98>  // b.any              <== NEVER TAKEN
    40027814:   d503201f    nop                                                           
  return _Chain_Immutable_head( the_chain )->next;                                        
    40027818:   f9402a61    ldr x1, [x19, #80]                                            
  return &the_chain->Tail.Node;                                                           
    4002781c:   91016260    add x0, x19, #0x58                                            
    40027820:   eb00003f    cmp x1, x0                                                    
    40027824:   540001a0    b.eq    40027858 <IMFS_fsunmount+0x98>  // b.none             
       if ( IMFS_is_directory( jnode ) ) {                                                
         if ( jnode_has_children( jnode ) )                                               
           jnode = jnode_get_first_child( jnode );                                        
       }                                                                                  
     }                                                                                    
   } while (jnode != NULL);                                                               
    40027828:   b40003a1    cbz x1, 4002789c <IMFS_fsunmount+0xdc>                        <== NEVER TAKEN
  return S_ISDIR( node->st_mode );                                                        
    4002782c:   b9402420    ldr w0, [x1, #36]                                             
    40027830:   aa0103f4    mov x20, x1                                                   
    40027834:   12140c00    and w0, w0, #0xf000                                           
    40027838:   aa1403f3    mov x19, x20                                                  
  loc->handlers = node->control->handlers;                                                
    4002783c:   f9402661    ldr x1, [x19, #72]                                            
     if ( !IMFS_is_directory( jnode ) || jnode_has_no_children( jnode ) ) {               
    40027840:   7140101f    cmp w0, #0x4, lsl #12                                         
     next = jnode->Parent;                                                                
    40027844:   f9400a74    ldr x20, [x19, #16]                                           
    40027848:   f9400020    ldr x0, [x1]                                                  
     loc.node_access = (void *)jnode;                                                     
    4002784c:   f9001bf3    str x19, [sp, #48]                                            
    40027850:   f90023e0    str x0, [sp, #64]                                             
     if ( !IMFS_is_directory( jnode ) || jnode_has_no_children( jnode ) ) {               
    40027854:   54fffe20    b.eq    40027818 <IMFS_fsunmount+0x58>  // b.none             
        result = IMFS_rmnod( NULL, &loc );                                                
    40027858:   910083e1    add x1, sp, #0x20                                             
    4002785c:   d2800000    mov x0, #0x0                    // #0                         
    40027860:   97fff344    bl  40024570 <IMFS_rmnod>                                     
        if ( result != 0 )                                                                
    40027864:   35000220    cbnz    w0, 400278a8 <IMFS_fsunmount+0xe8>                    <== NEVER TAKEN
        IMFS_node_destroy( jnode );                                                       
    40027868:   aa1303e0    mov x0, x19                                                   
    4002786c:   97fff2c1    bl  40024370 <IMFS_node_destroy>                              
     if ( jnode != NULL ) {                                                               
    40027870:   b4000174    cbz x20, 4002789c <IMFS_fsunmount+0xdc>                       
  return S_ISDIR( node->st_mode );                                                        
    40027874:   b9402680    ldr w0, [x20, #36]                                            
    40027878:   12140c00    and w0, w0, #0xf000                                           
       if ( IMFS_is_directory( jnode ) ) {                                                
    4002787c:   7140101f    cmp w0, #0x4, lsl #12                                         
    40027880:   54fffdc1    b.ne    40027838 <IMFS_fsunmount+0x78>  // b.any              <== NEVER TAKEN
  return _Chain_Immutable_head( the_chain )->next;                                        
    40027884:   f9402a81    ldr x1, [x20, #80]                                            
  return &the_chain->Tail.Node;                                                           
    40027888:   91016282    add x2, x20, #0x58                                            
         if ( jnode_has_children( jnode ) )                                               
    4002788c:   eb02003f    cmp x1, x2                                                    
    40027890:   54fffcc1    b.ne    40027828 <IMFS_fsunmount+0x68>  // b.any              
    40027894:   aa1403f3    mov x19, x20                                                  
    40027898:   17ffffe9    b   4002783c <IMFS_fsunmount+0x7c>                            
}                                                                                         
    4002789c:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400278a0:   a8c57bfd    ldp x29, x30, [sp], #80                                       
    400278a4:   d65f03c0    ret                                                           
      rtems_fatal_error_occurred( 0xdeadbeef );                                           
    400278a8:   5297dde0    mov w0, #0xbeef                 // #48879                     <== NOT EXECUTED
    400278ac:   72bbd5a0    movk    w0, #0xdead, lsl #16                                  <== NOT EXECUTED
    400278b0:   97fff430    bl  40024970 <rtems_fatal_error_occurred>                     <== NOT EXECUTED
    ...                                                                                   
                                                                                          

0000000040026680 <IMFS_make_node>: mode_t mode, const IMFS_node_control *node_control, size_t node_size, void *context ) {
    40026680:   a9b47bfd    stp x29, x30, [sp, #-192]!                                    
    40026684:   910003fd    mov x29, sp                                                   
    40026688:   a90153f3    stp x19, x20, [sp, #16]                                       
    4002668c:   2a0103f4    mov w20, w1                                                   
    40026690:   a9025bf5    stp x21, x22, [sp, #32]                                       
    40026694:   aa0203f5    mov x21, x2                                                   
    40026698:   aa0303f6    mov x22, x3                                                   
    4002669c:   a90363f7    stp x23, x24, [sp, #48]                                       
    400266a0:   aa0003f8    mov x24, x0                                                   
    400266a4:   aa0403f7    mov x23, x4                                                   
  int rv = 0;                                                                             
                                                                                          
  mode &= ~rtems_filesystem_umask;                                                        
    400266a8:   97fffc9e    bl  40025920 <rtems_current_user_env_get>                     
    400266ac:   b9401013    ldr w19, [x0, #16]                                            
    400266b0:   0a330293    bic w19, w20, w19                                             
                                                                                          
  switch (mode & S_IFMT) {                                                                
    400266b4:   12140e65    and w5, w19, #0xf000                                          
    400266b8:   714018bf    cmp w5, #0x6, lsl #12                                         
    400266bc:   54000260    b.eq    40026708 <IMFS_make_node+0x88>  // b.none             
    400266c0:   540001e9    b.ls    400266fc <IMFS_make_node+0x7c>  // b.plast            
    400266c4:   52960005    mov w5, #0xb000                 // #45056                     
    400266c8:   0a050265    and w5, w19, w5                                               
    400266cc:   714020bf    cmp w5, #0x8, lsl #12                                         
    400266d0:   540001c0    b.eq    40026708 <IMFS_make_node+0x88>  // b.none             <== ALWAYS TAKEN
    case S_IFIFO:                                                                         
    case S_IFREG:                                                                         
    case S_IFSOCK:                                                                        
      break;                                                                              
    default:                                                                              
      errno = EINVAL;                                                                     
    400266d4:   9400386e    bl  4003488c <__errno>                                        
      rv = -1;                                                                            
    400266d8:   12800013    mov w19, #0xffffffff                // #-1                    
      errno = EINVAL;                                                                     
    400266dc:   528002c1    mov w1, #0x16                   // #22                        
    400266e0:   b9000001    str w1, [x0]                                                  
                                                                                          
    rtems_filesystem_eval_path_cleanup( &ctx );                                           
  }                                                                                       
                                                                                          
  return rv;                                                                              
}                                                                                         
    400266e4:   2a1303e0    mov w0, w19                                                   
    400266e8:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400266ec:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    400266f0:   a94363f7    ldp x23, x24, [sp, #48]                                       
    400266f4:   a8cc7bfd    ldp x29, x30, [sp], #192                                      
    400266f8:   d65f03c0    ret                                                           
  switch (mode & S_IFMT) {                                                                
    400266fc:   514004a5    sub w5, w5, #0x1, lsl #12                                     
    40026700:   721348bf    tst w5, #0xffffe000                                           
    40026704:   54fffe81    b.ne    400266d4 <IMFS_make_node+0x54>  // b.any              
      rtems_filesystem_eval_path_start( &ctx, path, eval_flags );                         
    40026708:   52800f02    mov w2, #0x78                   // #120                       
    4002670c:   aa1803e1    mov x1, x24                                                   
    40026710:   910163e0    add x0, sp, #0x58                                             
    40026714:   97fff9af    bl  40024dd0 <rtems_filesystem_eval_path_start>               
  return loc->mt_entry->ops->clonenod_h == IMFS_node_clone;                               
    40026718:   f9401402    ldr x2, [x0, #40]                                             
    if ( IMFS_is_imfs_instance( currentloc ) ) {                                          
    4002671c:   b0000001    adrp    x1, 40027000 <IMFS_memfile_write+0x90>                
    40026720:   910cc021    add x1, x1, #0x330                                            
      rtems_filesystem_eval_path_start( &ctx, path, eval_flags );                         
    40026724:   aa0003f4    mov x20, x0                                                   
    40026728:   f9400c42    ldr x2, [x2, #24]                                             
    if ( IMFS_is_imfs_instance( currentloc ) ) {                                          
    4002672c:   f9402442    ldr x2, [x2, #72]                                             
    40026730:   eb01005f    cmp x2, x1                                                    
    40026734:   540001a0    b.eq    40026768 <IMFS_make_node+0xe8>  // b.none             
      rtems_filesystem_eval_path_error( &ctx, ENOTSUP );                                  
    40026738:   910163e0    add x0, sp, #0x58                                             
      rv = -1;                                                                            
    4002673c:   12800013    mov w19, #0xffffffff                // #-1                    
      rtems_filesystem_eval_path_error( &ctx, ENOTSUP );                                  
    40026740:   528010c1    mov w1, #0x86                   // #134                       
    40026744:   97fff9ff    bl  40024f40 <rtems_filesystem_eval_path_error>               
    rtems_filesystem_eval_path_cleanup( &ctx );                                           
    40026748:   910163e0    add x0, sp, #0x58                                             
    4002674c:   97fffa19    bl  40024fb0 <rtems_filesystem_eval_path_cleanup>             
}                                                                                         
    40026750:   2a1303e0    mov w0, w19                                                   
    40026754:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40026758:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    4002675c:   a94363f7    ldp x23, x24, [sp, #48]                                       
    40026760:   a8cc7bfd    ldp x29, x30, [sp], #192                                      
    40026764:   d65f03c0    ret                                                           
      IMFS_jnode_t *new_node = IMFS_create_node(                                          
    40026768:   a94693e3    ldp x3, x4, [sp, #104]                                        
    4002676c:   2a1303e5    mov w5, w19                                                   
    40026770:   aa1703e6    mov x6, x23                                                   
    40026774:   aa1603e2    mov x2, x22                                                   
    40026778:   aa1503e1    mov x1, x21                                                   
        rv = -1;                                                                          
    4002677c:   12800013    mov w19, #0xffffffff                // #-1                    
      IMFS_jnode_t *new_node = IMFS_create_node(                                          
    40026780:   9400252c    bl  4002fc30 <IMFS_create_node>                               
      if ( new_node != NULL ) {                                                           
    40026784:   b4fffe20    cbz x0, 40026748 <IMFS_make_node+0xc8>                        
        IMFS_jnode_t *parent = currentloc->node_access;                                   
    40026788:   f9400a94    ldr x20, [x20, #16]                                           
  _Timecounter_Getbintime( &now );                                                        
    4002678c:   910123e0    add x0, sp, #0x48                                             
    40026790:   94000bb8    bl  40029670 <_Timecounter_Getbintime>                        
  int rv = 0;                                                                             
    40026794:   52800013    mov w19, #0x0                       // #0                     
  return now.sec;                                                                         
    40026798:   f94027e0    ldr x0, [sp, #72]                                             
  jnode->stat_ctime = now;                                                                
    4002679c:   a9038280    stp x0, x0, [x20, #56]                                        
}                                                                                         
    400267a0:   17ffffea    b   40026748 <IMFS_make_node+0xc8>                            
    ...                                                                                   
                                                                                          

0000000040024090 <IMFS_memfile_write>: {
    40024090:   a9ba7bfd    stp x29, x30, [sp, #-96]!                                     
    40024094:   910003fd    mov x29, sp                                                   
    40024098:   a90153f3    stp x19, x20, [sp, #16]                                       
    4002409c:   2a0303f3    mov w19, w3                                                   
    400240a0:   aa0203f4    mov x20, x2                                                   
    400240a4:   a9046bf9    stp x25, x26, [sp, #64]                                       
    400240a8:   aa0103f9    mov x25, x1                                                   
  if ( last_byte > memfile->File.size ) {                                                 
    400240ac:   0b010061    add w1, w3, w1                                                
    400240b0:   f9402803    ldr x3, [x0, #80]                                             
{                                                                                         
    400240b4:   a90363f7    stp x23, x24, [sp, #48]                                       
    400240b8:   aa0003f8    mov x24, x0                                                   
  if ( last_byte > memfile->File.size ) {                                                 
    400240bc:   eb03003f    cmp x1, x3                                                    
    400240c0:   54000748    b.hi    400241a8 <IMFS_memfile_write+0x118>  // b.pmore       
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                                    
    400240c4:   a9025bf5    stp x21, x22, [sp, #32]                                       
    400240c8:   900000c0    adrp    x0, 4003c000 <_Scheduler_Table+0x48>                  
    400240cc:   b941a815    ldr w21, [x0, #424]                                           
  copied = 0;                                                                             
    400240d0:   52800017    mov w23, #0x0                       // #0                     
  start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK;                                    
    400240d4:   93407ea0    sxtw    x0, w21                                               
    400240d8:   9ac00f3a    sdiv    x26, x25, x0                                          
    400240dc:   9b00e759    msub    x25, x26, x0, x25                                     
  block = start / IMFS_MEMFILE_BYTES_PER_BLOCK;                                           
    400240e0:   2a1a03f6    mov w22, w26                                                  
  if ( start_offset )  {                                                                  
    400240e4:   35000799    cbnz    w25, 400241d4 <IMFS_memfile_write+0x144>              
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {                                   
    400240e8:   6b15027f    cmp w19, w21                                                  
    400240ec:   54000323    b.cc    40024150 <IMFS_memfile_write+0xc0>  // b.lo, b.ul, b.last
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                                           
    400240f0:   2a1503f9    mov w25, w21                                                  
    400240f4:   14000008    b   40024114 <IMFS_memfile_write+0x84>                        
    400240f8:   f9400000    ldr x0, [x0]                                                  
    src += to_copy;                                                                       
    400240fc:   8b190294    add x20, x20, x25                                             
    block++;                                                                              
    40024100:   110006d6    add w22, w22, #0x1                                            
    40024104:   0b1502f7    add w23, w23, w21                                             
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                                           
    40024108:   94002b60    bl  4002ee88 <memcpy>                                         
  while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) {                                   
    4002410c:   6b1302bf    cmp w21, w19                                                  
    40024110:   54000208    b.hi    40024150 <IMFS_memfile_write+0xc0>  // b.pmore        
    block_ptr = IMFS_memfile_get_block_pointer( memfile, block, 0 );                      
    40024114:   2a1603e1    mov w1, w22                                                   
    40024118:   52800002    mov w2, #0x0                    // #0                         
    4002411c:   aa1803e0    mov x0, x24                                                   
    40024120:   97fffe60    bl  40023aa0 <IMFS_memfile_get_block_pointer>                 
    memcpy( &(*block_ptr)[ 0 ], src, to_copy );                                           
    40024124:   aa1403e1    mov x1, x20                                                   
    40024128:   aa1903e2    mov x2, x25                                                   
    my_length -= to_copy;                                                                 
    4002412c:   4b150273    sub w19, w19, w21                                             
    if ( !block_ptr )                                                                     
    40024130:   b5fffe40    cbnz    x0, 400240f8 <IMFS_memfile_write+0x68>                <== ALWAYS TAKEN
      return copied;                                                                      
    40024134:   a9425bf5    ldp x21, x22, [sp, #32]                                       <== NOT EXECUTED
    40024138:   93407ee0    sxtw    x0, w23                                               <== NOT EXECUTED
}                                                                                         
    4002413c:   a94153f3    ldp x19, x20, [sp, #16]                                       <== NOT EXECUTED
    40024140:   a94363f7    ldp x23, x24, [sp, #48]                                       <== NOT EXECUTED
    40024144:   a9446bf9    ldp x25, x26, [sp, #64]                                       <== NOT EXECUTED
    40024148:   a8c67bfd    ldp x29, x30, [sp], #96                                       <== NOT EXECUTED
    4002414c:   d65f03c0    ret                                                           <== NOT EXECUTED
  if ( my_length ) {                                                                      
    40024150:   34000173    cbz w19, 4002417c <IMFS_memfile_write+0xec>                   
    block_ptr = IMFS_memfile_get_block_pointer( memfile, block, 0 );                      
    40024154:   2a1603e1    mov w1, w22                                                   
    40024158:   aa1803e0    mov x0, x24                                                   
    4002415c:   52800002    mov w2, #0x0                    // #0                         
    40024160:   97fffe50    bl  40023aa0 <IMFS_memfile_get_block_pointer>                 
    if ( !block_ptr )                                                                     
    40024164:   b4fffe80    cbz x0, 40024134 <IMFS_memfile_write+0xa4>                    <== NEVER TAKEN
    memcpy( &(*block_ptr)[ 0 ], src, my_length );                                         
    40024168:   f9400000    ldr x0, [x0]                                                  
    copied += to_copy;                                                                    
    4002416c:   0b1302f7    add w23, w23, w19                                             
    memcpy( &(*block_ptr)[ 0 ], src, my_length );                                         
    40024170:   aa1403e1    mov x1, x20                                                   
    40024174:   2a1303e2    mov w2, w19                                                   
    40024178:   94002b44    bl  4002ee88 <memcpy>                                         
  _Timecounter_Getbintime( &now );                                                        
    4002417c:   910143e0    add x0, sp, #0x50                                             
    40024180:   94000538    bl  40025660 <_Timecounter_Getbintime>                        
  return now.sec;                                                                         
    40024184:   f9402be1    ldr x1, [sp, #80]                                             
  return copied;                                                                          
    40024188:   93407ee0    sxtw    x0, w23                                               
  jnode->stat_ctime = now;                                                                
    4002418c:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40024190:   a9038701    stp x1, x1, [x24, #56]                                        
}                                                                                         
    40024194:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40024198:   a94363f7    ldp x23, x24, [sp, #48]                                       
    4002419c:   a9446bf9    ldp x25, x26, [sp, #64]                                       
    400241a0:   a8c67bfd    ldp x29, x30, [sp], #96                                       
    400241a4:   d65f03c0    ret                                                           
    bool zero_fill = start > memfile->File.size;                                          
    400241a8:   eb19007f    cmp x3, x25                                                   
    status = IMFS_memfile_extend( memfile, zero_fill, last_byte );                        
    400241ac:   aa0103e2    mov x2, x1                                                    
    400241b0:   1a9f27e1    cset    w1, cc  // cc = lo, ul, last                          
    400241b4:   97fffec7    bl  40023cd0 <IMFS_memfile_extend>                            
    if ( status )                                                                         
    400241b8:   34fff860    cbz w0, 400240c4 <IMFS_memfile_write+0x34>                    
      return status;                                                                      
    400241bc:   93407c00    sxtw    x0, w0                                                
}                                                                                         
    400241c0:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400241c4:   a94363f7    ldp x23, x24, [sp, #48]                                       
    400241c8:   a9446bf9    ldp x25, x26, [sp, #64]                                       
    400241cc:   a8c67bfd    ldp x29, x30, [sp], #96                                       
    400241d0:   d65f03c0    ret                                                           
    block_ptr = IMFS_memfile_get_block_pointer( memfile, block, 0 );                      
    400241d4:   2a1a03e1    mov w1, w26                                                   
    400241d8:   aa1803e0    mov x0, x24                                                   
    400241dc:   52800002    mov w2, #0x0                    // #0                         
    400241e0:   97fffe30    bl  40023aa0 <IMFS_memfile_get_block_pointer>                 
    400241e4:   aa0003e4    mov x4, x0                                                    
      return copied;                                                                      
    400241e8:   d2800000    mov x0, #0x0                    // #0                         
    if ( !block_ptr )                                                                     
    400241ec:   b40001a4    cbz x4, 40024220 <IMFS_memfile_write+0x190>                   <== NEVER TAKEN
    to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset;                                
    400241f0:   4b1902a3    sub w3, w21, w25                                              
    memcpy( &(*block_ptr)[ start_offset ], src, to_copy );                                
    400241f4:   aa1403e1    mov x1, x20                                                   
    400241f8:   f9400080    ldr x0, [x4]                                                  
    400241fc:   6b03027f    cmp w19, w3                                                   
    40024200:   1a839262    csel    w2, w19, w3, ls  // ls = plast                        
    40024204:   1a839277    csel    w23, w19, w3, ls  // ls = plast                       
    block++;                                                                              
    40024208:   11000756    add w22, w26, #0x1                                            
    my_length -= to_copy;                                                                 
    4002420c:   4b170273    sub w19, w19, w23                                             
    src += to_copy;                                                                       
    40024210:   8b020294    add x20, x20, x2                                              
    memcpy( &(*block_ptr)[ start_offset ], src, to_copy );                                
    40024214:   8b394000    add x0, x0, w25, uxtw                                         
    40024218:   94002b1c    bl  4002ee88 <memcpy>                                         
    copied += to_copy;                                                                    
    4002421c:   17ffffb3    b   400240e8 <IMFS_memfile_write+0x58>                        
    40024220:   a9425bf5    ldp x21, x22, [sp, #32]                                       <== NOT EXECUTED
    40024224:   17ffffc6    b   4002413c <IMFS_memfile_write+0xac>                        <== NOT EXECUTED
    ...                                                                                   
                                                                                          

0000000040024340 <IMFS_mount>: #endif #include <rtems/imfs.h> int IMFS_mount( rtems_filesystem_mount_table_entry_t *mt_entry ) {
    40024340:   a9bf7bfd    stp x29, x30, [sp, #-16]!                                     
    40024344:   aa0003e1    mov x1, x0                                                    
    40024348:   910003fd    mov x29, sp                                                   
  int rv = 0;                                                                             
  IMFS_jnode_t *node = mt_entry->mt_point_node->location.node_access;                     
    4002434c:   f9402000    ldr x0, [x0, #64]                                             
    40024350:   f9400802    ldr x2, [x0, #16]                                             
  return S_ISDIR( node->st_mode );                                                        
    40024354:   b9402440    ldr w0, [x2, #36]                                             
    40024358:   12140c00    and w0, w0, #0xf000                                           
                                                                                          
  if ( IMFS_is_directory( node ) ) {                                                      
    4002435c:   7140101f    cmp w0, #0x4, lsl #12                                         
    40024360:   54000181    b.ne    40024390 <IMFS_mount+0x50>  // b.any                  
    IMFS_directory_t *dir = (IMFS_directory_t *) node;                                    
                                                                                          
    if ( dir->mt_fs == NULL ) {                                                           
    40024364:   f9403440    ldr x0, [x2, #104]                                            
    40024368:   b5000080    cbnz    x0, 40024378 <IMFS_mount+0x38>                        <== NEVER TAKEN
      dir->mt_fs = mt_entry;                                                              
    4002436c:   f9003441    str x1, [x2, #104]                                            
    errno = ENOTDIR;                                                                      
    rv = -1;                                                                              
  }                                                                                       
                                                                                          
  return rv;                                                                              
}                                                                                         
    40024370:   a8c17bfd    ldp x29, x30, [sp], #16                                       
    40024374:   d65f03c0    ret                                                           
      errno = EBUSY;                                                                      
    40024378:   94002952    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    4002437c:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    40024380:   52800202    mov w2, #0x10                   // #16                        <== NOT EXECUTED
      rv = -1;                                                                            
    40024384:   12800000    mov w0, #0xffffffff             // #-1                        <== NOT EXECUTED
      errno = EBUSY;                                                                      
    40024388:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
      rv = -1;                                                                            
    4002438c:   17fffff9    b   40024370 <IMFS_mount+0x30>                                <== NOT EXECUTED
    errno = ENOTDIR;                                                                      
    40024390:   9400294c    bl  4002e8c0 <__errno>                                        
    40024394:   aa0003e1    mov x1, x0                                                    
    40024398:   52800282    mov w2, #0x14                   // #20                        
    rv = -1;                                                                              
    4002439c:   12800000    mov w0, #0xffffffff             // #-1                        
    errno = ENOTDIR;                                                                      
    400243a0:   b9000022    str w2, [x1]                                                  
  return rv;                                                                              
    400243a4:   17fffff3    b   40024370 <IMFS_mount+0x30>                                
    ...                                                                                   
                                                                                          

0000000040028c80 <IMFS_node_remove_directory>: { return dir->mt_fs != NULL; } IMFS_jnode_t *IMFS_node_remove_directory( IMFS_jnode_t *node ) {
    40028c80:   a9bf7bfd    stp x29, x30, [sp, #-16]!                                     
  return &the_chain->Tail.Node;                                                           
    40028c84:   91016001    add x1, x0, #0x58                                             
    40028c88:   910003fd    mov x29, sp                                                   
  IMFS_directory_t *dir = (IMFS_directory_t *) node;                                      
                                                                                          
  if ( !rtems_chain_is_empty( &dir->Entries ) ) {                                         
    40028c8c:   f9402802    ldr x2, [x0, #80]                                             
    40028c90:   eb01005f    cmp x2, x1                                                    
    40028c94:   54000100    b.eq    40028cb4 <IMFS_node_remove_directory+0x34>  // b.none 
    errno = ENOTEMPTY;                                                                    
    40028c98:   9400170a    bl  4002e8c0 <__errno>                                        
    40028c9c:   aa0003e1    mov x1, x0                                                    
    40028ca0:   52800b42    mov w2, #0x5a                   // #90                        
    dir = NULL;                                                                           
    40028ca4:   d2800000    mov x0, #0x0                    // #0                         
    errno = ENOTEMPTY;                                                                    
    40028ca8:   b9000022    str w2, [x1]                                                  
    errno = EBUSY;                                                                        
    dir = NULL;                                                                           
  }                                                                                       
                                                                                          
  return &dir->Node;                                                                      
}                                                                                         
    40028cac:   a8c17bfd    ldp x29, x30, [sp], #16                                       
    40028cb0:   d65f03c0    ret                                                           
  } else if ( IMFS_is_mount_point( dir ) ) {                                              
    40028cb4:   f9403401    ldr x1, [x0, #104]                                            
    40028cb8:   b4ffffa1    cbz x1, 40028cac <IMFS_node_remove_directory+0x2c>            <== ALWAYS TAKEN
    errno = EBUSY;                                                                        
    40028cbc:   94001701    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    40028cc0:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    40028cc4:   52800202    mov w2, #0x10                   // #16                        <== NOT EXECUTED
    dir = NULL;                                                                           
    40028cc8:   d2800000    mov x0, #0x0                    // #0                         <== NOT EXECUTED
    errno = EBUSY;                                                                        
    40028ccc:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
}                                                                                         
    40028cd0:   a8c17bfd    ldp x29, x30, [sp], #16                                       <== NOT EXECUTED
    40028cd4:   d65f03c0    ret                                                           <== NOT EXECUTED
    ...                                                                                   
                                                                                          

0000000040024870 <IMFS_readlink>: sym_link = loc->node_access;
    40024870:   f9400804    ldr x4, [x0, #16]                                             
  for( i=0; ((i<bufsize) && (sym_link->name[i] != '\0')); i++ )                           
    40024874:   d2800000    mov x0, #0x0                    // #0                         
    40024878:   b50000c2    cbnz    x2, 40024890 <IMFS_readlink+0x20>                     <== ALWAYS TAKEN
    4002487c:   14000008    b   4002489c <IMFS_readlink+0x2c>                             <== NOT EXECUTED
    buf[i] = sym_link->name[i];                                                           
    40024880:   38206823    strb    w3, [x1, x0]                                          
  for( i=0; ((i<bufsize) && (sym_link->name[i] != '\0')); i++ )                           
    40024884:   91000400    add x0, x0, #0x1                                              
    40024888:   eb02001f    cmp x0, x2                                                    
    4002488c:   54000080    b.eq    4002489c <IMFS_readlink+0x2c>  // b.none              
    40024890:   f9402883    ldr x3, [x4, #80]                                             
    40024894:   38606863    ldrb    w3, [x3, x0]                                          
    40024898:   35ffff43    cbnz    w3, 40024880 <IMFS_readlink+0x10>                     
}                                                                                         
    4002489c:   d65f03c0    ret                                                           
                                                                                          

0000000040024520 <IMFS_rename>: const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen ) {
    40024520:   a9bb7bfd    stp x29, x30, [sp, #-80]!                                     
    40024524:   910003fd    mov x29, sp                                                   
    40024528:   a90153f3    stp x19, x20, [sp, #16]                                       
  /*                                                                                      
   * FIXME: Due to insufficient checks we can create inaccessible nodes with              
   * this operation.                                                                      
   */                                                                                     
                                                                                          
  node = oldloc->node_access;                                                             
    4002452c:   f9400833    ldr x19, [x1, #16]                                            
{                                                                                         
    40024530:   a90363f7    stp x23, x24, [sp, #48]                                       
  new_parent = newparentloc->node_access;                                                 
    40024534:   f9400857    ldr x23, [x2, #16]                                            
                                                                                          
  if ( node->Parent == NULL ) {                                                           
    40024538:   f9400a60    ldr x0, [x19, #16]                                            
    4002453c:   b4000820    cbz x0, 40024640 <IMFS_rename+0x120>                          <== NEVER TAKEN
    40024540:   a9025bf5    stp x21, x22, [sp, #32]                                       
    rtems_set_errno_and_return_minus_one( EINVAL );                                       
  }                                                                                       
                                                                                          
  if ( namelen >= IMFS_NAME_MAX ) {                                                       
    40024544:   f103f89f    cmp x4, #0xfe                                                 
    40024548:   aa0403f5    mov x21, x4                                                   
    4002454c:   540006c8    b.hi    40024624 <IMFS_rename+0x104>  // b.pmore              
    rtems_set_errno_and_return_minus_one( ENAMETOOLONG );                                 
  }                                                                                       
                                                                                          
  control = malloc( sizeof( *control ) + namelen );                                       
    40024550:   aa0303f6    mov x22, x3                                                   
    40024554:   9100a080    add x0, x4, #0x28                                             
    40024558:   97fff432    bl  40021620 <malloc>                                         
    4002455c:   aa0003f4    mov x20, x0                                                   
  if ( control == NULL ) {                                                                
    40024560:   b40007c0    cbz x0, 40024658 <IMFS_rename+0x138>                          <== NEVER TAKEN
    rtems_set_errno_and_return_minus_one( ENOMEM );                                       
  }                                                                                       
                                                                                          
  memcpy( control->name, name, namelen );                                                 
    40024564:   9100a018    add x24, x0, #0x28                                            
    40024568:   aa1603e1    mov x1, x22                                                   
    4002456c:   aa1803e0    mov x0, x24                                                   
    40024570:   aa1503e2    mov x2, x21                                                   
    40024574:   94002a45    bl  4002ee88 <memcpy>                                         
                                                                                          
  if ( node->control->node_destroy == IMFS_renamed_destroy ) {                            
    40024578:   90000016    adrp    x22, 40024000 <memfile_read+0xe0>                     
    4002457c:   911382d6    add x22, x22, #0x4e0                                          
    40024580:   f9402661    ldr x1, [x19, #72]                                            
    40024584:   f9400c20    ldr x0, [x1, #24]                                             
    40024588:   eb16001f    cmp x0, x22                                                   
    4002458c:   54000400    b.eq    4002460c <IMFS_rename+0xec>  // b.none                
    IMFS_restore_replaced_control( node );                                                
  }                                                                                       
                                                                                          
  control->Base = *node->control;                                                         
    40024590:   f9400020    ldr x0, [x1]                                                  
  old_last = tail->previous;                                                              
    40024594:   910162e2    add x2, x23, #0x58                                            
  next           = the_node->next;                                                        
    40024598:   f9400264    ldr x4, [x19]                                                 
    4002459c:   f9000280    str x0, [x20]                                                 
  _Timecounter_Getbintime( &now );                                                        
    400245a0:   910103e0    add x0, sp, #0x40                                             
    400245a4:   f9400423    ldr x3, [x1, #8]                                              
    400245a8:   f9000683    str x3, [x20, #8]                                             
  previous       = the_node->previous;                                                    
    400245ac:   f9400663    ldr x3, [x19, #8]                                             
    400245b0:   f9400825    ldr x5, [x1, #16]                                             
  control->Base.node_destroy = IMFS_renamed_destroy;                                      
    400245b4:   a9015a85    stp x5, x22, [x20, #16]                                       
  control->replaced = node->control;                                                      
    400245b8:   f9001281    str x1, [x20, #32]                                            
  node->control = &control->Base;                                                         
  node->name = control->name;                                                             
    400245bc:   f9000e78    str x24, [x19, #24]                                           
  node->namelen = namelen;                                                                
    400245c0:   79004275    strh    w21, [x19, #32]                                       
  node->control = &control->Base;                                                         
    400245c4:   f9002674    str x20, [x19, #72]                                           
  next->previous = previous;                                                              
    400245c8:   f9000483    str x3, [x4, #8]                                              
  old_last = tail->previous;                                                              
    400245cc:   f94032e1    ldr x1, [x23, #96]                                            
  previous->next = next;                                                                  
    400245d0:   f9000064    str x4, [x3]                                                  
  the_node->next = tail;                                                                  
    400245d4:   f9000262    str x2, [x19]                                                 
  entry_node->Parent = dir_node;                                                          
    400245d8:   f9000a77    str x23, [x19, #16]                                           
  tail->previous = the_node;                                                              
    400245dc:   f90032f3    str x19, [x23, #96]                                           
  old_last->next = the_node;                                                              
    400245e0:   f9000033    str x19, [x1]                                                 
  the_node->previous = old_last;                                                          
    400245e4:   f9000661    str x1, [x19, #8]                                             
  _Timecounter_Getbintime( &now );                                                        
    400245e8:   9400041e    bl  40025660 <_Timecounter_Getbintime>                        
  return now.sec;                                                                         
    400245ec:   f94023e1    ldr x1, [sp, #64]                                             
                                                                                          
  IMFS_remove_from_directory( node );                                                     
  IMFS_add_to_directory( new_parent, node );                                              
  IMFS_update_ctime( node );                                                              
                                                                                          
  return 0;                                                                               
    400245f0:   52800000    mov w0, #0x0                    // #0                         
  jnode->stat_ctime = _IMFS_get_time();                                                   
    400245f4:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    400245f8:   f9002261    str x1, [x19, #64]                                            
}                                                                                         
    400245fc:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40024600:   a94363f7    ldp x23, x24, [sp, #48]                                       
    40024604:   a8c57bfd    ldp x29, x30, [sp], #80                                       
    40024608:   d65f03c0    ret                                                           
  node->control = control->replaced;                                                      
    4002460c:   f9401020    ldr x0, [x1, #32]                                             
    40024610:   f9002660    str x0, [x19, #72]                                            
  free( control );                                                                        
    40024614:   aa0103e0    mov x0, x1                                                    
    40024618:   94000eea    bl  400281c0 <free>                                           
  control->Base = *node->control;                                                         
    4002461c:   f9402661    ldr x1, [x19, #72]                                            
}                                                                                         
    40024620:   17ffffdc    b   40024590 <IMFS_rename+0x70>                               
    rtems_set_errno_and_return_minus_one( ENAMETOOLONG );                                 
    40024624:   940028a7    bl  4002e8c0 <__errno>                                        
    40024628:   aa0003e1    mov x1, x0                                                    
    4002462c:   52800b62    mov w2, #0x5b                   // #91                        
    40024630:   12800000    mov w0, #0xffffffff             // #-1                        
    40024634:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40024638:   b9000022    str w2, [x1]                                                  
    4002463c:   17fffff0    b   400245fc <IMFS_rename+0xdc>                               
    rtems_set_errno_and_return_minus_one( EINVAL );                                       
    40024640:   940028a0    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    40024644:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    40024648:   528002c2    mov w2, #0x16                   // #22                        <== NOT EXECUTED
    4002464c:   12800000    mov w0, #0xffffffff             // #-1                        <== NOT EXECUTED
    40024650:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
    40024654:   17ffffea    b   400245fc <IMFS_rename+0xdc>                               <== NOT EXECUTED
    rtems_set_errno_and_return_minus_one( ENOMEM );                                       
    40024658:   9400289a    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    4002465c:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    40024660:   52800182    mov w2, #0xc                    // #12                        <== NOT EXECUTED
    40024664:   12800000    mov w0, #0xffffffff             // #-1                        <== NOT EXECUTED
    40024668:   a9425bf5    ldp x21, x22, [sp, #32]                                       <== NOT EXECUTED
    4002466c:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
    40024670:   17ffffe3    b   400245fc <IMFS_rename+0xdc>                               <== NOT EXECUTED
    ...                                                                                   
                                                                                          

00000000400248a0 <IMFS_unmount>: #endif #include <rtems/imfs.h> int IMFS_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) {
    400248a0:   a9bf7bfd    stp x29, x30, [sp, #-16]!                                     
    400248a4:   910003fd    mov x29, sp                                                   
  int rv = 0;                                                                             
  IMFS_jnode_t *node = mt_entry->mt_point_node->location.node_access;                     
    400248a8:   f9402001    ldr x1, [x0, #64]                                             
    400248ac:   f9400822    ldr x2, [x1, #16]                                             
  return S_ISDIR( node->st_mode );                                                        
    400248b0:   b9402441    ldr w1, [x2, #36]                                             
    400248b4:   12140c21    and w1, w1, #0xf000                                           
                                                                                          
  if ( IMFS_is_directory( node ) ) {                                                      
    400248b8:   7140103f    cmp w1, #0x4, lsl #12                                         
    400248bc:   540001c1    b.ne    400248f4 <IMFS_unmount+0x54>  // b.any                <== NEVER TAKEN
    IMFS_directory_t *dir = (IMFS_directory_t *) node;                                    
                                                                                          
    if ( dir->mt_fs == mt_entry ) {                                                       
    400248c0:   f9403441    ldr x1, [x2, #104]                                            
    400248c4:   eb00003f    cmp x1, x0                                                    
    400248c8:   540000a1    b.ne    400248dc <IMFS_unmount+0x3c>  // b.any                <== NEVER TAKEN
  int rv = 0;                                                                             
    400248cc:   52800000    mov w0, #0x0                    // #0                         
      dir->mt_fs = NULL;                                                                  
    400248d0:   f900345f    str xzr, [x2, #104]                                           
    errno = ENOTDIR;                                                                      
    rv = -1;                                                                              
  }                                                                                       
                                                                                          
  return rv;                                                                              
}                                                                                         
    400248d4:   a8c17bfd    ldp x29, x30, [sp], #16                                       
    400248d8:   d65f03c0    ret                                                           
      errno = EINVAL;                                                                     
    400248dc:   940027f9    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    400248e0:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    400248e4:   528002c2    mov w2, #0x16                   // #22                        <== NOT EXECUTED
      rv = -1;                                                                            
    400248e8:   12800000    mov w0, #0xffffffff             // #-1                        <== NOT EXECUTED
      errno = EINVAL;                                                                     
    400248ec:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
      rv = -1;                                                                            
    400248f0:   17fffff9    b   400248d4 <IMFS_unmount+0x34>                              <== NOT EXECUTED
    errno = ENOTDIR;                                                                      
    400248f4:   940027f3    bl  4002e8c0 <__errno>                                        <== NOT EXECUTED
    400248f8:   aa0003e1    mov x1, x0                                                    <== NOT EXECUTED
    400248fc:   52800282    mov w2, #0x14                   // #20                        <== NOT EXECUTED
    rv = -1;                                                                              
    40024900:   12800000    mov w0, #0xffffffff             // #-1                        <== NOT EXECUTED
    errno = ENOTDIR;                                                                      
    40024904:   b9000022    str w2, [x1]                                                  <== NOT EXECUTED
  return rv;                                                                              
    40024908:   17fffff3    b   400248d4 <IMFS_unmount+0x34>                              <== NOT EXECUTED
    4002490c:   00000000    udf #0                                                        
                                                                                          

0000000040028b60 <device_ftruncate>: rtems_libio_t *iop, off_t length ) { return 0; }
    40028b60:   52800000    mov w0, #0x0                    // #0                         <== NOT EXECUTED
    40028b64:   d65f03c0    ret                                                           <== NOT EXECUTED
    ...                                                                                   
                                                                                          

0000000040023910 <rtems_tarfs_load>: int rtems_tarfs_load( const char *mountpoint, uint8_t *tar_image, size_t tar_size ) {
    40023910:   d10943ff    sub sp, sp, #0x250                                            
    40023914:   a9007bfd    stp x29, x30, [sp]                                            
    40023918:   910003fd    mov x29, sp                                                   
    4002391c:   a90153f3    stp x19, x20, [sp, #16]                                       
    40023920:   aa0203f4    mov x20, x2                                                   
    40023924:   a9025bf5    stp x21, x22, [sp, #32]                                       
    40023928:   aa0103f5    mov x21, x1                                                   
    4002392c:   aa0003f6    mov x22, x0                                                   
  char                                  buf[ 156 + UNTAR_FILE_NAME_SIZE ];                
  size_t                                len;                                              
  Untar_HeaderContext                   ctx;                                              
  unsigned long                         ptr;                                              
                                                                                          
  len = strlen( mountpoint );                                                             
    40023930:   94002e94    bl  4002f380 <strlen>                                         
  if ( len >= sizeof( buf ) - UNTAR_FILE_NAME_SIZE - 2 ) {                                
    40023934:   f102641f    cmp x0, #0x99                                                 
    40023938:   54000728    b.hi    40023a1c <rtems_tarfs_load+0x10c>  // b.pmore         <== NEVER TAKEN
    return -1;                                                                            
  }                                                                                       
                                                                                          
  eval_flags = RTEMS_FS_FOLLOW_LINK;                                                      
  loc = rtems_filesystem_eval_path_start( &eval_ctx, mountpoint, eval_flags );            
    4002393c:   aa1603e1    mov x1, x22                                                   
    40023940:   52800302    mov w2, #0x18                   // #24                        
    40023944:   aa0003f3    mov x19, x0                                                   
    40023948:   910123e0    add x0, sp, #0x48                                             
    4002394c:   f9001bf7    str x23, [sp, #48]                                            
    40023950:   97fff9f0    bl  40022110 <rtems_filesystem_eval_path_start>               
    40023954:   aa0003e1    mov x1, x0                                                    
  is_imfs = IMFS_is_imfs_instance( loc );                                                 
  rtems_filesystem_eval_path_cleanup( &eval_ctx );                                        
    40023958:   910123e0    add x0, sp, #0x48                                             
  return loc->mt_entry->ops->clonenod_h == IMFS_node_clone;                               
    4002395c:   f9401421    ldr x1, [x1, #40]                                             
    40023960:   f9400c21    ldr x1, [x1, #24]                                             
    40023964:   f9402437    ldr x23, [x1, #72]                                            
    40023968:   97fffa62    bl  400222f0 <rtems_filesystem_eval_path_cleanup>             
  if ( !is_imfs ) {                                                                       
    4002396c:   b0000000    adrp    x0, 40024000 <IMFS_memfile_extend+0x170>              
    40023970:   91184000    add x0, x0, #0x610                                            
    40023974:   eb0002ff    cmp x23, x0                                                   
    40023978:   54000501    b.ne    40023a18 <rtems_tarfs_load+0x108>  // b.any           
    return -1;                                                                            
  }                                                                                       
                                                                                          
  ctx.printer = NULL;                                                                     
  ctx.file_path = memcpy( buf, mountpoint, len );                                         
    4002397c:   aa1603e1    mov x1, x22                                                   
    40023980:   aa1303e2    mov x2, x19                                                   
    40023984:   910543e0    add x0, sp, #0x150                                            
  ctx.printer = NULL;                                                                     
    40023988:   f900a7ff    str xzr, [sp, #328]                                           
  ctx.file_path = memcpy( buf, mountpoint, len );                                         
    4002398c:   94002b4c    bl  4002e6bc <memcpy>                                         
    40023990:   f9005be0    str x0, [sp, #176]                                            
                                                                                          
  if ( len > 0 && ctx.file_path[ len - 1 ] != '/') {                                      
    40023994:   b40003f3    cbz x19, 40023a10 <rtems_tarfs_load+0x100>                    <== NEVER TAKEN
    ctx.file_path[ len ] = '/';                                                           
    40023998:   8b130001    add x1, x0, x19                                               
  if ( len > 0 && ctx.file_path[ len - 1 ] != '/') {                                      
    4002399c:   385ff022    ldurb   w2, [x1, #-1]                                         
    400239a0:   7100bc5f    cmp w2, #0x2f                                                 
    400239a4:   54000340    b.eq    40023a0c <rtems_tarfs_load+0xfc>  // b.none           <== ALWAYS TAKEN
    ctx.file_name = ctx.file_path + len + 1;                                              
    400239a8:   91000661    add x1, x19, #0x1                                             <== NOT EXECUTED
    ctx.file_path[ len ] = '/';                                                           
    400239ac:   528005e2    mov w2, #0x2f                   // #47                        <== NOT EXECUTED
    ctx.file_name = ctx.file_path + len + 1;                                              
    400239b0:   8b010001    add x1, x0, x1                                                <== NOT EXECUTED
    ctx.file_path[ len ] = '/';                                                           
    400239b4:   38336802    strb    w2, [x0, x19]                                         <== NOT EXECUTED
    ctx.file_name = ctx.file_path + len + 1;                                              
    400239b8:   f9005fe1    str x1, [sp, #184]                                            <== NOT EXECUTED
    400239bc:   d2800013    mov x19, #0x0                       // #0                     
    400239c0:   14000008    b   400239e0 <rtems_tarfs_load+0xd0>                          
  ptr = 0;                                                                                
                                                                                          
  while ( ptr + 512 <= tar_size ) {                                                       
    int retval;                                                                           
                                                                                          
    retval = Untar_ProcessHeader( &ctx, (const char *) &tar_image[ ptr ] );               
    400239c4:   8b0102a1    add x1, x21, x1                                               
    400239c8:   9102c3e0    add x0, sp, #0xb0                                             
    400239cc:   9400054d    bl  40024f00 <Untar_ProcessHeader>                            
    if ( retval != UNTAR_SUCCESSFUL ) {                                                   
    400239d0:   35000240    cbnz    w0, 40023a18 <rtems_tarfs_load+0x108>                 <== NEVER TAKEN
      return -1;                                                                          
    }                                                                                     
                                                                                          
    ptr += 512;                                                                           
                                                                                          
    if ( ctx.linkflag == REGTYPE ) {                                                      
    400239d4:   394503e0    ldrb    w0, [sp, #320]                                        
    400239d8:   7100c01f    cmp w0, #0x30                                                 
    400239dc:   540002c0    b.eq    40023a34 <rtems_tarfs_load+0x124>  // b.none          
  while ( ptr + 512 <= tar_size ) {                                                       
    400239e0:   aa1303e1    mov x1, x19                                                   
    400239e4:   91080273    add x19, x19, #0x200                                          
    400239e8:   eb14027f    cmp x19, x20                                                  
    400239ec:   54fffec9    b.ls    400239c4 <rtems_tarfs_load+0xb4>  // b.plast          
                                                                                          
      ptr += 512 * ctx.nblocks;                                                           
    }                                                                                     
  }                                                                                       
                                                                                          
  return 0;                                                                               
    400239f0:   52800000    mov w0, #0x0                    // #0                         
}                                                                                         
    400239f4:   a9407bfd    ldp x29, x30, [sp]                                            
    400239f8:   a94153f3    ldp x19, x20, [sp, #16]                                       
    400239fc:   a9425bf5    ldp x21, x22, [sp, #32]                                       
  return 0;                                                                               
    40023a00:   f9401bf7    ldr x23, [sp, #48]                                            
}                                                                                         
    40023a04:   910943ff    add sp, sp, #0x250                                            
    40023a08:   d65f03c0    ret                                                           
    40023a0c:   aa0103e0    mov x0, x1                                                    
    ctx.file_name = ctx.file_path + len;                                                  
    40023a10:   f9005fe0    str x0, [sp, #184]                                            
    40023a14:   17ffffea    b   400239bc <rtems_tarfs_load+0xac>                          
    40023a18:   f9401bf7    ldr x23, [sp, #48]                                            
    return -1;                                                                            
    40023a1c:   12800000    mov w0, #0xffffffff             // #-1                        
}                                                                                         
    40023a20:   a9407bfd    ldp x29, x30, [sp]                                            
    40023a24:   a94153f3    ldp x19, x20, [sp, #16]                                       
    40023a28:   a9425bf5    ldp x21, x22, [sp, #32]                                       
    40023a2c:   910943ff    add sp, sp, #0x250                                            
    40023a30:   d65f03c0    ret                                                           
      retval = IMFS_make_linearfile(                                                      
    40023a34:   b9412be1    ldr w1, [sp, #296]                                            
    40023a38:   8b1302a2    add x2, x21, x19                                              
    40023a3c:   f9405be0    ldr x0, [sp, #176]                                            
    40023a40:   f9409be3    ldr x3, [sp, #304]                                            
    40023a44:   94000007    bl  40023a60 <IMFS_make_linearfile>                           
      if ( retval != 0 ) {                                                                
    40023a48:   35fffe80    cbnz    w0, 40023a18 <rtems_tarfs_load+0x108>                 <== NEVER TAKEN
      ptr += 512 * ctx.nblocks;                                                           
    40023a4c:   f9409fe0    ldr x0, [sp, #312]                                            
    40023a50:   8b002673    add x19, x19, x0, lsl #9                                      
    40023a54:   17ffffe3    b   400239e0 <rtems_tarfs_load+0xd0>                          
    ...