=============================================================================== 00042ab8 : #include static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { 42ab8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42abc: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__ _Timestamp_Set_to_zero( &the_thread->cpu_time_used ); #else the_thread->cpu_time_used = 0; #endif } 42ac0: 4e5e unlk %fp <== NOT EXECUTED static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__ _Timestamp_Set_to_zero( &the_thread->cpu_time_used ); 42ac2: 42a8 0082 clrl %a0@(130) <== NOT EXECUTED 42ac6: 42a8 0086 clrl %a0@(134) <== NOT EXECUTED #else the_thread->cpu_time_used = 0; #endif } =============================================================================== 00041d60 : static inline void Dump_Line( const unsigned char *buffer, int length ) { 41d60: 4e56 ff70 linkw %fp,#-144 <== NOT EXECUTED int i; char line_buffer[120]; line_buffer[0] = '\0'; 41d64: 4200 clrb %d0 <== NOT EXECUTED static inline void Dump_Line( const unsigned char *buffer, int length ) { 41d66: 48d7 1c1c moveml %d2-%d4/%a2-%a4,%sp@ <== NOT EXECUTED int i; char line_buffer[120]; line_buffer[0] = '\0'; 41d6a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED for( i=0 ; i,%a4 <== NOT EXECUTED static inline void Dump_Line( const unsigned char *buffer, int length ) { 41d80: 282e 000c movel %fp@(12),%d4 <== NOT EXECUTED int i; char line_buffer[120]; line_buffer[0] = '\0'; 41d84: 1d40 ff88 moveb %d0,%fp@(-120) <== NOT EXECUTED for( i=0 ; i <== NOT EXECUTED sprintf( line_buffer, "%s%02x ", line_buffer, buffer[ i ] ); 41d8a: 4280 clrl %d0 <== NOT EXECUTED 41d8c: 101b moveb %a3@+,%d0 <== NOT EXECUTED int i; char line_buffer[120]; line_buffer[0] = '\0'; for( i=0 ; i <== NOT EXECUTED 41d9a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41d9c: 4e94 jsr %a4@ <== NOT EXECUTED int i; char line_buffer[120]; line_buffer[0] = '\0'; for( i=0 ; i <== NOT EXECUTED 41da6: 6010 bras 41db8 <== NOT EXECUTED sprintf( line_buffer, "%s%02x ", line_buffer, buffer[ i ] ); for( ; i<16 ; i++ ) strcat( line_buffer, " " ); 41da8: 4879 0005 a0cf pea 5a0cf <== NOT EXECUTED line_buffer[0] = '\0'; for( i=0 ; i <== NOT EXECUTED 41db8: 260e movel %fp,%d3 <== NOT EXECUTED 41dba: 0683 ffff ff88 addil #-120,%d3 <== NOT EXECUTED 41dc0: 47f9 0004 ca38 lea 4ca38 ,%a3 <== NOT EXECUTED 41dc6: 41f9 0004 ca38 lea 4ca38 ,%a0 <== NOT EXECUTED 41dcc: 700f moveq #15,%d0 <== NOT EXECUTED 41dce: b082 cmpl %d2,%d0 <== NOT EXECUTED 41dd0: 6cd6 bges 41da8 <== NOT EXECUTED strcat( line_buffer, " " ); strcat( line_buffer, "|" ); 41dd2: 4879 0005 9b1c pea 59b1c <== NOT EXECUTED for( i=0 ; i,%a3 <== NOT EXECUTED sprintf( line_buffer, "%s%02x ", line_buffer, buffer[ i ] ); for( ; i<16 ; i++ ) strcat( line_buffer, " " ); strcat( line_buffer, "|" ); 41de0: 2f03 movel %d3,%sp@- <== NOT EXECUTED for( i=0 ; i <== NOT EXECUTED sprintf( line_buffer, "%s%c", line_buffer, isprint( buffer[ i ] ) ? buffer[ i ] : '.' ); 41df0: 4281 clrl %d1 <== NOT EXECUTED 41df2: 121a moveb %a2@+,%d1 <== NOT EXECUTED 41df4: 2079 0005 b0b0 moveal 5b0b0 <__ctype_ptr__>,%a0 <== NOT EXECUTED 41dfa: 1030 1801 moveb %a0@(00000001,%d1:l),%d0 <== NOT EXECUTED 41dfe: 49c0 extbl %d0 <== NOT EXECUTED 41e00: 0280 0000 0097 andil #151,%d0 <== NOT EXECUTED for( ; i<16 ; i++ ) strcat( line_buffer, " " ); strcat( line_buffer, "|" ); for( i=0 ; i <== NOT EXECUTED 41e08: 2001 movel %d1,%d0 <== NOT EXECUTED 41e0a: 6002 bras 41e0e <== NOT EXECUTED 41e0c: 702e moveq #46,%d0 <== NOT EXECUTED 41e0e: 2f00 movel %d0,%sp@- <== NOT EXECUTED for( ; i<16 ; i++ ) strcat( line_buffer, " " ); strcat( line_buffer, "|" ); for( i=0 ; i <== NOT EXECUTED 41e1a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e1c: 4e93 jsr %a3@ <== NOT EXECUTED for( ; i<16 ; i++ ) strcat( line_buffer, " " ); strcat( line_buffer, "|" ); for( i=0 ; i <== NOT EXECUTED 41e26: 6010 bras 41e38 <== NOT EXECUTED sprintf( line_buffer, "%s%c", line_buffer, isprint( buffer[ i ] ) ? buffer[ i ] : '.' ); for( ; i<16 ; i++ ) strcat( line_buffer, " " ); 41e28: 4879 0005 a0d1 pea 5a0d1 <== NOT EXECUTED strcat( line_buffer, "|" ); for( i=0 ; i <== NOT EXECUTED 41e38: 260e movel %fp,%d3 <== NOT EXECUTED 41e3a: 0683 ffff ff88 addil #-120,%d3 <== NOT EXECUTED 41e40: 45f9 0004 ca38 lea 4ca38 ,%a2 <== NOT EXECUTED 41e46: 41f9 0004 ca38 lea 4ca38 ,%a0 <== NOT EXECUTED 41e4c: 700f moveq #15,%d0 <== NOT EXECUTED 41e4e: b082 cmpl %d2,%d0 <== NOT EXECUTED 41e50: 6cd6 bges 41e28 <== NOT EXECUTED strcat( line_buffer, " " ); strcat( line_buffer, "|\n" ); 41e52: 4879 0005 9b23 pea 59b23 <== NOT EXECUTED 41e58: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e5a: 4e90 jsr %a0@ <== NOT EXECUTED printk( line_buffer ); 41e5c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e5e: 4eb9 0004 35d8 jsr 435d8 <== NOT EXECUTED 41e64: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } 41e68: 4cee 1c1c ff70 moveml %fp@(-144),%d2-%d4/%a2-%a4 <== NOT EXECUTED 41e6e: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048ad8 : { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) { 48ad8: 7206 moveq #6,%d1 #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 48ada: 4e56 0000 linkw %fp,#0 48ade: 206e 0008 moveal %fp@(8),%a0 48ae2: 2f0a movel %a2,%sp@- IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) { 48ae4: 2450 moveal %a0@,%a2 ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 48ae6: 2268 0010 moveal %a0@(16),%a1 switch( node->type ) { 48aea: 202a 0048 movel %a2@(72),%d0 48aee: 5380 subql #1,%d0 ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 48af0: 2269 0034 moveal %a1@(52),%a1 switch( node->type ) { 48af4: b280 cmpl %d0,%d1 48af6: 6546 bcss 48b3e <== NEVER TAKEN 48af8: 303b 0a08 movew %pc@(48b02 ,%d0:l:2),%d0 48afc: 48c0 extl %d0 48afe: 4efb 0802 jmp %pc@(48b02 ,%d0:l) 48b02: 000e 016 <== NOT EXECUTED 48b04: 0016 026 <== NOT EXECUTED 48b06: 0022 042 <== NOT EXECUTED 48b08: 0022 042 <== NOT EXECUTED 48b0a: 002e 056 <== NOT EXECUTED 48b0c: 002e 056 <== NOT EXECUTED 48b0e: 0036 066 <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 48b10: 2169 000c 0008 movel %a1@(12),%a0@(8) break; 48b16: 6026 bras 48b3e case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 48b18: 203c 0005 a218 movel #369176,%d0 48b1e: 2140 0008 movel %d0,%a0@(8) break; 48b22: 601a bras 48b3e case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 48b24: 223c 0005 a288 movel #369288,%d1 <== NOT EXECUTED 48b2a: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED break; 48b2e: 600e bras 48b3e <== NOT EXECUTED case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 48b30: 2169 0008 0008 movel %a1@(8),%a0@(8) <== NOT EXECUTED break; 48b36: 6006 bras 48b3e <== NOT EXECUTED case IMFS_FIFO: loc->handlers = fs_info->fifo_handlers; 48b38: 2169 0010 0008 movel %a1@(16),%a0@(8) <== NOT EXECUTED break; } return 0; } 48b3e: 245f moveal %sp@+,%a2 48b40: 4280 clrl %d0 48b42: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048914 : IMFS_jnode_t *IMFS_allocate_node( IMFS_jnode_types_t type, const char *name, mode_t mode ) { 48914: 4e56 fff8 linkw %fp,#-8 48918: 2f0a movel %a2,%sp@- struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4891a: 4878 0060 pea 60 4891e: 4878 0001 pea 1 48922: 4eb9 0004 241c jsr 4241c if ( !node ) 48928: 508f addql #8,%sp struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 4892a: 2440 moveal %d0,%a2 if ( !node ) 4892c: 4a80 tstl %d0 4892e: 674e beqs 4897e <== NEVER TAKEN /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 48930: 4878 0020 pea 20 48934: 2f2e 000c movel %fp@(12),%sp@- /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; 48938: 256e 0008 0048 movel %fp@(8),%a2@(72) strncpy( node->name, name, IMFS_NAME_MAX ); 4893e: 486a 000c pea %a2@(12) return NULL; /* * Fill in the basic information */ node->st_nlink = 1; 48942: 7001 moveq #1,%d0 48944: 3540 0032 movew %d0,%a2@(50) node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 48948: 4eb9 0004 cef4 jsr 4cef4 /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode; 4894e: 256e 0010 002e movel %fp@(16),%a2@(46) #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 48954: 42a7 clrl %sp@- 48956: 486e fff8 pea %fp@(-8) node->st_mode = mode; #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); node->st_gid = getegid(); #else node->st_uid = 0; 4895a: 4240 clrw %d0 4895c: 3540 0038 movew %d0,%a2@(56) node->st_gid = 0; 48960: 3540 003a movew %d0,%a2@(58) #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 48964: 4eb9 0004 283c jsr 4283c node->stat_atime = (time_t) tv.tv_sec; 4896a: 202e fff8 movel %fp@(-8),%d0 node->stat_mtime = (time_t) tv.tv_sec; node->stat_ctime = (time_t) tv.tv_sec; return node; 4896e: 4fef 0014 lea %sp@(20),%sp /* * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 48972: 2540 003c movel %d0,%a2@(60) node->stat_mtime = (time_t) tv.tv_sec; 48976: 2540 0040 movel %d0,%a2@(64) node->stat_ctime = (time_t) tv.tv_sec; 4897a: 2540 0044 movel %d0,%a2@(68) return node; } 4897e: 200a movel %a2,%d0 48980: 246e fff4 moveal %fp@(-12),%a2 48984: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 000492e0 : void IMFS_check_node_remove( IMFS_jnode_t *jnode ) { 492e0: 4e56 0000 linkw %fp,#0 492e4: 2f0a movel %a2,%sp@- 492e6: 246e 0008 moveal %fp@(8),%a2 if ( !rtems_libio_is_file_open( jnode ) && jnode->st_nlink < 1 ) { 492ea: 2f0a movel %a2,%sp@- 492ec: 4eb9 0004 9856 jsr 49856 492f2: 588f addql #4,%sp 492f4: 4a80 tstl %d0 492f6: 664e bnes 49346 <== ALWAYS TAKEN 492f8: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 492fc: 6648 bnes 49346 <== NOT EXECUTED if ( rtems_filesystem_current.node_access == jnode ) 492fe: 2079 0005 af2c moveal 5af2c ,%a0 <== NOT EXECUTED 49304: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 49308: 6604 bnes 4930e <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 4930a: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED switch ( jnode->type ) { 4930e: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 49312: 7204 moveq #4,%d1 <== NOT EXECUTED 49314: b280 cmpl %d0,%d1 <== NOT EXECUTED 49316: 6712 beqs 4932a <== NOT EXECUTED 49318: 123c 0005 moveb #5,%d1 <== NOT EXECUTED 4931c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4931e: 6616 bnes 49336 <== NOT EXECUTED case IMFS_MEMORY_FILE: IMFS_memfile_remove( jnode ); 49320: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49322: 4eb9 0004 abc8 jsr 4abc8 <== NOT EXECUTED 49328: 600a bras 49334 <== NOT EXECUTED break; case IMFS_SYM_LINK: free( jnode->info.sym_link.name ); 4932a: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 4932e: 4eb9 0004 27b4 jsr 427b4 <== NOT EXECUTED break; 49334: 588f addql #4,%sp <== NOT EXECUTED default: break; } free( jnode ); 49336: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 4933a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4933e: 4e5e unlk %fp <== NOT EXECUTED break; default: break; } free( jnode ); 49340: 4ef9 0004 27b4 jmp 427b4 <== NOT EXECUTED } } 49346: 246e fffc moveal %fp@(-4),%a2 4934a: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 000488e0 : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 488e0: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = (IMFS_jnode_t *) pathloc->node_access; 488e4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 488e8: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = (IMFS_jnode_t *) pathloc->node_access; 488ea: 2450 moveal %a0@,%a2 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); #endif jnode->st_uid = owner; 488ec: 356e 000e 0038 movew %fp@(14),%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 488f2: 356e 0012 003a movew %fp@(18),%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 488f8: 42a7 clrl %sp@- <== NOT EXECUTED 488fa: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 488fe: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 48904: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 4890a: 4280 clrl %d0 <== NOT EXECUTED 4890c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 48910: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048988 : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 48988: 4e56 ffec linkw %fp,#-20 4898c: 206e 0008 moveal %fp@(8),%a0 48990: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ 48994: 242e 000c movel %fp@(12),%d2 48998: 246e 0018 moveal %fp@(24),%a2 IMFS_fs_info_t *fs_info; /* * MUST have a parent node to call this routine. */ if ( parent_loc == NULL ) 4899c: 4a88 tstl %a0 4899e: 6700 00ee beqw 48a8e return NULL; parent = parent_loc->node_access; 489a2: 2850 moveal %a0@,%a4 fs_info = parent_loc->mt_entry->fs_info; /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 489a4: 7007 moveq #7,%d0 */ if ( parent_loc == NULL ) return NULL; parent = parent_loc->node_access; fs_info = parent_loc->mt_entry->fs_info; 489a6: 2068 0010 moveal %a0@(16),%a0 489aa: 2668 0034 moveal %a0@(52),%a3 /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 489ae: b082 cmpl %d2,%d0 489b0: 660e bnes 489c0 <== ALWAYS TAKEN 489b2: 223c 0005 a1a8 movel #369064,%d1 <== NOT EXECUTED 489b8: b2ab 0010 cmpl %a3@(16),%d1 <== NOT EXECUTED 489bc: 6700 00d0 beqw 48a8e <== NOT EXECUTED return NULL; /* * Allocate filesystem node and fill in basic information */ node = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask ); 489c0: 2079 0005 af2c moveal 5af2c ,%a0 489c6: 2028 002c movel %a0@(44),%d0 489ca: 4680 notl %d0 489cc: c0ae 0014 andl %fp@(20),%d0 489d0: 2f00 movel %d0,%sp@- 489d2: 2f2e 0010 movel %fp@(16),%sp@- 489d6: 2f02 movel %d2,%sp@- 489d8: 4eb9 0004 8914 jsr 48914 if ( !node ) 489de: 4fef 000c lea %sp@(12),%sp return NULL; /* * Allocate filesystem node and fill in basic information */ node = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask ); 489e2: 2a40 moveal %d0,%a5 if ( !node ) 489e4: 4a80 tstl %d0 489e6: 6700 00a8 beqw 48a90 return NULL; /* * Set the type specific information */ if ( type == IMFS_DIRECTORY ) { 489ea: 7001 moveq #1,%d0 489ec: b082 cmpl %d2,%d0 489ee: 6616 bnes 48a06 */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 489f0: 41ed 0050 lea %a5@(80),%a0 489f4: 2b48 004c movel %a0,%a5@(76) rtems_chain_initialize_empty(&node->info.directory.Entries); 489f8: 41ed 004c lea %a5@(76),%a0 RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 489fc: 42ad 0050 clrl %a5@(80) 48a00: 2b48 0054 movel %a0,%a5@(84) 48a04: 6066 bras 48a6c } else if ( type == IMFS_HARD_LINK ) { 48a06: 7003 moveq #3,%d0 48a08: b082 cmpl %d2,%d0 48a0a: 6706 beqs 48a12 <== NEVER TAKEN node->info.hard_link.link_node = info->hard_link.link_node; } else if ( type == IMFS_SYM_LINK ) { 48a0c: 7204 moveq #4,%d1 48a0e: b282 cmpl %d2,%d1 48a10: 6606 bnes 48a18 <== ALWAYS TAKEN node->info.sym_link.name = info->sym_link.name; 48a12: 2b52 004c movel %a2@,%a5@(76) <== NOT EXECUTED 48a16: 6054 bras 48a6c <== NOT EXECUTED } else if ( type == IMFS_DEVICE ) { 48a18: 7002 moveq #2,%d0 48a1a: b082 cmpl %d2,%d0 48a1c: 660c bnes 48a2a <== NEVER TAKEN node->info.device.major = info->device.major; 48a1e: 2b52 004c movel %a2@,%a5@(76) node->info.device.minor = info->device.minor; 48a22: 2b6a 0004 0050 movel %a2@(4),%a5@(80) 48a28: 6042 bras 48a6c } else if ( type == IMFS_LINEAR_FILE ) { 48a2a: 7206 moveq #6,%d1 <== NOT EXECUTED 48a2c: b282 cmpl %d2,%d1 <== NOT EXECUTED 48a2e: 6612 bnes 48a42 <== NOT EXECUTED node->info.linearfile.size = 0; node->info.linearfile.direct = 0; 48a30: 42ad 0054 clrl %a5@(84) <== NOT EXECUTED node->info.sym_link.name = info->sym_link.name; } else if ( type == IMFS_DEVICE ) { node->info.device.major = info->device.major; node->info.device.minor = info->device.minor; } else if ( type == IMFS_LINEAR_FILE ) { node->info.linearfile.size = 0; 48a34: 4280 clrl %d0 <== NOT EXECUTED 48a36: 4281 clrl %d1 <== NOT EXECUTED 48a38: 2b40 004c movel %d0,%a5@(76) <== NOT EXECUTED 48a3c: 2b41 0050 movel %d1,%a5@(80) <== NOT EXECUTED 48a40: 602a bras 48a6c <== NOT EXECUTED node->info.linearfile.direct = 0; } else if ( type == IMFS_MEMORY_FILE ) { 48a42: 7205 moveq #5,%d1 <== NOT EXECUTED 48a44: b282 cmpl %d2,%d1 <== NOT EXECUTED 48a46: 661a bnes 48a62 <== NOT EXECUTED node->info.file.size = 0; node->info.file.indirect = 0; 48a48: 42ad 0054 clrl %a5@(84) <== NOT EXECUTED node->info.device.minor = info->device.minor; } else if ( type == IMFS_LINEAR_FILE ) { node->info.linearfile.size = 0; node->info.linearfile.direct = 0; } else if ( type == IMFS_MEMORY_FILE ) { node->info.file.size = 0; 48a4c: 4280 clrl %d0 <== NOT EXECUTED 48a4e: 4281 clrl %d1 <== NOT EXECUTED node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; 48a50: 42ad 0058 clrl %a5@(88) <== NOT EXECUTED node->info.device.minor = info->device.minor; } else if ( type == IMFS_LINEAR_FILE ) { node->info.linearfile.size = 0; node->info.linearfile.direct = 0; } else if ( type == IMFS_MEMORY_FILE ) { node->info.file.size = 0; 48a54: 2b40 004c movel %d0,%a5@(76) <== NOT EXECUTED 48a58: 2b41 0050 movel %d1,%a5@(80) <== NOT EXECUTED node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; node->info.file.triply_indirect = 0; 48a5c: 42ad 005c clrl %a5@(92) <== NOT EXECUTED 48a60: 600a bras 48a6c <== NOT EXECUTED } else if ( type == IMFS_FIFO ) { 48a62: 7207 moveq #7,%d1 <== NOT EXECUTED 48a64: b282 cmpl %d2,%d1 <== NOT EXECUTED 48a66: 6604 bnes 48a6c <== NOT EXECUTED node->info.fifo.pipe = NULL; 48a68: 42ad 004c clrl %a5@(76) <== NOT EXECUTED /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; node->st_ino = ++fs_info->ino_count; 48a6c: 202b 0004 movel %a3@(4),%d0 48a70: 5280 addql #1,%d0 } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 48a72: 2b4c 0008 movel %a4,%a5@(8) node->st_ino = ++fs_info->ino_count; 48a76: 2740 0004 movel %d0,%a3@(4) 48a7a: 2b40 0034 movel %d0,%a5@(52) 48a7e: 2f0d movel %a5,%sp@- 48a80: 486c 004c pea %a4@(76) 48a84: 4eb9 0004 5f4c jsr 45f4c <_Chain_Append> rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 48a8a: 508f addql #8,%sp 48a8c: 6002 bras 48a90 /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && fs_info->fifo_handlers == &rtems_filesystem_handlers_default ) return NULL; 48a8e: 9bcd subal %a5,%a5 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; } 48a90: 200d movel %a5,%d0 48a92: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 48a98: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004929c : #include #include "imfs.h" void IMFS_create_orphan( IMFS_jnode_t *jnode ) { 4929c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 492a0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 492a2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( jnode->Parent != NULL ) { 492a6: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 492aa: 670e beqs 492ba <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 492ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 492ae: 4eb9 0004 5f84 jsr 45f84 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( &jnode->Node ); jnode->Parent = NULL; 492b4: 588f addql #4,%sp <== NOT EXECUTED 492b6: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED } --jnode->st_nlink; 492ba: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 492be: 5380 subql #1,%d0 <== NOT EXECUTED 492c0: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( jnode ); 492c4: 42a7 clrl %sp@- <== NOT EXECUTED 492c6: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 492ca: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 492d0: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED 492d6: 508f addql #8,%sp <== NOT EXECUTED } 492d8: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 492dc: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048a9c : return node; } IMFS_jnode_t *IMFS_create_root_node(void) { 48a9c: 4e56 0000 linkw %fp,#0 IMFS_jnode_t *node; /* * Allocate filesystem node and fill in basic information */ node = IMFS_allocate_node( IMFS_DIRECTORY, "", (S_IFDIR | 0755) ); 48aa0: 4878 41ed pea 41ed 48aa4: 4879 0005 9ff8 pea 59ff8 48aaa: 4878 0001 pea 1 48aae: 4eb9 0004 8914 jsr 48914 if ( !node ) 48ab4: 4fef 000c lea %sp@(12),%sp 48ab8: 4a80 tstl %d0 48aba: 6716 beqs 48ad2 <== NEVER TAKEN */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 48abc: 2240 moveal %d0,%a1 48abe: 2040 moveal %d0,%a0 48ac0: 43e9 0050 lea %a1@(80),%a1 48ac4: 2149 004c movel %a1,%a0@(76) /* * Set the type specific information * * NOTE: Root node is always a directory. */ rtems_chain_initialize_empty(&node->info.directory.Entries); 48ac8: 5989 subql #4,%a1 RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { the_chain->first = _Chain_Tail(the_chain); the_chain->permanent_null = NULL; 48aca: 42a8 0050 clrl %a0@(80) 48ace: 2149 0054 movel %a1,%a0@(84) return node; } 48ad2: 4e5e unlk %fp ... =============================================================================== 000447e8 : * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 447e8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 447ec: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 447f2: 2f0a movel %a2,%sp@- <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 447f4: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 447f8: 45f9 0004 fda8 lea 4fda8 ,%a2 <== NOT EXECUTED 447fe: 4879 0005 f34e pea 5f34e <== NOT EXECUTED 44804: 4e92 jsr %a2@ <== NOT EXECUTED fprintf(stdout, "/\n" ); 44806: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED 4480c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44810: 4879 0005 f383 pea 5f383 <== NOT EXECUTED 44816: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); 44818: 2079 0006 09fc moveal 609fc ,%a0 <== NOT EXECUTED 4481e: 42a7 clrl %sp@- <== NOT EXECUTED 44820: 2f28 0018 movel %a0@(24),%sp@- <== NOT EXECUTED 44824: 4eb9 0004 4770 jsr 44770 <== NOT EXECUTED fprintf(stdout, "*************** End of Dump ***************\n" ); 4482a: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED 44830: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44834: 4879 0005 f386 pea 5f386 <== NOT EXECUTED 4483a: 4e92 jsr %a2@ <== NOT EXECUTED } 4483c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED void IMFS_dump( void ) { fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); fprintf(stdout, "/\n" ); IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); fprintf(stdout, "*************** End of Dump ***************\n" ); 44840: 4fef 0020 lea %sp@(32),%sp <== NOT EXECUTED } 44844: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00044770 : */ void IMFS_dump_directory( IMFS_jnode_t *the_directory, int level ) { 44770: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 44774: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44778: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== NOT EXECUTED 4477c: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 44780: 2a08 movel %a0,%d5 <== NOT EXECUTED for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); 44782: 2803 movel %d3,%d4 <== NOT EXECUTED 44784: 0685 0000 0050 addil #80,%d5 <== NOT EXECUTED the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) fprintf(stdout, "...." ); 4478a: 4bf9 0004 fda8 lea 4fda8 ,%a5 <== NOT EXECUTED IMFS_print_jnode( the_jnode ); 44790: 49f9 0004 4660 lea 44660 ,%a4 <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); 44796: 5284 addql #1,%d4 <== NOT EXECUTED 44798: 47f9 0004 4770 lea 44770 ,%a3 <== NOT EXECUTED IMFS_assert( level >= 0 ); IMFS_assert( the_directory->type == IMFS_DIRECTORY ); the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; 4479e: 2468 004c moveal %a0@(76),%a2 <== NOT EXECUTED 447a2: 6036 bras 447da <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) 447a4: 4282 clrl %d2 <== NOT EXECUTED 447a6: 6016 bras 447be <== NOT EXECUTED fprintf(stdout, "...." ); 447a8: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) 447ae: 5282 addql #1,%d2 <== NOT EXECUTED fprintf(stdout, "...." ); 447b0: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 447b4: 4879 0005 f349 pea 5f349 <== NOT EXECUTED 447ba: 4e95 jsr %a5@ <== NOT EXECUTED !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; for ( i=0 ; i<=level ; i++ ) 447bc: 508f addql #8,%sp <== NOT EXECUTED 447be: b682 cmpl %d2,%d3 <== NOT EXECUTED 447c0: 6ce6 bges 447a8 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); 447c2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 447c4: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) 447c6: 588f addql #4,%sp <== NOT EXECUTED 447c8: 7001 moveq #1,%d0 <== NOT EXECUTED 447ca: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 447ce: 6608 bnes 447d8 <== NOT EXECUTED IMFS_dump_directory( the_jnode, level + 1 ); 447d0: 2f04 movel %d4,%sp@- <== NOT EXECUTED 447d2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 447d4: 4e93 jsr %a3@ <== NOT EXECUTED 447d6: 508f addql #8,%sp <== NOT EXECUTED the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { 447d8: 2452 moveal %a2@,%a2 <== NOT EXECUTED IMFS_assert( level >= 0 ); IMFS_assert( the_directory->type == IMFS_DIRECTORY ); the_chain = &the_directory->info.directory.Entries; for ( the_node = the_chain->first; 447da: ba8a cmpl %a2,%d5 <== NOT EXECUTED 447dc: 66c6 bnes 447a4 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); } } 447de: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 447e4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048bc4 : char token[ IMFS_NAME_MAX + 1 ]; rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) { 48bc4: 70f8 moveq #-8,%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 48bc6: 4e56 ff9c linkw %fp,#-100 48bca: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 48bce: 282e 0010 movel %fp@(16),%d4 char token[ IMFS_NAME_MAX + 1 ]; rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) { 48bd2: c084 andl %d4,%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 48bd4: 2a6e 0008 moveal %fp@(8),%a5 48bd8: 286e 000c moveal %fp@(12),%a4 48bdc: 246e 0014 moveal %fp@(20),%a2 char token[ IMFS_NAME_MAX + 1 ]; rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) { 48be0: 670e beqs 48bf0 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EIO ); 48be2: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48be8: 7c05 moveq #5,%d6 <== NOT EXECUTED 48bea: 2040 moveal %d0,%a0 <== NOT EXECUTED 48bec: 2086 movel %d6,%a0@ <== NOT EXECUTED 48bee: 603e bras 48c2e <== NOT EXECUTED * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); 48bf0: 2a0e movel %fp,%d5 size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { int i = 0; 48bf2: 4282 clrl %d2 * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); 48bf4: 0685 ffff ffc7 addil #-57,%d5 } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48bfa: 2e3c 0004 917c movel #299388,%d7 /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 48c00: 2652 moveal %a2@,%a3 * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); 48c02: 486e fffc pea %fp@(-4) 48c06: 2f05 movel %d5,%sp@- 48c08: 2f0c movel %a4,%sp@- 48c0a: 4875 2800 pea %a5@(00000000,%d2:l) 48c0e: 4eb9 0004 91e8 jsr 491e8 pathnamelen -= len; 48c14: 2c2e fffc movel %fp@(-4),%d6 * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); 48c18: 2600 movel %d0,%d3 pathnamelen -= len; i += len; if ( !pathloc->node_access ) 48c1a: 4fef 0010 lea %sp@(16),%sp 48c1e: 4a92 tstl %a2@ 48c20: 6612 bnes 48c34 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOENT ); 48c22: 4eb9 0004 ba84 jsr 4ba84 <__errno> 48c28: 7a02 moveq #2,%d5 48c2a: 2040 moveal %d0,%a0 48c2c: 2085 movel %d5,%a0@ 48c2e: 76ff moveq #-1,%d3 48c30: 6000 017c braw 48dae /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 48c34: 4a80 tstl %d0 48c36: 671c beqs 48c54 if ( node->type == IMFS_DIRECTORY ) 48c38: 7001 moveq #1,%d0 48c3a: b0ab 0048 cmpl %a3@(72),%d0 48c3e: 6614 bnes 48c54 <== NEVER TAKEN if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 48c40: 4878 0001 pea 1 48c44: 2f0a movel %a2,%sp@- 48c46: 4eb9 0004 8b46 jsr 48b46 48c4c: 508f addql #8,%sp 48c4e: 4a80 tstl %d0 48c50: 6700 014a beqw 48d9c rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 48c54: 2652 moveal %a2@,%a3 */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); pathnamelen -= len; 48c56: 99c6 subal %d6,%a4 i += len; 48c58: d486 addl %d6,%d2 if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; switch( type ) { 48c5a: 7003 moveq #3,%d0 48c5c: b083 cmpl %d3,%d0 48c5e: 6742 beqs 48ca2 48c60: 7204 moveq #4,%d1 48c62: b283 cmpl %d3,%d1 48c64: 6700 00aa beqw 48d10 48c68: 103c 0002 moveb #2,%d0 48c6c: b083 cmpl %d3,%d0 48c6e: 6600 00b0 bnew 48d20 case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 48c72: 2079 0005 af2c moveal 5af2c ,%a0 <== NOT EXECUTED 48c78: b7e8 0018 cmpal %a0@(24),%a3 <== NOT EXECUTED 48c7c: 6784 beqs 48c02 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access) { 48c7e: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 48c82: b7e8 001c cmpal %a0@(28),%a3 <== NOT EXECUTED 48c86: 6614 bnes 48c9c <== NOT EXECUTED */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; /* Throw out the .. in this case */ } else { newloc = pathloc->mt_entry->mt_point_node; 48c88: 4878 0014 pea 14 <== NOT EXECUTED 48c8c: 260e movel %fp,%d3 <== NOT EXECUTED 48c8e: 4868 0008 pea %a0@(8) <== NOT EXECUTED 48c92: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48c98: 6000 00b2 braw 48d4c <== NOT EXECUTED pathnamelen+len, flags,pathloc); } } else { if ( !node->Parent ) 48c9c: 266b 0008 moveal %a3@(8),%a3 <== NOT EXECUTED 48ca0: 6062 bras 48d04 <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 48ca2: 202b 0048 movel %a3@(72),%d0 48ca6: 7203 moveq #3,%d1 48ca8: b280 cmpl %d0,%d1 48caa: 6610 bnes 48cbc <== ALWAYS TAKEN IMFS_evaluate_hard_link( pathloc, 0 ); 48cac: 42a7 clrl %sp@- <== NOT EXECUTED 48cae: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48cb0: 4eb9 0004 8b7e jsr 48b7e <== NOT EXECUTED node = pathloc->node_access; 48cb6: 2652 moveal %a2@,%a3 <== NOT EXECUTED 48cb8: 508f addql #8,%sp <== NOT EXECUTED 48cba: 601c bras 48cd8 <== NOT EXECUTED * It would be a design error if we evaluated the link and * was broken. */ IMFS_assert( node ); } else if ( node->type == IMFS_SYM_LINK ) { 48cbc: 7204 moveq #4,%d1 48cbe: b280 cmpl %d0,%d1 48cc0: 6616 bnes 48cd8 <== ALWAYS TAKEN result = IMFS_evaluate_sym_link( pathloc, 0 ); 48cc2: 42a7 clrl %sp@- <== NOT EXECUTED 48cc4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48cc6: 4eb9 0004 8dba jsr 48dba <== NOT EXECUTED /* * In contrast to a hard link, it is possible to have a broken * symbolic link. */ node = pathloc->node_access; 48ccc: 2652 moveal %a2@,%a3 <== NOT EXECUTED if ( result == -1 ) 48cce: 508f addql #8,%sp <== NOT EXECUTED 48cd0: 72ff moveq #-1,%d1 <== NOT EXECUTED 48cd2: b280 cmpl %d0,%d1 <== NOT EXECUTED 48cd4: 6700 00d6 beqw 48dac <== NOT EXECUTED } /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 48cd8: 7001 moveq #1,%d0 48cda: b0ab 0048 cmpl %a3@(72),%d0 48cde: 6710 beqs 48cf0 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOTDIR ); 48ce0: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48ce6: 7814 moveq #20,%d4 <== NOT EXECUTED 48ce8: 2040 moveal %d0,%a0 <== NOT EXECUTED 48cea: 2084 movel %d4,%a0@ <== NOT EXECUTED 48cec: 6000 ff40 braw 48c2e <== NOT EXECUTED /* * If we are at a node that is a mount point. Set loc to the * new fs root node and let them finish evaluating the path. */ if ( node->info.directory.mt_fs != NULL ) { 48cf0: 206b 0058 moveal %a3@(88),%a0 48cf4: 4a88 tstl %a0 48cf6: 6644 bnes 48d3c <== NEVER TAKEN } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48cf8: 2f05 movel %d5,%sp@- 48cfa: 2047 moveal %d7,%a0 48cfc: 2f0b movel %a3,%sp@- 48cfe: 4e90 jsr %a0@ if ( !node ) 48d00: 508f addql #8,%sp } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48d02: 2640 moveal %d0,%a3 if ( !node ) 48d04: 4a8b tstl %a3 48d06: 6700 ff1a beqw 48c22 /* * Set the node access to the point we have found. */ pathloc->node_access = node; 48d0a: 248b movel %a3,%a2@ 48d0c: 6000 fef4 braw 48c02 case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 48d10: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48d16: 765b moveq #91,%d3 <== NOT EXECUTED 48d18: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d1a: 2083 movel %d3,%a0@ <== NOT EXECUTED 48d1c: 6000 ff10 braw 48c2e <== NOT EXECUTED /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 48d20: 4a83 tstl %d3 48d22: 6708 beqs 48d2c 48d24: 7004 moveq #4,%d0 48d26: b083 cmpl %d3,%d0 48d28: 6600 fed8 bnew 48c02 * new fs root node and let let the mounted filesystem set the handlers. * * NOTE: The behavior of stat() on a mount point appears to be questionable. */ if ( node->type == IMFS_DIRECTORY ) { 48d2c: 7201 moveq #1,%d1 48d2e: b2ab 0048 cmpl %a3@(72),%d1 48d32: 664e bnes 48d82 if ( node->info.directory.mt_fs != NULL ) { 48d34: 206b 0058 moveal %a3@(88),%a0 48d38: 4a88 tstl %a0 48d3a: 6746 beqs 48d82 <== ALWAYS TAKEN newloc = node->info.directory.mt_fs->mt_fs_root; 48d3c: 4878 0014 pea 14 <== NOT EXECUTED 48d40: 260e movel %fp,%d3 <== NOT EXECUTED 48d42: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48d48: 4868 001c pea %a0@(28) <== NOT EXECUTED 48d4c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48d4e: 47f9 0004 c330 lea 4c330 ,%a3 <== NOT EXECUTED 48d54: 4e93 jsr %a3@ <== NOT EXECUTED *pathloc = newloc; 48d56: 4878 0014 pea 14 <== NOT EXECUTED 48d5a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48d5c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d5e: 4e93 jsr %a3@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], 48d60: 226a 000c moveal %a2@(12),%a1 <== NOT EXECUTED 48d64: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d66: 206e fffc moveal %fp@(-4),%a0 <== NOT EXECUTED 48d6a: 9488 subl %a0,%d2 <== NOT EXECUTED 48d6c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48d6e: 4874 8800 pea %a4@(00000000,%a0:l) <== NOT EXECUTED 48d72: 4875 2800 pea %a5@(00000000,%d2:l) <== NOT EXECUTED 48d76: 2051 moveal %a1@,%a0 <== NOT EXECUTED 48d78: 4e90 jsr %a0@ <== NOT EXECUTED 48d7a: 4fef 0028 lea %sp@(40),%sp <== NOT EXECUTED 48d7e: 2600 movel %d0,%d3 <== NOT EXECUTED 48d80: 602c bras 48dae <== NOT EXECUTED flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 48d82: 2f0a movel %a2,%sp@- 48d84: 4eb9 0004 8ad8 jsr 48ad8 48d8a: 2600 movel %d0,%d3 /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 48d8c: 2e84 movel %d4,%sp@ 48d8e: 2f0a movel %a2,%sp@- 48d90: 4eb9 0004 8b46 jsr 48b46 48d96: 508f addql #8,%sp 48d98: 4a80 tstl %d0 48d9a: 6612 bnes 48dae <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EACCES ); 48d9c: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48da2: 740d moveq #13,%d2 <== NOT EXECUTED 48da4: 2040 moveal %d0,%a0 <== NOT EXECUTED 48da6: 2082 movel %d2,%a0@ <== NOT EXECUTED 48da8: 6000 fe84 braw 48c2e <== NOT EXECUTED 48dac: 2600 movel %d0,%d3 <== NOT EXECUTED return result; } 48dae: 2003 movel %d3,%d0 48db0: 4cee 3cfc ff9c moveml %fp@(-100),%d2-%d7/%a2-%a5 48db6: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048ece : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48ece: 4e56 ff9c linkw %fp,#-100 48ed2: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 48ed6: 246e 000c moveal %fp@(12),%a2 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 48eda: 2c0e movel %fp,%d6 const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { int i = 0; 48edc: 4282 clrl %d2 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 48ede: 0686 ffff ffc7 addil #-57,%d6 if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 48ee4: 2a3c 0004 8e36 movel #298550,%d5 int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48eea: 286e 0008 moveal %fp@(8),%a4 /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 48eee: 2652 moveal %a2@,%a3 /* * Get the path length. */ pathlen = strlen( path ); 48ef0: 2f0c movel %a4,%sp@- int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48ef2: 2a6e 0010 moveal %fp@(16),%a5 node = pathloc->node_access; /* * Get the path length. */ pathlen = strlen( path ); 48ef6: 4eb9 0004 cedc jsr 4cedc 48efc: 588f addql #4,%sp 48efe: 2800 movel %d0,%d4 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 48f00: 486e fffc pea %fp@(-4) 48f04: 2f06 movel %d6,%sp@- 48f06: 2f04 movel %d4,%sp@- 48f08: 4874 2800 pea %a4@(00000000,%d2:l) 48f0c: 4eb9 0004 91e8 jsr 491e8 pathlen -= len; 48f12: 2e2e fffc movel %fp@(-4),%d7 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 48f16: 2600 movel %d0,%d3 pathlen -= len; 48f18: 9887 subl %d7,%d4 i += len; if ( !pathloc->node_access ) 48f1a: 4fef 0010 lea %sp@(16),%sp 48f1e: 4a92 tstl %a2@ 48f20: 6700 0154 beqw 49076 /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 48f24: 4a80 tstl %d0 48f26: 671c beqs 48f44 if ( node->type == IMFS_DIRECTORY ) 48f28: 7001 moveq #1,%d0 48f2a: b0ab 0048 cmpl %a3@(72),%d0 48f2e: 6614 bnes 48f44 <== NEVER TAKEN if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 48f30: 4878 0001 pea 1 48f34: 2f0a movel %a2,%sp@- 48f36: 4eb9 0004 8b46 jsr 48b46 48f3c: 508f addql #8,%sp 48f3e: 4a80 tstl %d0 48f40: 6700 017c beqw 490be rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 48f44: 2652 moveal %a2@,%a3 while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); pathlen -= len; i += len; 48f46: d487 addl %d7,%d2 if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; switch( type ) { 48f48: 7002 moveq #2,%d0 48f4a: b083 cmpl %d3,%d0 48f4c: 671a beqs 48f68 <== NEVER TAKEN 48f4e: 6508 bcss 48f58 48f50: 4a83 tstl %d3 48f52: 6700 00e4 beqw 49038 48f56: 60a8 bras 48f00 48f58: 7203 moveq #3,%d1 48f5a: b283 cmpl %d3,%d1 48f5c: 6740 beqs 48f9e <== ALWAYS TAKEN 48f5e: 7004 moveq #4,%d0 <== NOT EXECUTED 48f60: b083 cmpl %d3,%d0 <== NOT EXECUTED 48f62: 669c bnes 48f00 <== NOT EXECUTED 48f64: 6000 00e2 braw 49048 <== NOT EXECUTED case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 48f68: 2079 0005 af2c moveal 5af2c ,%a0 <== NOT EXECUTED 48f6e: b7e8 0018 cmpal %a0@(24),%a3 <== NOT EXECUTED 48f72: 678c beqs 48f00 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 48f74: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 48f78: b7e8 001c cmpal %a0@(28),%a3 <== NOT EXECUTED 48f7c: 6612 bnes 48f90 <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; 48f7e: 4878 0014 pea 14 <== NOT EXECUTED 48f82: 260e movel %fp,%d3 <== NOT EXECUTED 48f84: 4868 0008 pea %a0@(8) <== NOT EXECUTED 48f88: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48f8e: 605c bras 48fec <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); } } else { if ( !node->Parent ) 48f90: 266b 0008 moveal %a3@(8),%a3 <== NOT EXECUTED 48f94: 4a8b tstl %a3 <== NOT EXECUTED 48f96: 6600 009a bnew 49032 <== NOT EXECUTED 48f9a: 6000 00da braw 49076 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 48f9e: 202b 0048 movel %a3@(72),%d0 48fa2: 7203 moveq #3,%d1 48fa4: b280 cmpl %d0,%d1 48fa6: 6706 beqs 48fae <== NEVER TAKEN result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 48fa8: 7204 moveq #4,%d1 48faa: b280 cmpl %d0,%d1 48fac: 6614 bnes 48fc2 <== ALWAYS TAKEN result = IMFS_evaluate_link( pathloc, 0 ); 48fae: 42a7 clrl %sp@- <== NOT EXECUTED 48fb0: 2045 moveal %d5,%a0 <== NOT EXECUTED 48fb2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48fb4: 4e90 jsr %a0@ <== NOT EXECUTED if ( result == -1 ) 48fb6: 508f addql #8,%sp <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 48fb8: 2600 movel %d0,%d3 <== NOT EXECUTED if ( result == -1 ) 48fba: 70ff moveq #-1,%d0 <== NOT EXECUTED 48fbc: b083 cmpl %d3,%d0 <== NOT EXECUTED 48fbe: 6700 010c beqw 490cc <== NOT EXECUTED return -1; } node = pathloc->node_access; 48fc2: 2052 moveal %a2@,%a0 if ( !node ) 48fc4: 4a88 tstl %a0 48fc6: 6700 00d6 beqw 4909e /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 48fca: 7001 moveq #1,%d0 48fcc: b0a8 0048 cmpl %a0@(72),%d0 48fd0: 6600 00cc bnew 4909e /* * If we are at a node that is a mount point. Set loc to the * new fs root node and let them finish evaluating the path. */ if ( node->info.directory.mt_fs != NULL ) { 48fd4: 2268 0058 moveal %a0@(88),%a1 48fd8: 4a89 tstl %a1 48fda: 6744 beqs 49020 <== ALWAYS TAKEN newloc = node->info.directory.mt_fs->mt_fs_root; 48fdc: 4878 0014 pea 14 <== NOT EXECUTED 48fe0: 260e movel %fp,%d3 <== NOT EXECUTED 48fe2: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48fe8: 4869 001c pea %a1@(28) <== NOT EXECUTED 48fec: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48fee: 47f9 0004 c330 lea 4c330 ,%a3 <== NOT EXECUTED 48ff4: 4e93 jsr %a3@ <== NOT EXECUTED *pathloc = newloc; 48ff6: 4878 0014 pea 14 <== NOT EXECUTED 48ffa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48ffc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48ffe: 4e93 jsr %a3@ <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 49000: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 49004: 94ae fffc subl %fp@(-4),%d2 <== NOT EXECUTED 49008: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4900a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4900c: 4874 2800 pea %a4@(00000000,%d2:l) <== NOT EXECUTED 49010: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 49014: 4e90 jsr %a0@ <== NOT EXECUTED 49016: 4fef 0024 lea %sp@(36),%sp <== NOT EXECUTED 4901a: 2600 movel %d0,%d3 <== NOT EXECUTED 4901c: 6000 00ae braw 490cc <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 49020: 2f06 movel %d6,%sp@- 49022: 2f08 movel %a0,%sp@- 49024: 4eb9 0004 917c jsr 4917c /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 4902a: 508f addql #8,%sp /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4902c: 2640 moveal %d0,%a3 /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 4902e: 4a80 tstl %d0 49030: 6724 beqs 49056 done = true; else pathloc->node_access = node; 49032: 248b movel %a3,%a2@ 49034: 6000 feca braw 48f00 break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 49038: 4eb9 0004 ba84 jsr 4ba84 <__errno> 4903e: 7c11 moveq #17,%d6 49040: 2040 moveal %d0,%a0 49042: 2086 movel %d6,%a0@ 49044: 6000 0084 braw 490ca break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 49048: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4904e: 7a5b moveq #91,%d5 <== NOT EXECUTED 49050: 2040 moveal %d0,%a0 <== NOT EXECUTED 49052: 2085 movel %d5,%a0@ <== NOT EXECUTED 49054: 6074 bras 490ca <== NOT EXECUTED case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 49056: 2002 movel %d2,%d0 49058: 90ae fffc subl %fp@(-4),%d0 * We have evaluated the path as far as we can. * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { if ( !IMFS_is_separator( path[ i ] ) ) 4905c: 47f9 0004 34c8 lea 434c8 ,%a3 case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 49062: d08c addl %a4,%d0 * pathloc is returned with a pointer to the parent of the new node. * name is returned with a pointer to the first character in the * new node name. The parent node is verified to be a directory. */ int IMFS_evaluate_for_make( 49064: d9c2 addal %d2,%a4 case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 49066: 2a80 movel %d0,%a5@ /* * We have evaluated the path as far as we can. * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { 49068: 601a bras 49084 if ( !IMFS_is_separator( path[ i ] ) ) 4906a: 49c0 extbl %d0 <== NOT EXECUTED 4906c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4906e: 4e93 jsr %a3@ <== NOT EXECUTED 49070: 588f addql #4,%sp <== NOT EXECUTED 49072: 4a80 tstl %d0 <== NOT EXECUTED 49074: 660e bnes 49084 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 49076: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4907c: 7802 moveq #2,%d4 <== NOT EXECUTED 4907e: 2040 moveal %d0,%a0 <== NOT EXECUTED 49080: 2084 movel %d4,%a0@ <== NOT EXECUTED 49082: 6046 bras 490ca <== NOT EXECUTED /* * We have evaluated the path as far as we can. * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { 49084: 101c moveb %a4@+,%d0 49086: 66e2 bnes 4906a <== NEVER TAKEN /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 49088: 2f0a movel %a2,%sp@- 4908a: 4eb9 0004 8ad8 jsr 48ad8 /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 49090: 2052 moveal %a2@,%a0 /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 49092: 2600 movel %d0,%d3 /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 49094: 588f addql #4,%sp 49096: 7001 moveq #1,%d0 49098: b0a8 0048 cmpl %a0@(72),%d0 4909c: 670e beqs 490ac <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOTDIR ); 4909e: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 490a4: 7614 moveq #20,%d3 <== NOT EXECUTED 490a6: 2040 moveal %d0,%a0 <== NOT EXECUTED 490a8: 2083 movel %d3,%a0@ <== NOT EXECUTED 490aa: 601e bras 490ca <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) 490ac: 4878 0003 pea 3 490b0: 2f0a movel %a2,%sp@- 490b2: 4eb9 0004 8b46 jsr 48b46 490b8: 508f addql #8,%sp 490ba: 4a80 tstl %d0 490bc: 660e bnes 490cc <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EACCES ); 490be: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 490c4: 740d moveq #13,%d2 <== NOT EXECUTED 490c6: 2040 moveal %d0,%a0 <== NOT EXECUTED 490c8: 2082 movel %d2,%a0@ <== NOT EXECUTED 490ca: 76ff moveq #-1,%d3 return result; } 490cc: 2003 movel %d3,%d0 490ce: 4cee 3cfc ff9c moveml %fp@(-100),%d2-%d7/%a2-%a5 490d4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048b7e : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48b7e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48b82: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48b84: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_assert( jnode->type == IMFS_HARD_LINK ); /* * Set the hard link value and the handlers. */ node->node_access = jnode->info.hard_link.link_node; 48b88: 2052 moveal %a2@,%a0 <== NOT EXECUTED 48b8a: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 48b8e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48b90: 4eb9 0004 8ad8 jsr 48ad8 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 48b96: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48b9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48b9c: 4eb9 0004 8b46 jsr 48b46 <== NOT EXECUTED 48ba2: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 48ba6: 4a80 tstl %d0 <== NOT EXECUTED 48ba8: 6610 bnes 48bba <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 48baa: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48bb0: 720d moveq #13,%d1 <== NOT EXECUTED 48bb2: 2040 moveal %d0,%a0 <== NOT EXECUTED 48bb4: 70ff moveq #-1,%d0 <== NOT EXECUTED 48bb6: 2081 movel %d1,%a0@ <== NOT EXECUTED 48bb8: 6002 bras 48bbc <== NOT EXECUTED return result; 48bba: 4280 clrl %d0 <== NOT EXECUTED } 48bbc: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48bc0: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048e36 : */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48e36: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48e3a: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 48e3e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); 48e42: 4bf9 0004 8dba lea 48dba ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 48e48: 49f9 0004 8b7e lea 48b7e ,%a4 <== NOT EXECUTED */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48e4e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48e52: 2079 0005 af2c moveal 5af2c ,%a0 <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 48e58: 7205 moveq #5,%d1 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48e5a: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED { IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 48e5e: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48e60: 5280 addql #1,%d0 <== NOT EXECUTED 48e62: 3140 0030 movew %d0,%a0@(48) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 48e66: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48e6c: b280 cmpl %d0,%d1 <== NOT EXECUTED 48e6e: 6416 bccs 48e86 <== NOT EXECUTED rtems_filesystem_link_counts = 0; 48e70: 4240 clrw %d0 <== NOT EXECUTED 48e72: 3140 0030 movew %d0,%a0@(48) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 48e76: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48e7c: 725c moveq #92,%d1 <== NOT EXECUTED 48e7e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e80: 70ff moveq #-1,%d0 <== NOT EXECUTED 48e82: 2081 movel %d1,%a0@ <== NOT EXECUTED 48e84: 603e bras 48ec4 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 48e86: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48e8a: 7203 moveq #3,%d1 <== NOT EXECUTED 48e8c: b280 cmpl %d0,%d1 <== NOT EXECUTED 48e8e: 6608 bnes 48e98 <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); 48e90: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e92: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e94: 4e94 jsr %a4@ <== NOT EXECUTED 48e96: 600c bras 48ea4 <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) 48e98: 7204 moveq #4,%d1 <== NOT EXECUTED 48e9a: b280 cmpl %d0,%d1 <== NOT EXECUTED 48e9c: 660c bnes 48eaa <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); 48e9e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48ea0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48ea2: 4e95 jsr %a5@ <== NOT EXECUTED 48ea4: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 48ea6: 4a80 tstl %d0 <== NOT EXECUTED 48ea8: 660e bnes 48eb8 <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || 48eaa: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48eae: 7201 moveq #1,%d1 <== NOT EXECUTED 48eb0: 5780 subql #3,%d0 <== NOT EXECUTED 48eb2: b280 cmpl %d0,%d1 <== NOT EXECUTED 48eb4: 649c bccs 48e52 <== NOT EXECUTED 48eb6: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 48eb8: 2079 0005 af2c moveal 5af2c ,%a0 <== NOT EXECUTED 48ebe: 4241 clrw %d1 <== NOT EXECUTED 48ec0: 3141 0030 movew %d1,%a0@(48) <== NOT EXECUTED return result; } 48ec4: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 48eca: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048b46 : uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) 48b46: 72f8 moveq #-8,%d1 */ int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 48b48: 4e56 0000 linkw %fp,#0 48b4c: 202e 000c movel %fp@(12),%d0 uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) 48b50: c280 andl %d0,%d1 48b52: 6710 beqs 48b64 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EPERM ); 48b54: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48b5a: 2040 moveal %d0,%a0 <== NOT EXECUTED 48b5c: 7001 moveq #1,%d0 <== NOT EXECUTED 48b5e: 2080 movel %d0,%a0@ <== NOT EXECUTED 48b60: 70ff moveq #-1,%d0 <== NOT EXECUTED 48b62: 6016 bras 48b7a <== NOT EXECUTED /* * If all of the flags are set we have permission * to do this. */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) 48b64: 206e 0008 moveal %fp@(8),%a0 */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; 48b68: ed88 lsll #6,%d0 /* * If all of the flags are set we have permission * to do this. */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) 48b6a: 2050 moveal %a0@,%a0 48b6c: 2200 movel %d0,%d1 48b6e: c2a8 002e andl %a0@(46),%d1 gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) rtems_set_errno_and_return_minus_one( EPERM ); 48b72: b081 cmpl %d1,%d0 48b74: 57c0 seq %d0 48b76: 49c0 extbl %d0 48b78: 4480 negl %d0 */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) return 1; return 0; } 48b7a: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048dba : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48dba: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48dbe: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 48dc2: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 48dc6: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * Move the node_access to either the symbolic links parent or * root depending on the symbolic links path. */ node->node_access = jnode->Parent; 48dc8: 24ab 0008 movel %a3@(8),%a2@ <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48dcc: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED * Move the node_access to either the symbolic links parent or * root depending on the symbolic links path. */ node->node_access = jnode->Parent; rtems_filesystem_get_sym_start_loc( 48dd0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48dd2: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48dd6: 2f2b 004c movel %a3@(76),%sp@- <== NOT EXECUTED 48dda: 4eb9 0004 9acc jsr 49acc <== NOT EXECUTED ); /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 48de0: 242b 004c movel %a3@(76),%d2 <== NOT EXECUTED 48de4: d4ae fffc addl %fp@(-4),%d2 <== NOT EXECUTED 48de8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48dea: 4eb9 0004 cedc jsr 4cedc <== NOT EXECUTED 48df0: 2e8a movel %a2,%sp@ <== NOT EXECUTED 48df2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48df4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48df6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48df8: 4eb9 0004 8bc4 jsr 48bc4 <== NOT EXECUTED 48dfe: 2400 movel %d0,%d2 <== NOT EXECUTED strlen( &jnode->info.sym_link.name[i] ), flags, node ); IMFS_Set_handlers( node ); 48e00: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e02: 4eb9 0004 8ad8 jsr 48ad8 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 48e08: 4fef 001c lea %sp@(28),%sp <== NOT EXECUTED 48e0c: 2e83 movel %d3,%sp@ <== NOT EXECUTED 48e0e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e10: 4eb9 0004 8b46 jsr 48b46 <== NOT EXECUTED 48e16: 508f addql #8,%sp <== NOT EXECUTED 48e18: 4a80 tstl %d0 <== NOT EXECUTED 48e1a: 660e bnes 48e2a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 48e1c: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 48e22: 74ff moveq #-1,%d2 <== NOT EXECUTED 48e24: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e26: 700d moveq #13,%d0 <== NOT EXECUTED 48e28: 2080 movel %d0,%a0@ <== NOT EXECUTED return result; } 48e2a: 2002 movel %d2,%d0 <== NOT EXECUTED 48e2c: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 48e32: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004b5e4 : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4b5e4: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4b5e8: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4b5ec: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4b5ee: 2450 moveal %a0@,%a2 <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b5f0: 222e 000c movel %fp@(12),%d1 <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b5f4: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b5f8: 0281 0000 0fff andil #4095,%d1 <== NOT EXECUTED /* * Change only the RWX permissions on the jnode to mode. */ jnode->st_mode &= ~(S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b5fe: 0280 ffff f000 andil #-4096,%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b604: 8280 orl %d0,%d1 <== NOT EXECUTED 4b606: 2541 002e movel %d1,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4b60a: 42a7 clrl %sp@- <== NOT EXECUTED 4b60c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4b610: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4b616: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 4b61c: 4280 clrl %d0 <== NOT EXECUTED 4b61e: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4b622: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 0004b628 : int IMFS_fdatasync( rtems_libio_t *iop ) { return 0; } 4b628: 4280 clrl %d0 <== NOT EXECUTED #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 4b62a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4b62e: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00042fb2 : } int IMFS_fifo_close( rtems_libio_t *iop ) { 42fb2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42fb6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42fb8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42fba: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED int err = 0; IMFS_jnode_t *jnode = iop->pathinfo.node_access; 42fbe: 266a 0018 moveal %a2@(24),%a3 <== NOT EXECUTED pipe_release(&JNODE2PIPE(jnode), iop); 42fc2: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42fc4: 486b 004c pea %a3@(76) <== NOT EXECUTED 42fc8: 4eb9 0004 b0b2 jsr 4b0b2 <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; 42fce: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED 42fd4: c1aa 0014 andl %d0,%a2@(20) <== NOT EXECUTED IMFS_check_node_remove(jnode); 42fd8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42fda: 4eb9 0004 354c jsr 4354c <== NOT EXECUTED IMFS_FIFO_RETURN(err); } 42fe0: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 42fe4: 4280 clrl %d0 <== NOT EXECUTED 42fe6: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 42fea: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042e7c : int IMFS_fifo_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 42e7c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42e80: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 42e84: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 42e88: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 42e8c: 2f02 movel %d2,%sp@- <== NOT EXECUTED int err; if (command == FIONBIO) { 42e8e: 0c80 8004 667e cmpil #-2147195266,%d0 <== NOT EXECUTED 42e94: 661a bnes 42eb0 <== NOT EXECUTED if (buffer == NULL) 42e96: 4a89 tstl %a1 <== NOT EXECUTED 42e98: 6734 beqs 42ece <== NOT EXECUTED err = -EFAULT; else { if (*(int *)buffer) 42e9a: 4a91 tstl %a1@ <== NOT EXECUTED 42e9c: 6708 beqs 42ea6 <== NOT EXECUTED iop->flags |= LIBIO_FLAGS_NO_DELAY; 42e9e: 7001 moveq #1,%d0 <== NOT EXECUTED 42ea0: 81a8 0014 orl %d0,%a0@(20) <== NOT EXECUTED 42ea4: 6006 bras 42eac <== NOT EXECUTED else iop->flags &= ~LIBIO_FLAGS_NO_DELAY; 42ea6: 70fe moveq #-2,%d0 <== NOT EXECUTED 42ea8: c1a8 0014 andl %d0,%a0@(20) <== NOT EXECUTED return 0; 42eac: 4282 clrl %d2 <== NOT EXECUTED 42eae: 602e bras 42ede <== NOT EXECUTED } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); 42eb0: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42eb2: 2f09 movel %a1,%sp@- <== NOT EXECUTED 42eb4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42eb6: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 42eba: 2f28 004c movel %a0@(76),%sp@- <== NOT EXECUTED 42ebe: 4eb9 0004 b796 jsr 4b796 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 42ec4: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_NO_DELAY; return 0; } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); 42ec8: 2400 movel %d0,%d2 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 42eca: 6c12 bges 42ede <== NOT EXECUTED 42ecc: 6002 bras 42ed0 <== NOT EXECUTED { int err; if (command == FIONBIO) { if (buffer == NULL) err = -EFAULT; 42ece: 74f2 moveq #-14,%d2 <== NOT EXECUTED } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); 42ed0: 4eb9 0004 d570 jsr 4d570 <__errno> <== NOT EXECUTED 42ed6: 4482 negl %d2 <== NOT EXECUTED 42ed8: 2040 moveal %d0,%a0 <== NOT EXECUTED 42eda: 2082 movel %d2,%a0@ <== NOT EXECUTED 42edc: 74ff moveq #-1,%d2 <== NOT EXECUTED } 42ede: 2002 movel %d2,%d0 <== NOT EXECUTED 42ee0: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 42ee4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042e24 : rtems_off64_t IMFS_fifo_lseek( rtems_libio_t *iop, rtems_off64_t offset, int whence ) { 42e24: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42e28: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 42e2c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42e2e: 2f02 movel %d2,%sp@- <== NOT EXECUTED off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop); 42e30: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42e32: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 42e36: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 42e3a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 42e3e: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 42e42: 2f28 004c movel %a0@(76),%sp@- <== NOT EXECUTED 42e46: 4eb9 0004 b7f6 jsr 4b7f6 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 42e4c: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED rtems_libio_t *iop, rtems_off64_t offset, int whence ) { off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop); 42e50: 2600 movel %d0,%d3 <== NOT EXECUTED 42e52: 2400 movel %d0,%d2 <== NOT EXECUTED 42e54: 5bc1 smi %d1 <== NOT EXECUTED 42e56: 49c1 extbl %d1 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 42e58: 4a81 tstl %d1 <== NOT EXECUTED 42e5a: 6a10 bpls 42e6c <== NOT EXECUTED 42e5c: 4eb9 0004 d570 jsr 4d570 <__errno> <== NOT EXECUTED 42e62: 4483 negl %d3 <== NOT EXECUTED 42e64: 2040 moveal %d0,%a0 <== NOT EXECUTED 42e66: 72ff moveq #-1,%d1 <== NOT EXECUTED 42e68: 74ff moveq #-1,%d2 <== NOT EXECUTED 42e6a: 2083 movel %d3,%a0@ <== NOT EXECUTED } 42e6c: 2001 movel %d1,%d0 <== NOT EXECUTED 42e6e: 2202 movel %d2,%d1 <== NOT EXECUTED 42e70: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 42e74: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 42e78: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042fee : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 42fee: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42ff2: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 42ff6: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = fifo_open(&JNODE2PIPE(jnode), iop); 42ff8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42ffa: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 42ffe: 41e8 004c lea %a0@(76),%a0 <== NOT EXECUTED 43002: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43004: 4eb9 0004 b13a jsr 4b13a <== NOT EXECUTED IMFS_FIFO_RETURN(err); 4300a: 508f addql #8,%sp <== NOT EXECUTED uint32_t mode ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = fifo_open(&JNODE2PIPE(jnode), iop); 4300c: 2400 movel %d0,%d2 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 4300e: 6c0e bges 4301e <== NOT EXECUTED 43010: 4eb9 0004 d570 jsr 4d570 <__errno> <== NOT EXECUTED 43016: 4482 negl %d2 <== NOT EXECUTED 43018: 2040 moveal %d0,%a0 <== NOT EXECUTED 4301a: 2082 movel %d2,%a0@ <== NOT EXECUTED 4301c: 74ff moveq #-1,%d2 <== NOT EXECUTED } 4301e: 2002 movel %d2,%d0 <== NOT EXECUTED 43020: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 43024: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042f50 : ssize_t IMFS_fifo_read( rtems_libio_t *iop, void *buffer, size_t count ) { 42f50: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 42f54: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 42f58: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; 42f5a: 2468 0018 moveal %a0@(24),%a2 <== NOT EXECUTED ssize_t IMFS_fifo_read( rtems_libio_t *iop, void *buffer, size_t count ) { 42f5e: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); 42f60: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42f62: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 42f66: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 42f6a: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 42f6e: 4eb9 0004 b4c4 jsr 4b4c4 <== NOT EXECUTED if (err > 0) 42f74: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED size_t count ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); 42f78: 2400 movel %d0,%d2 <== NOT EXECUTED if (err > 0) 42f7a: 6f16 bles 42f92 <== NOT EXECUTED IMFS_update_atime(jnode); 42f7c: 42a7 clrl %sp@- <== NOT EXECUTED 42f7e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42f82: 4eb9 0004 3ff4 jsr 43ff4 <== NOT EXECUTED 42f88: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED 42f8e: 508f addql #8,%sp <== NOT EXECUTED 42f90: 6012 bras 42fa4 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 42f92: 4a80 tstl %d0 <== NOT EXECUTED 42f94: 670e beqs 42fa4 <== NOT EXECUTED 42f96: 4eb9 0004 d570 jsr 4d570 <__errno> <== NOT EXECUTED 42f9c: 4482 negl %d2 <== NOT EXECUTED 42f9e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42fa0: 2082 movel %d2,%a0@ <== NOT EXECUTED 42fa2: 74ff moveq #-1,%d2 <== NOT EXECUTED } 42fa4: 2002 movel %d2,%d0 <== NOT EXECUTED 42fa6: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 42faa: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 42fae: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042ee8 : ssize_t IMFS_fifo_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 42ee8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 42eec: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 42ef0: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; 42ef2: 2468 0018 moveal %a0@(24),%a2 <== NOT EXECUTED ssize_t IMFS_fifo_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 42ef6: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); 42ef8: 2f08 movel %a0,%sp@- <== NOT EXECUTED 42efa: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 42efe: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 42f02: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 42f06: 4eb9 0004 b61e jsr 4b61e <== NOT EXECUTED if (err > 0) { 42f0c: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED size_t count ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); 42f10: 2400 movel %d0,%d2 <== NOT EXECUTED if (err > 0) { 42f12: 6f1c bles 42f30 <== NOT EXECUTED IMFS_mtime_ctime_update(jnode); 42f14: 42a7 clrl %sp@- <== NOT EXECUTED 42f16: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42f1a: 4eb9 0004 3ff4 jsr 43ff4 <== NOT EXECUTED 42f20: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED 42f24: 508f addql #8,%sp <== NOT EXECUTED 42f26: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED 42f2a: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED 42f2e: 6012 bras 42f42 <== NOT EXECUTED } IMFS_FIFO_RETURN(err); 42f30: 4a80 tstl %d0 <== NOT EXECUTED 42f32: 670e beqs 42f42 <== NOT EXECUTED 42f34: 4eb9 0004 d570 jsr 4d570 <__errno> <== NOT EXECUTED 42f3a: 4482 negl %d2 <== NOT EXECUTED 42f3c: 2040 moveal %d0,%a0 <== NOT EXECUTED 42f3e: 2082 movel %d2,%a0@ <== NOT EXECUTED 42f40: 74ff moveq #-1,%d2 <== NOT EXECUTED } 42f42: 2002 movel %d2,%d0 <== NOT EXECUTED 42f44: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 42f48: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 42f4c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004917c : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 4917c: 4e56 fff0 linkw %fp,#-16 49180: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49184: 4879 0005 a210 pea 5a210 4918a: 49f9 0004 c984 lea 4c984 ,%a4 IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 49190: 242e 000c movel %fp@(12),%d2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49194: 2f02 movel %d2,%sp@- IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 49196: 246e 0008 moveal %fp@(8),%a2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 4919a: 4e94 jsr %a4@ 4919c: 508f addql #8,%sp 4919e: 4a80 tstl %d0 491a0: 673a beqs 491dc <== NEVER TAKEN return directory; if ( !strcmp( name, dotdotname ) ) 491a2: 4879 0005 a212 pea 5a212 491a8: 2f02 movel %d2,%sp@- 491aa: 4e94 jsr %a4@ 491ac: 508f addql #8,%sp 491ae: 4a80 tstl %d0 491b0: 6606 bnes 491b8 <== ALWAYS TAKEN return directory->Parent; 491b2: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 491b6: 6024 bras 491dc <== NOT EXECUTED the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; 491b8: 266a 004c moveal %a2@(76),%a3 491bc: 45ea 0050 lea %a2@(80),%a2 491c0: 6010 bras 491d2 !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; if ( !strcmp( name, the_jnode->name ) ) 491c2: 486b 000c pea %a3@(12) 491c6: 2f02 movel %d2,%sp@- 491c8: 4e94 jsr %a4@ 491ca: 508f addql #8,%sp 491cc: 4a80 tstl %d0 491ce: 670a beqs 491da the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { 491d0: 2653 moveal %a3@,%a3 if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = the_chain->first; 491d2: b5cb cmpal %a3,%a2 491d4: 66ec bnes 491c2 if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; 491d6: 95ca subal %a2,%a2 491d8: 6002 bras 491dc for ( the_node = the_chain->first; !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; 491da: 244b moveal %a3,%a2 if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 491dc: 200a movel %a2,%d0 491de: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 491e4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 000490d8 : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 490d8: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 490dc: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 490e0: 266e 0008 moveal %fp@(8),%a3 <== NOT EXECUTED * Traverse tree that starts at the mt_fs_root and deallocate memory * associated memory space */ jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; loc = temp_mt_entry->mt_fs_root; 490e4: 240e movel %fp,%d2 <== NOT EXECUTED 490e6: 0682 ffff ffec addil #-20,%d2 <== NOT EXECUTED temp_mt_entry->mt_fs_root.node_access = NULL; do { next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); 490ec: 49f9 0004 8ad8 lea 48ad8 ,%a4 <== NOT EXECUTED /* * Traverse tree that starts at the mt_fs_root and deallocate memory * associated memory space */ jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; 490f2: 246b 001c moveal %a3@(28),%a2 <== NOT EXECUTED loc = temp_mt_entry->mt_fs_root; 490f6: 4878 0014 pea 14 <== NOT EXECUTED 490fa: 486b 001c pea %a3@(28) <== NOT EXECUTED 490fe: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49100: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 49106: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4910a: 42ab 001c clrl %a3@(28) <== NOT EXECUTED next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( NULL, &loc ); 4910e: 47f9 0004 2138 lea 42138 ,%a3 <== NOT EXECUTED */ temp_mt_entry->mt_fs_root.node_access = NULL; do { next = jnode->Parent; 49114: 262a 0008 movel %a2@(8),%d3 <== NOT EXECUTED loc.node_access = (void *)jnode; 49118: 2d4a ffec movel %a2,%fp@(-20) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 4911c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4911e: 4e94 jsr %a4@ <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { 49120: 588f addql #4,%sp <== NOT EXECUTED 49122: 7001 moveq #1,%d0 <== NOT EXECUTED 49124: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 49128: 660e bnes 49138 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE Chain_Node *_Chain_Tail( Chain_Control *the_chain ) { return (Chain_Node *) &the_chain->permanent_null; 4912a: 200a movel %a2,%d0 <== NOT EXECUTED 4912c: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 49132: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 49136: 660e bnes 49146 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); 49138: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4913a: 42a7 clrl %sp@- <== NOT EXECUTED 4913c: 4e93 jsr %a3@ <== NOT EXECUTED if (result != 0) 4913e: 508f addql #8,%sp <== NOT EXECUTED 49140: 4a80 tstl %d0 <== NOT EXECUTED 49142: 6626 bnes 4916a <== NOT EXECUTED return -1; jnode = next; 49144: 2443 moveal %d3,%a2 <== NOT EXECUTED } if ( jnode != NULL ) { 49146: 4a8a tstl %a2 <== NOT EXECUTED 49148: 6724 beqs 4916e <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 4914a: 7001 moveq #1,%d0 <== NOT EXECUTED 4914c: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 49150: 66c2 bnes 49114 <== NOT EXECUTED 49152: 200a movel %a2,%d0 <== NOT EXECUTED 49154: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED if ( jnode_has_children( jnode ) ) 4915a: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 4915e: 67b4 beqs 49114 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 49160: 246a 004c moveal %a2@(76),%a2 <== NOT EXECUTED } } } while (jnode != NULL); 49164: 4a8a tstl %a2 <== NOT EXECUTED 49166: 66ac bnes 49114 <== NOT EXECUTED 49168: 6004 bras 4916e <== NOT EXECUTED return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; 4916a: 70ff moveq #-1,%d0 <== NOT EXECUTED 4916c: 6002 bras 49170 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); } } } while (jnode != NULL); return 0; 4916e: 4280 clrl %d0 <== NOT EXECUTED } 49170: 4cee 1c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a4 <== NOT EXECUTED 49176: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 000491e8 : const char *path, int pathlen, char *token, int *token_len ) { 491e8: 4e56 ffe4 linkw %fp,#-28 491ec: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ 491f0: 246e 0010 moveal %fp@(16),%a2 register int i = 0; 491f4: 4283 clrl %d3 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 491f6: 284a moveal %a2,%a4 while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 491f8: 4bf9 0004 34c8 lea 434c8 ,%a5 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 491fe: 266e 0008 moveal %fp@(8),%a3 const char *path, int pathlen, char *token, int *token_len ) { 49202: 282e 000c movel %fp@(12),%d4 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 49206: 141b moveb %a3@+,%d2 while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 49208: 600c bras 49216 token[i] = c; if ( i == IMFS_NAME_MAX ) 4920a: 7020 moveq #32,%d0 * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { token[i] = c; 4920c: 18c2 moveb %d2,%a4@+ if ( i == IMFS_NAME_MAX ) 4920e: b083 cmpl %d3,%d0 49210: 6772 beqs 49284 <== NEVER TAKEN return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 49212: 5283 addql #1,%d3 49214: 141b moveb %a3@+,%d2 /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 49216: 1002 moveb %d2,%d0 49218: 49c0 extbl %d0 4921a: 2f00 movel %d0,%sp@- 4921c: 4e95 jsr %a5@ 4921e: 588f addql #4,%sp 49220: 4a80 tstl %d0 49222: 6604 bnes 49228 49224: b883 cmpl %d3,%d4 49226: 6ee2 bgts 4920a <== ALWAYS TAKEN /* * Copy a seperator into token. */ if ( i == 0 ) { 49228: 4a83 tstl %d3 4922a: 660a bnes 49236 token[i] = c; 4922c: 1482 moveb %d2,%a2@ if ( (token[i] != '\0') && pathlen ) { 4922e: 6714 beqs 49244 49230: 4a84 tstl %d4 49232: 6614 bnes 49248 <== ALWAYS TAKEN 49234: 600e bras 49244 <== NOT EXECUTED i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 49236: 4a32 38ff tstb %a2@(ffffffff,%d3:l) 4923a: 6712 beqs 4924e <== NEVER TAKEN token[i] = '\0'; 4923c: 4200 clrb %d0 4923e: 1580 3800 moveb %d0,%a2@(00000000,%d3:l) 49242: 600a bras 4924e if ( (token[i] != '\0') && pathlen ) { i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; 49244: 4282 clrl %d2 49246: 6008 bras 49250 if ( i == 0 ) { token[i] = c; if ( (token[i] != '\0') && pathlen ) { i++; type = IMFS_CURRENT_DIR; 49248: 7401 moveq #1,%d2 if ( i == 0 ) { token[i] = c; if ( (token[i] != '\0') && pathlen ) { i++; 4924a: 7601 moveq #1,%d3 4924c: 6002 bras 49250 char *token, int *token_len ) { register int i = 0; IMFS_token_types type = IMFS_NAME; 4924e: 7403 moveq #3,%d2 /* * Set token_len to the number of characters copied. */ *token_len = i; 49250: 206e 0014 moveal %fp@(20),%a0 /* * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { 49254: 7003 moveq #3,%d0 /* * Set token_len to the number of characters copied. */ *token_len = i; 49256: 2083 movel %d3,%a0@ /* * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { 49258: b082 cmpl %d2,%d0 4925a: 6632 bnes 4928e if ( strcmp( token, "..") == 0 ) 4925c: 4879 0005 a215 pea 5a215 49262: 47f9 0004 c984 lea 4c984 ,%a3 49268: 2f0a movel %a2,%sp@- 4926a: 4e93 jsr %a3@ 4926c: 508f addql #8,%sp 4926e: 4a80 tstl %d0 49270: 6716 beqs 49288 <== NEVER TAKEN type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 49272: 4879 0005 a216 pea 5a216 49278: 2f0a movel %a2,%sp@- 4927a: 4e93 jsr %a3@ 4927c: 508f addql #8,%sp 4927e: 4a80 tstl %d0 49280: 670a beqs 4928c <== NEVER TAKEN 49282: 600a bras 4928e while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { token[i] = c; if ( i == IMFS_NAME_MAX ) return IMFS_INVALID_TOKEN; 49284: 7404 moveq #4,%d2 <== NOT EXECUTED 49286: 6006 bras 4928e <== NOT EXECUTED * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; 49288: 7402 moveq #2,%d2 <== NOT EXECUTED 4928a: 6002 bras 4928e <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; 4928c: 7401 moveq #1,%d2 <== NOT EXECUTED } return type; } 4928e: 2002 movel %d2,%d0 49290: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 49296: 4e5e unlk %fp ... =============================================================================== 00041d80 : IMFS_jnode_t *jnode; /* * determine/check value for imfs_memfile_bytes_per_block */ IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block, 41d80: 307c 0006 moveaw #6,%a0 int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 41d84: 7210 moveq #16,%d1 const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, const rtems_filesystem_file_handlers_r *directory_handlers, const rtems_filesystem_file_handlers_r *fifo_handlers ) { 41d86: 4e56 fff4 linkw %fp,#-12 IMFS_jnode_t *jnode; /* * determine/check value for imfs_memfile_bytes_per_block */ IMFS_determine_bytes_per_block(&imfs_memfile_bytes_per_block, 41d8a: 2039 0005 ad18 movel 5ad18 ,%d0 const rtems_filesystem_operations_table *op_table, const rtems_filesystem_file_handlers_r *memfile_handlers, const rtems_filesystem_file_handlers_r *directory_handlers, const rtems_filesystem_file_handlers_r *fifo_handlers ) { 41d90: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ 41d94: 246e 0008 moveal %fp@(8),%a2 41d98: 242e 0014 movel %fp@(20),%d2 /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { if (bit_mask == requested_bytes_per_block) { 41d9c: b081 cmpl %d1,%d0 41d9e: 6710 beqs 41db0 is_valid = true; break; } if(bit_mask > requested_bytes_per_block) 41da0: 6d08 blts 41daa int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 41da2: 5388 subql #1,%a0 41da4: d281 addl %d1,%d1 41da6: 4a88 tstl %a0 41da8: 66f2 bnes 41d9c <== ALWAYS TAKEN if(bit_mask > requested_bytes_per_block) break; } *dest_bytes_per_block = ((is_valid) ? requested_bytes_per_block : default_bytes_per_block); 41daa: 203c 0000 0080 movel #128,%d0 break; } if(bit_mask > requested_bytes_per_block) break; } *dest_bytes_per_block = ((is_valid) 41db0: 23c0 0005 bc98 movel %d0,5bc98 /* * Create the root node * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_root_node(); 41db6: 4eb9 0004 8a9c jsr 48a9c temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; 41dbc: 256e 000c 0028 movel %fp@(12),%a2@(40) /* * Create the root node * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_root_node(); 41dc2: 2640 moveal %d0,%a3 41dc4: 2540 001c movel %d0,%a2@(28) temp_mt_entry->mt_fs_root.handlers = directory_handlers; 41dc8: 2542 0024 movel %d2,%a2@(36) temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 41dcc: 4878 0030 pea 30 41dd0: 4879 0005 a1e0 pea 5a1e0 41dd6: 486a 0038 pea %a2@(56) 41dda: 4eb9 0004 c330 jsr 4c330 /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 41de0: 4878 0014 pea 14 41de4: 4878 0001 pea 1 41de8: 4eb9 0004 241c jsr 4241c if ( !fs_info ) { 41dee: 4fef 0014 lea %sp@(20),%sp temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 41df2: 2040 moveal %d0,%a0 if ( !fs_info ) { 41df4: 4a80 tstl %d0 41df6: 661a bnes 41e12 <== ALWAYS TAKEN free(temp_mt_entry->mt_fs_root.node_access); 41df8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 41dfa: 4eb9 0004 27b4 jsr 427b4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 41e00: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 41e06: 588f addql #4,%sp <== NOT EXECUTED 41e08: 2040 moveal %d0,%a0 <== NOT EXECUTED 41e0a: 700c moveq #12,%d0 <== NOT EXECUTED 41e0c: 2080 movel %d0,%a0@ <== NOT EXECUTED 41e0e: 70ff moveq #-1,%d0 <== NOT EXECUTED 41e10: 6030 bras 41e42 <== NOT EXECUTED } temp_mt_entry->fs_info = fs_info; 41e12: 2540 0034 movel %d0,%a2@(52) /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; 41e16: 2039 0005 bc9c movel 5bc9c ,%d0 41e1c: 2080 movel %d0,%a0@ 41e1e: 5280 addql #1,%d0 41e20: 23c0 0005 bc9c movel %d0,5bc9c fs_info->ino_count = 1; 41e26: 7001 moveq #1,%d0 fs_info->memfile_handlers = memfile_handlers; 41e28: 216e 0010 0008 movel %fp@(16),%a0@(8) fs_info->directory_handlers = directory_handlers; fs_info->fifo_handlers = fifo_handlers; 41e2e: 216e 0018 0010 movel %fp@(24),%a0@(16) /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; fs_info->ino_count = 1; 41e34: 2140 0004 movel %d0,%a0@(4) fs_info->memfile_handlers = memfile_handlers; fs_info->directory_handlers = directory_handlers; 41e38: 2142 000c movel %d2,%a0@(12) fs_info->fifo_handlers = fifo_handlers; jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; 41e3c: 2740 0034 movel %d0,%a3@(52) return 0; 41e40: 4200 clrb %d0 } 41e42: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 41e48: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00041e4c : /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 41e4c: 4280 clrl %d0 <== NOT EXECUTED 41e4e: 7207 moveq #7,%d1 <== NOT EXECUTED int IMFS_link( rtems_filesystem_location_info_t *to_loc, /* IN */ rtems_filesystem_location_info_t *parent_loc, /* IN */ const char *token /* IN */ ) { 41e50: 4e56 ffbc linkw %fp,#-68 <== NOT EXECUTED int i; /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 41e54: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 41e58: 2050 moveal %a0@,%a0 <== NOT EXECUTED int IMFS_link( rtems_filesystem_location_info_t *to_loc, /* IN */ rtems_filesystem_location_info_t *parent_loc, /* IN */ const char *token /* IN */ ) { 41e5a: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e5c: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 41e60: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED int IMFS_link( rtems_filesystem_location_info_t *to_loc, /* IN */ rtems_filesystem_location_info_t *parent_loc, /* IN */ const char *token /* IN */ ) { 41e64: 2f02 movel %d2,%sp@- <== NOT EXECUTED int i; /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 41e66: 2d48 ffe0 movel %a0,%fp@(-32) <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 41e6a: b280 cmpl %d0,%d1 <== NOT EXECUTED 41e6c: 640e bccs 41e7c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EMLINK ); 41e6e: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 41e74: 721f moveq #31,%d1 <== NOT EXECUTED 41e76: 2040 moveal %d0,%a0 <== NOT EXECUTED 41e78: 2081 movel %d1,%a0@ <== NOT EXECUTED 41e7a: 6050 bras 41ecc <== NOT EXECUTED /* * Remove any separators at the end of the string. */ IMFS_get_token( token, strlen( token ), new_name, &i ); 41e7c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e7e: 240e movel %fp,%d2 <== NOT EXECUTED 41e80: 0682 ffff ffbf addil #-65,%d2 <== NOT EXECUTED 41e86: 4eb9 0004 cedc jsr 4cedc <== NOT EXECUTED 41e8c: 588f addql #4,%sp <== NOT EXECUTED 41e8e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 41e92: 2f02 movel %d2,%sp@- <== NOT EXECUTED 41e94: 2f00 movel %d0,%sp@- <== NOT EXECUTED 41e96: 2f03 movel %d3,%sp@- <== NOT EXECUTED 41e98: 4eb9 0004 91e8 jsr 491e8 <== NOT EXECUTED * was ONLY passed a NULL when we created the root node. We * added a new IMFS_create_root_node() so this path no longer * existed. The result was simpler code which should not have * this path. */ new_node = IMFS_create_node( 41e9e: 486e ffe0 pea %fp@(-32) <== NOT EXECUTED 41ea2: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 41ea8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 41eaa: 4878 0003 pea 3 <== NOT EXECUTED 41eae: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 41eb2: 4eb9 0004 8988 jsr 48988 <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) 41eb8: 4fef 0024 lea %sp@(36),%sp <== NOT EXECUTED 41ebc: 4a80 tstl %d0 <== NOT EXECUTED 41ebe: 6610 bnes 41ed0 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); 41ec0: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 41ec6: 2040 moveal %d0,%a0 <== NOT EXECUTED 41ec8: 700c moveq #12,%d0 <== NOT EXECUTED 41eca: 2080 movel %d0,%a0@ <== NOT EXECUTED 41ecc: 70ff moveq #-1,%d0 <== NOT EXECUTED 41ece: 6028 bras 41ef8 <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; 41ed0: 206e ffe0 moveal %fp@(-32),%a0 <== NOT EXECUTED 41ed4: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 41ed8: 5280 addql #1,%d0 <== NOT EXECUTED 41eda: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( info.hard_link.link_node ); 41ede: 42a7 clrl %sp@- <== NOT EXECUTED 41ee0: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 41ee4: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 41eea: 206e ffe0 moveal %fp@(-32),%a0 <== NOT EXECUTED return 0; 41eee: 508f addql #8,%sp <== NOT EXECUTED 41ef0: 4280 clrl %d0 <== NOT EXECUTED /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); 41ef2: 216e fff4 0044 movel %fp@(-12),%a0@(68) <== NOT EXECUTED return 0; } 41ef8: 242e ffb4 movel %fp@(-76),%d2 <== NOT EXECUTED 41efc: 262e ffb8 movel %fp@(-72),%d3 <== NOT EXECUTED 41f00: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ab2c : */ MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 4ab2c: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4ab30: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Obtain the pointer for the specified block number */ block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 ); 4ab32: 4878 0001 pea 1 <== NOT EXECUTED 4ab36: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ab3a: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ab3e: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED if ( *block_entry_ptr ) 4ab44: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Obtain the pointer for the specified block number */ block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 ); 4ab48: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 4ab4a: 4a92 tstl %a2@ <== NOT EXECUTED 4ab4c: 660c bnes 4ab5a <== NOT EXECUTED return 0; /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); 4ab4e: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !memory ) 4ab54: 4a80 tstl %d0 <== NOT EXECUTED 4ab56: 6706 beqs 4ab5e <== NOT EXECUTED return 1; *block_entry_ptr = memory; 4ab58: 2480 movel %d0,%a2@ <== NOT EXECUTED /* * Obtain the pointer for the specified block number */ block_entry_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 1 ); if ( *block_entry_ptr ) return 0; 4ab5a: 4280 clrl %d0 <== NOT EXECUTED 4ab5c: 6002 bras 4ab60 <== NOT EXECUTED /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); if ( !memory ) return 1; 4ab5e: 7001 moveq #1,%d0 <== NOT EXECUTED *block_entry_ptr = memory; return 0; } 4ab60: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ab64: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004acd0 : IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4acd0: 4280 clrl %d0 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4acd2: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4acd6: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4acda: 2c39 0005 bc98 movel 5bc98 ,%d6<== NOT EXECUTED 4ace0: 2a06 movel %d6,%d5 <== NOT EXECUTED 4ace2: e48d lsrl #2,%d5 <== NOT EXECUTED 4ace4: 2805 movel %d5,%d4 <== NOT EXECUTED 4ace6: 5284 addql #1,%d4 <== NOT EXECUTED 4ace8: 4c05 4800 mulsl %d5,%d4 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4acec: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4acf0: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4acf4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4acf8: 5284 addql #1,%d4 <== NOT EXECUTED 4acfa: 4c05 4800 mulsl %d5,%d4 <== NOT EXECUTED 4acfe: 5384 subql #1,%d4 <== NOT EXECUTED 4ad00: 4c06 4800 mulsl %d6,%d4 <== NOT EXECUTED 4ad04: 2204 movel %d4,%d1 <== NOT EXECUTED 4ad06: 2802 movel %d2,%d4 <== NOT EXECUTED 4ad08: 2a03 movel %d3,%d5 <== NOT EXECUTED 4ad0a: 9a81 subl %d1,%d5 <== NOT EXECUTED 4ad0c: 9980 subxl %d0,%d4 <== NOT EXECUTED 4ad0e: 6d0e blts 4ad1e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4ad10: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4ad16: 7216 moveq #22,%d1 <== NOT EXECUTED 4ad18: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ad1a: 2081 movel %d1,%a0@ <== NOT EXECUTED 4ad1c: 6078 bras 4ad96 <== NOT EXECUTED /* * Verify new file size is actually larger than current size */ if ( new_length <= the_jnode->info.file.size ) 4ad1e: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4ad22: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4ad26: 2002 movel %d2,%d0 <== NOT EXECUTED 4ad28: 2203 movel %d3,%d1 <== NOT EXECUTED 4ad2a: 9285 subl %d5,%d1 <== NOT EXECUTED 4ad2c: 9184 subxl %d4,%d0 <== NOT EXECUTED 4ad2e: 6f78 bles 4ada8 <== NOT EXECUTED return 0; /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 4ad30: 47f9 0005 791c lea 5791c <__divdi3>,%a3 <== NOT EXECUTED 4ad36: 2e06 movel %d6,%d7 <== NOT EXECUTED 4ad38: 5bc6 smi %d6 <== NOT EXECUTED 4ad3a: 49c6 extbl %d6 <== NOT EXECUTED 4ad3c: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4ad3e: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4ad40: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ad42: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad44: 4e93 jsr %a3@ <== NOT EXECUTED 4ad46: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4ad4a: 2841 moveal %d1,%a4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 4ad4c: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4ad4e: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4ad50: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4ad52: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ad54: 4e93 jsr %a3@ <== NOT EXECUTED 4ad56: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { 4ad5a: 47f9 0004 ab2c lea 4ab2c ,%a3 <== NOT EXECUTED /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 4ad60: 2c01 movel %d1,%d6 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 4ad62: 2801 movel %d1,%d4 <== NOT EXECUTED 4ad64: 6036 bras 4ad9c <== NOT EXECUTED if ( IMFS_memfile_addblock( the_jnode, block ) ) { 4ad66: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ad68: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ad6a: 4e93 jsr %a3@ <== NOT EXECUTED 4ad6c: 508f addql #8,%sp <== NOT EXECUTED 4ad6e: 4a80 tstl %d0 <== NOT EXECUTED 4ad70: 6728 beqs 4ad9a <== NOT EXECUTED 4ad72: 600c bras 4ad80 <== NOT EXECUTED for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); 4ad74: 2f04 movel %d4,%sp@- <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { 4ad76: 5384 subql #1,%d4 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4ad78: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ad7a: 4e93 jsr %a3@ <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { 4ad7c: 508f addql #8,%sp <== NOT EXECUTED 4ad7e: 6006 bras 4ad86 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4ad80: 47f9 0004 aca8 lea 4aca8 ,%a3 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { 4ad86: bc84 cmpl %d4,%d6 <== NOT EXECUTED 4ad88: 63ea blss 4ad74 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 4ad8a: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4ad90: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ad92: 701c moveq #28,%d0 <== NOT EXECUTED 4ad94: 2080 movel %d0,%a0@ <== NOT EXECUTED 4ad96: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ad98: 6010 bras 4adaa <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 4ad9a: 5284 addql #1,%d4 <== NOT EXECUTED 4ad9c: b9c4 cmpal %d4,%a4 <== NOT EXECUTED 4ad9e: 64c6 bccs 4ad66 <== NOT EXECUTED } /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 4ada0: 2542 004c movel %d2,%a2@(76) <== NOT EXECUTED 4ada4: 2543 0050 movel %d3,%a2@(80) <== NOT EXECUTED /* * Verify new file size is actually larger than current size */ if ( new_length <= the_jnode->info.file.size ) return 0; 4ada8: 4280 clrl %d0 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4adaa: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4adb0: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a824 : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4a824: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED my_block = block; /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 4a828: 2039 0005 bc98 movel 5bc98 ,%d0<== NOT EXECUTED 4a82e: e488 lsrl #2,%d0 <== NOT EXECUTED 4a830: 2200 movel %d0,%d1 <== NOT EXECUTED 4a832: 5381 subql #1,%d1 <== NOT EXECUTED #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4a834: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4a838: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a83c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a840: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED my_block = block; /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 4a844: b282 cmpl %d2,%d1 <== NOT EXECUTED 4a846: 6536 bcss 4a87e <== NOT EXECUTED p = info->indirect; 4a848: 226a 0054 moveal %a2@(84),%a1 <== NOT EXECUTED if ( malloc_it ) { 4a84c: 4a88 tstl %a0 <== NOT EXECUTED 4a84e: 6720 beqs 4a870 <== NOT EXECUTED if ( !p ) { 4a850: 4a89 tstl %a1 <== NOT EXECUTED 4a852: 6610 bnes 4a864 <== NOT EXECUTED p = memfile_alloc_block(); 4a854: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !p ) 4a85a: 4a80 tstl %d0 <== NOT EXECUTED 4a85c: 6700 00f8 beqw 4a956 <== NOT EXECUTED return 0; info->indirect = p; 4a860: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } return &info->indirect[ my_block ]; 4a864: 206a 0054 moveal %a2@(84),%a0 <== NOT EXECUTED 4a868: e58a lsll #2,%d2 <== NOT EXECUTED 4a86a: d1c2 addal %d2,%a0 <== NOT EXECUTED 4a86c: 6000 00ea braw 4a958 <== NOT EXECUTED } if ( !p ) 4a870: 4a89 tstl %a1 <== NOT EXECUTED 4a872: 6700 00e2 beqw 4a956 <== NOT EXECUTED return 0; return &info->indirect[ my_block ]; 4a876: 41f1 2c00 lea %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 4a87a: 6000 00dc braw 4a958 <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 4a87e: 2200 movel %d0,%d1 <== NOT EXECUTED 4a880: 5281 addql #1,%d1 <== NOT EXECUTED 4a882: 4c00 1800 mulsl %d0,%d1 <== NOT EXECUTED 4a886: 2241 moveal %d1,%a1 <== NOT EXECUTED 4a888: 5389 subql #1,%a1 <== NOT EXECUTED 4a88a: b3c2 cmpal %d2,%a1 <== NOT EXECUTED 4a88c: 653e bcss 4a8cc <== NOT EXECUTED my_block -= FIRST_DOUBLY_INDIRECT; 4a88e: 9480 subl %d0,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4a890: 4c40 2003 remul %d0,%d3,%d2 <== NOT EXECUTED 4a894: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; 4a898: 202a 0058 movel %a2@(88),%d0 <== NOT EXECUTED if ( malloc_it ) { 4a89c: 4a88 tstl %a0 <== NOT EXECUTED 4a89e: 671c beqs 4a8bc <== NOT EXECUTED if ( !p ) { 4a8a0: 4a80 tstl %d0 <== NOT EXECUTED 4a8a2: 6610 bnes 4a8b4 <== NOT EXECUTED p = memfile_alloc_block(); 4a8a4: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !p ) 4a8aa: 4a80 tstl %d0 <== NOT EXECUTED 4a8ac: 6700 00a8 beqw 4a956 <== NOT EXECUTED return 0; info->doubly_indirect = p; 4a8b0: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 4a8b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a8b6: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4a8ba: 6066 bras 4a922 <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 4a8bc: 4a80 tstl %d0 <== NOT EXECUTED 4a8be: 6700 0096 beqw 4a956 <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 4a8c2: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a8c4: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 4a8c8: 6000 0082 braw 4a94c <== NOT EXECUTED } /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 4a8cc: 2601 movel %d1,%d3 <== NOT EXECUTED 4a8ce: 5283 addql #1,%d3 <== NOT EXECUTED 4a8d0: 4c00 3800 mulsl %d0,%d3 <== NOT EXECUTED 4a8d4: 5383 subql #1,%d3 <== NOT EXECUTED 4a8d6: b682 cmpl %d2,%d3 <== NOT EXECUTED 4a8d8: 657c bcss 4a956 <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 4a8da: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4a8dc: 4c40 2003 remul %d0,%d3,%d2 <== NOT EXECUTED 4a8e0: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS; 4a8e4: 4c40 2004 remul %d0,%d4,%d2 <== NOT EXECUTED 4a8e8: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; 4a8ec: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED if ( malloc_it ) { 4a8f0: 4a88 tstl %a0 <== NOT EXECUTED 4a8f2: 6746 beqs 4a93a <== NOT EXECUTED if ( !p ) { 4a8f4: 4a80 tstl %d0 <== NOT EXECUTED 4a8f6: 660e bnes 4a906 <== NOT EXECUTED p = memfile_alloc_block(); 4a8f8: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !p ) 4a8fe: 4a80 tstl %d0 <== NOT EXECUTED 4a900: 6754 beqs 4a956 <== NOT EXECUTED return 0; info->triply_indirect = p; 4a902: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 4a906: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a908: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4a90c: 2012 movel %a2@,%d0 <== NOT EXECUTED if ( !p1 ) { 4a90e: 660c bnes 4a91c <== NOT EXECUTED p1 = memfile_alloc_block(); 4a910: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !p1 ) 4a916: 4a80 tstl %d0 <== NOT EXECUTED 4a918: 673c beqs 4a956 <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 4a91a: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 4a91c: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a91e: 45f1 4c00 lea %a1@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 4a922: 2012 movel %a2@,%d0 <== NOT EXECUTED if ( !p2 ) { 4a924: 660c bnes 4a932 <== NOT EXECUTED p2 = memfile_alloc_block(); 4a926: 4eb9 0004 a800 jsr 4a800 <== NOT EXECUTED if ( !p2 ) 4a92c: 4a80 tstl %d0 <== NOT EXECUTED 4a92e: 6726 beqs 4a956 <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 4a930: 2480 movel %d0,%a2@ <== NOT EXECUTED } return (block_p *)&p2[ singly ]; 4a932: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a934: 41f1 3c00 lea %a1@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4a938: 601e bras 4a958 <== NOT EXECUTED } if ( !p ) 4a93a: 4a80 tstl %d0 <== NOT EXECUTED 4a93c: 6718 beqs 4a956 <== NOT EXECUTED return 0; p1 = (block_p *) p[ triply ]; 4a93e: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a940: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 4a944: 4a88 tstl %a0 <== NOT EXECUTED 4a946: 670e beqs 4a956 <== NOT EXECUTED return 0; p2 = (block_p *)p1[ doubly ]; 4a948: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED if ( !p2 ) 4a94c: 4a88 tstl %a0 <== NOT EXECUTED 4a94e: 6706 beqs 4a956 <== NOT EXECUTED return 0; return (block_p *)&p2[ singly ]; 4a950: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4a954: 6002 bras 4a958 <== NOT EXECUTED if ( !p1 ) return 0; p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; 4a956: 91c8 subal %a0,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 4a958: 2008 movel %a0,%d0 <== NOT EXECUTED 4a95a: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4a960: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00044848 : * This routine returns the size of the largest file which can be created * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { 44848: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 4484c: 2039 0006 17a8 movel 617a8 ,%d0<== NOT EXECUTED * This routine returns the size of the largest file which can be created * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { 44852: 2f02 movel %d2,%sp@- <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 44854: 2400 movel %d0,%d2 <== NOT EXECUTED 44856: e48a lsrl #2,%d2 <== NOT EXECUTED 44858: 2202 movel %d2,%d1 <== NOT EXECUTED 4485a: 5281 addql #1,%d1 <== NOT EXECUTED 4485c: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 44860: 5281 addql #1,%d1 <== NOT EXECUTED 44862: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED } 44866: 241f movel %sp@+,%d2 <== NOT EXECUTED * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { return IMFS_MEMFILE_MAXIMUM_SIZE; 44868: 5381 subql #1,%d1 <== NOT EXECUTED } 4486a: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4486e: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 0004a964 : * Linear files (as created from a tar file are easier to handle * than block files). */ my_length = length; if (the_jnode->type == IMFS_LINEAR_FILE) { 4a964: 7006 moveq #6,%d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 4a966: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 4a96a: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4a96e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a972: 2e2e 0014 movel %fp@(20),%d7 <== NOT EXECUTED 4a976: 2c2e 0018 movel %fp@(24),%d6 <== NOT EXECUTED 4a97a: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a97e: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED * Linear files (as created from a tar file are easier to handle * than block files). */ my_length = length; if (the_jnode->type == IMFS_LINEAR_FILE) { 4a982: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4a986: 6656 bnes 4a9de <== NOT EXECUTED unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 4a988: 2246 moveal %d6,%a1 <== NOT EXECUTED 4a98a: 91c8 subal %a0,%a0 <== NOT EXECUTED 4a98c: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4a990: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED my_length = length; if (the_jnode->type == IMFS_LINEAR_FILE) { unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; 4a994: 266a 0054 moveal %a2@(84),%a3 <== NOT EXECUTED if (my_length > (the_jnode->info.linearfile.size - start)) 4a998: 2d44 fff0 movel %d4,%fp@(-16) <== NOT EXECUTED 4a99c: 2d45 fff4 movel %d5,%fp@(-12) <== NOT EXECUTED 4a9a0: 9a83 subl %d3,%d5 <== NOT EXECUTED 4a9a2: 9982 subxl %d2,%d4 <== NOT EXECUTED 4a9a4: 2008 movel %a0,%d0 <== NOT EXECUTED 4a9a6: 2209 movel %a1,%d1 <== NOT EXECUTED 4a9a8: 9285 subl %d5,%d1 <== NOT EXECUTED 4a9aa: 9184 subxl %d4,%d0 <== NOT EXECUTED 4a9ac: 6f06 bles 4a9b4 <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; 4a9ae: 2c2e fff4 movel %fp@(-12),%d6 <== NOT EXECUTED 4a9b2: 9c83 subl %d3,%d6 <== NOT EXECUTED memcpy(dest, &file_ptr[start], my_length); 4a9b4: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4a9b6: 4873 3800 pea %a3@(00000000,%d3:l) <== NOT EXECUTED IMFS_update_atime( the_jnode ); return my_length; 4a9ba: 2406 movel %d6,%d2 <== NOT EXECUTED file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) my_length = the_jnode->info.linearfile.size - start; memcpy(dest, &file_ptr[start], my_length); 4a9bc: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4a9be: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED IMFS_update_atime( the_jnode ); 4a9c4: 42a7 clrl %sp@- <== NOT EXECUTED 4a9c6: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4a9ca: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4a9d0: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 4a9d6: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED 4a9da: 6000 011e braw 4aafa <== NOT EXECUTED /* * If the last byte we are supposed to read is past the end of this * in memory file, then shorten the length to read. */ last_byte = start + length; 4a9de: 2043 moveal %d3,%a0 <== NOT EXECUTED 4a9e0: 43f0 6800 lea %a0@(00000000,%d6:l),%a1 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) 4a9e4: 97cb subal %a3,%a3 <== NOT EXECUTED 4a9e6: 2849 moveal %a1,%a4 <== NOT EXECUTED 4a9e8: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 4a9ec: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED 4a9f0: 280b movel %a3,%d4 <== NOT EXECUTED 4a9f2: 2a0c movel %a4,%d5 <== NOT EXECUTED 4a9f4: 9a81 subl %d1,%d5 <== NOT EXECUTED 4a9f6: 9980 subxl %d0,%d4 <== NOT EXECUTED 4a9f8: 6f04 bles 4a9fe <== NOT EXECUTED my_length = the_jnode->info.file.size - start; 4a9fa: 2c01 movel %d1,%d6 <== NOT EXECUTED 4a9fc: 9c83 subl %d3,%d6 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4a9fe: 2879 0005 bc98 moveal 5bc98 ,%a4<== NOT EXECUTED 4aa04: 2a0c movel %a4,%d5 <== NOT EXECUTED 4aa06: 5bc4 smi %d4 <== NOT EXECUTED 4aa08: 49c4 extbl %d4 <== NOT EXECUTED 4aa0a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aa0c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aa0e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aa10: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aa12: 4eb9 0005 7cd0 jsr 57cd0 <__moddi3> <== NOT EXECUTED 4aa18: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4aa1c: 2641 moveal %d1,%a3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4aa1e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aa20: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aa22: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aa24: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aa26: 4eb9 0005 791c jsr 5791c <__divdi3> <== NOT EXECUTED 4aa2c: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4aa30: 2801 movel %d1,%d4 <== NOT EXECUTED if ( start_offset ) { 4aa32: 4a8b tstl %a3 <== NOT EXECUTED 4aa34: 673c beqs 4aa72 <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4aa36: 42a7 clrl %sp@- <== NOT EXECUTED 4aa38: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4aa3a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aa3c: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED if ( !block_ptr ) 4aa42: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aa46: 4a80 tstl %d0 <== NOT EXECUTED 4aa48: 6700 00ae beqw 4aaf8 <== NOT EXECUTED * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; if ( start_offset ) { to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; 4aa4c: 99cb subal %a3,%a4 <== NOT EXECUTED 4aa4e: 2406 movel %d6,%d2 <== NOT EXECUTED 4aa50: b9c6 cmpal %d6,%a4 <== NOT EXECUTED 4aa52: 6402 bccs 4aa56 <== NOT EXECUTED 4aa54: 240c movel %a4,%d2 <== NOT EXECUTED if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); 4aa56: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aa58: 2040 moveal %d0,%a0 <== NOT EXECUTED 4aa5a: d7d0 addal %a0@,%a3 <== NOT EXECUTED dest += to_copy; block++; 4aa5c: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 4aa5e: 9c82 subl %d2,%d6 <== NOT EXECUTED if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); 4aa60: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4aa62: 2f07 movel %d7,%sp@- <== NOT EXECUTED dest += to_copy; 4aa64: de82 addl %d2,%d7 <== NOT EXECUTED if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); 4aa66: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 4aa6c: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aa70: 6002 bras 4aa74 <== NOT EXECUTED */ last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) my_length = the_jnode->info.file.size - start; copied = 0; 4aa72: 4282 clrl %d2 <== NOT EXECUTED } /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 4aa74: 2679 0005 bc98 moveal 5bc98 ,%a3<== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4aa7a: 4bf9 0004 a824 lea 4a824 ,%a5<== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4aa80: 49f9 0004 c330 lea 4c330 ,%a4 <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { 4aa86: 6026 bras 4aaae <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4aa88: 42a7 clrl %sp@- <== NOT EXECUTED 4aa8a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aa8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aa8e: 4e95 jsr %a5@ <== NOT EXECUTED if ( !block_ptr ) 4aa90: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aa94: 4a80 tstl %d0 <== NOT EXECUTED 4aa96: 6762 beqs 4aafa <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4aa98: 2040 moveal %d0,%a0 <== NOT EXECUTED dest += to_copy; block++; 4aa9a: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 4aa9c: 9c8b subl %a3,%d6 <== NOT EXECUTED copied += to_copy; 4aa9e: d48b addl %a3,%d2 <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4aaa0: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4aaa2: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4aaa4: 2f07 movel %d7,%sp@- <== NOT EXECUTED dest += to_copy; 4aaa6: de8b addl %a3,%d7 <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4aaa8: 4e94 jsr %a4@ <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; copied += to_copy; 4aaaa: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { 4aaae: bcb9 0005 bc98 cmpl 5bc98 ,%d6<== NOT EXECUTED 4aab4: 64d2 bccs 4aa88 <== NOT EXECUTED /* * Phase 3: possibly the first part of one block */ IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 4aab6: 4a86 tstl %d6 <== NOT EXECUTED 4aab8: 6728 beqs 4aae2 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4aaba: 42a7 clrl %sp@- <== NOT EXECUTED 4aabc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aabe: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aac0: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED if ( !block_ptr ) 4aac6: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aaca: 4a80 tstl %d0 <== NOT EXECUTED 4aacc: 672c beqs 4aafa <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 4aace: 2040 moveal %d0,%a0 <== NOT EXECUTED copied += my_length; 4aad0: d486 addl %d6,%d2 <== NOT EXECUTED if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 4aad2: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4aad4: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4aad6: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4aad8: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED copied += my_length; 4aade: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 4aae2: 42a7 clrl %sp@- <== NOT EXECUTED 4aae4: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4aae8: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4aaee: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return copied; 4aaf4: 508f addql #8,%sp <== NOT EXECUTED 4aaf6: 6002 bras 4aafa <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; 4aaf8: 4282 clrl %d2 <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 4aafa: 2002 movel %d2,%d0 <== NOT EXECUTED 4aafc: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4ab02: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004abc8 : * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 4abc8: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4abcc: 48d7 1c3c moveml %d2-%d5/%a2-%a4,%sp@ <== NOT EXECUTED /* * Eventually this could be set smarter at each call to * memfile_free_blocks_in_table to greatly speed this up. */ to_free = IMFS_MEMFILE_BLOCK_SLOTS; 4abd0: 2439 0005 bc98 movel 5bc98 ,%d2<== NOT EXECUTED 4abd6: e48a lsrl #2,%d2 <== NOT EXECUTED * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 4abd8: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED * + doubly indirect * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 4abdc: 4aaa 0054 tstl %a2@(84) <== NOT EXECUTED 4abe0: 670e beqs 4abf0 <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 4abe2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4abe4: 486a 0054 pea %a2@(84) <== NOT EXECUTED 4abe8: 4eb9 0004 ab82 jsr 4ab82 <== NOT EXECUTED 4abee: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 4abf0: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 4abf4: 673e beqs 4ac34 <== NOT EXECUTED 4abf6: 4283 clrl %d3 <== NOT EXECUTED for ( i=0 ; idoubly_indirect[i] ) { memfile_free_blocks_in_table( 4abf8: 47f9 0004 ab82 lea 4ab82 ,%a3<== NOT EXECUTED 4abfe: 601a bras 4ac1a <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); } if ( info->doubly_indirect ) { for ( i=0 ; idoubly_indirect[i] ) { 4ac00: 2003 movel %d3,%d0 <== NOT EXECUTED 4ac02: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 4ac06: e588 lsll #2,%d0 <== NOT EXECUTED 4ac08: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 4ac0c: 670a beqs 4ac18 <== NOT EXECUTED memfile_free_blocks_in_table( 4ac0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ac10: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 4ac14: 4e93 jsr %a3@ <== NOT EXECUTED 4ac16: 508f addql #8,%sp <== NOT EXECUTED if ( info->indirect ) { memfile_free_blocks_in_table( &info->indirect, to_free ); } if ( info->doubly_indirect ) { for ( i=0 ; i,%d0<== NOT EXECUTED 4ac20: e488 lsrl #2,%d0 <== NOT EXECUTED 4ac22: b083 cmpl %d3,%d0 <== NOT EXECUTED 4ac24: 62da bhis 4ac00 <== NOT EXECUTED if ( info->doubly_indirect[i] ) { memfile_free_blocks_in_table( (block_p **)&info->doubly_indirect[i], to_free ); } } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); 4ac26: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ac28: 486a 0058 pea %a2@(88) <== NOT EXECUTED 4ac2c: 4eb9 0004 ab82 jsr 4ab82 <== NOT EXECUTED 4ac32: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 4ac34: 4aaa 005c tstl %a2@(92) <== NOT EXECUTED 4ac38: 6762 beqs 4ac9c <== NOT EXECUTED 4ac3a: 4283 clrl %d3 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ break; for ( j=0 ; j,%a4<== NOT EXECUTED 4ac42: 603e bras 4ac82 <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 4ac44: 2a03 movel %d3,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 4ac46: 206a 005c moveal %a2@(92),%a0 <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 4ac4a: e58d lsll #2,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 4ac4c: 2670 5800 moveal %a0@(00000000,%d5:l),%a3 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4ac50: 4a8b tstl %a3 <== NOT EXECUTED 4ac52: 673a beqs 4ac8e <== NOT EXECUTED 4ac54: 4284 clrl %d4 <== NOT EXECUTED 4ac56: 6010 bras 4ac68 <== NOT EXECUTED break; for ( j=0 ; j <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 4ac5c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ac5e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ac60: 4e94 jsr %a4@ <== NOT EXECUTED 4ac62: 508f addql #8,%sp <== NOT EXECUTED if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ break; for ( j=0 ; j,%d0<== NOT EXECUTED 4ac6e: e488 lsrl #2,%d0 <== NOT EXECUTED 4ac70: b084 cmpl %d4,%d0 <== NOT EXECUTED 4ac72: 62e4 bhis 4ac58 <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 4ac74: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ac76: daaa 005c addl %a2@(92),%d5 <== NOT EXECUTED memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { for ( i=0 ; idoubly_indirect, to_free ); } if ( info->triply_indirect ) { for ( i=0 ; i,%d0<== NOT EXECUTED 4ac88: e488 lsrl #2,%d0 <== NOT EXECUTED 4ac8a: b083 cmpl %d3,%d0 <== NOT EXECUTED 4ac8c: 62b6 bhis 4ac44 <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 4ac8e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ac90: 486a 005c pea %a2@(92) <== NOT EXECUTED 4ac94: 4eb9 0004 ab82 jsr 4ab82 <== NOT EXECUTED 4ac9a: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 4ac9c: 4280 clrl %d0 <== NOT EXECUTED 4ac9e: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4aca4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004aca8 : */ MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 4aca8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED block_p *block_ptr; block_p ptr; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4acac: 42a7 clrl %sp@- <== NOT EXECUTED 4acae: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4acb2: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4acb6: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED IMFS_assert( block_ptr ); ptr = *block_ptr; 4acbc: 2040 moveal %d0,%a0 <== NOT EXECUTED 4acbe: 2210 movel %a0@,%d1 <== NOT EXECUTED *block_ptr = 0; 4acc0: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 4acc2: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4acc4: 4eb9 0004 ab68 jsr 4ab68 <== NOT EXECUTED return 1; } 4acca: 7001 moveq #1,%d0 <== NOT EXECUTED 4accc: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004adb4 : * If the last byte we are supposed to write is past the end of this * in memory file, then extend the length. */ last_byte = start + my_length; if ( last_byte > the_jnode->info.file.size ) { 4adb4: 4280 clrl %d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4adb6: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 4adba: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4adbe: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4adc2: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4adc6: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4adca: 2c2e 0018 movel %fp@(24),%d6 <== NOT EXECUTED /* * If the last byte we are supposed to write is past the end of this * in memory file, then extend the length. */ last_byte = start + my_length; 4adce: 2046 moveal %d6,%a0 <== NOT EXECUTED 4add0: d1c3 addal %d3,%a0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 4add2: 2208 movel %a0,%d1 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4add4: 2e2e 0014 movel %fp@(20),%d7 <== NOT EXECUTED * If the last byte we are supposed to write is past the end of this * in memory file, then extend the length. */ last_byte = start + my_length; if ( last_byte > the_jnode->info.file.size ) { 4add8: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4addc: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4ade0: 9a81 subl %d1,%d5 <== NOT EXECUTED 4ade2: 9980 subxl %d0,%d4 <== NOT EXECUTED 4ade4: 6c28 bges 4ae0e <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); 4ade6: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4ade8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4adea: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4adec: 4eb9 0004 acd0 jsr 4acd0 <== NOT EXECUTED if ( status ) 4adf2: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4adf6: 4a80 tstl %d0 <== NOT EXECUTED 4adf8: 6714 beqs 4ae0e <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4adfa: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4ae00: 741c moveq #28,%d2 <== NOT EXECUTED 4ae02: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ae04: 387c ffff moveaw #-1,%a4 <== NOT EXECUTED 4ae08: 2082 movel %d2,%a0@ <== NOT EXECUTED 4ae0a: 6000 0102 braw 4af0e <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4ae0e: 2879 0005 bc98 moveal 5bc98 ,%a4<== NOT EXECUTED 4ae14: 2a0c movel %a4,%d5 <== NOT EXECUTED 4ae16: 5bc4 smi %d4 <== NOT EXECUTED 4ae18: 49c4 extbl %d4 <== NOT EXECUTED 4ae1a: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4ae1c: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ae1e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ae20: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ae22: 4eb9 0005 7cd0 jsr 57cd0 <__moddi3> <== NOT EXECUTED 4ae28: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4ae2c: 2641 moveal %d1,%a3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4ae2e: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4ae30: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ae32: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ae34: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ae36: 4eb9 0005 791c jsr 5791c <__divdi3> <== NOT EXECUTED 4ae3c: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4ae40: 2401 movel %d1,%d2 <== NOT EXECUTED if ( start_offset ) { 4ae42: 4a8b tstl %a3 <== NOT EXECUTED 4ae44: 673a beqs 4ae80 <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ae46: 42a7 clrl %sp@- <== NOT EXECUTED 4ae48: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4ae4a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae4c: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED if ( !block_ptr ) 4ae52: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ae56: 4a80 tstl %d0 <== NOT EXECUTED 4ae58: 6700 00b2 beqw 4af0c <== NOT EXECUTED * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; if ( start_offset ) { to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; 4ae5c: 99cb subal %a3,%a4 <== NOT EXECUTED 4ae5e: bc8c cmpl %a4,%d6 <== NOT EXECUTED 4ae60: 6402 bccs 4ae64 <== NOT EXECUTED 4ae62: 2846 moveal %d6,%a4 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4ae64: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4ae66: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; block++; 4ae68: 5282 addql #1,%d2 <== NOT EXECUTED my_length -= to_copy; 4ae6a: 9c8c subl %a4,%d6 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4ae6c: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4ae6e: d7d0 addal %a0@,%a3 <== NOT EXECUTED src += to_copy; 4ae70: de8c addl %a4,%d7 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4ae72: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ae74: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; copied += to_copy; 4ae7a: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ae7e: 6002 bras 4ae82 <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); if ( status ) rtems_set_errno_and_return_minus_one( ENOSPC ); } copied = 0; 4ae80: 99cc subal %a4,%a4 <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 4ae82: 2839 0005 bc98 movel 5bc98 ,%d4<== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ae88: 4bf9 0004 a824 lea 4a824 ,%a5<== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 4ae8e: 47f9 0004 c330 lea 4c330 ,%a3 <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { 4ae94: 6026 bras 4aebc <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ae96: 42a7 clrl %sp@- <== NOT EXECUTED 4ae98: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ae9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae9c: 4e95 jsr %a5@ <== NOT EXECUTED if ( !block_ptr ) 4ae9e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aea2: 4a80 tstl %d0 <== NOT EXECUTED 4aea4: 6768 beqs 4af0e <== NOT EXECUTED return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 4aea6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aea8: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; block++; 4aeaa: 5282 addql #1,%d2 <== NOT EXECUTED my_length -= to_copy; 4aeac: 9c84 subl %d4,%d6 <== NOT EXECUTED * IMFS_memfile_write * * This routine writes the specified data buffer into the in memory * file pointed to by the_jnode. The file is extended as needed. */ MEMFILE_STATIC ssize_t IMFS_memfile_write( 4aeae: d9c4 addal %d4,%a4 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 4aeb0: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4aeb2: 2f10 movel %a0@,%sp@- <== NOT EXECUTED src += to_copy; 4aeb4: de84 addl %d4,%d7 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); 4aeb6: 4e93 jsr %a3@ <== NOT EXECUTED * IMFS_memfile_write * * This routine writes the specified data buffer into the in memory * file pointed to by the_jnode. The file is extended as needed. */ MEMFILE_STATIC ssize_t IMFS_memfile_write( 4aeb8: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { 4aebc: bcb9 0005 bc98 cmpl 5bc98 ,%d6<== NOT EXECUTED 4aec2: 64d2 bccs 4ae96 <== NOT EXECUTED * Phase 3: possibly the first part of one block */ IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); to_copy = my_length; if ( my_length ) { 4aec4: 4a86 tstl %d6 <== NOT EXECUTED 4aec6: 6728 beqs 4aef0 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4aec8: 42a7 clrl %sp@- <== NOT EXECUTED 4aeca: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aecc: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aece: 4eb9 0004 a824 jsr 4a824 <== NOT EXECUTED if ( !block_ptr ) 4aed4: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aed8: 4a80 tstl %d0 <== NOT EXECUTED 4aeda: 6732 beqs 4af0e <== NOT EXECUTED return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, my_length ); 4aedc: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4aede: 2040 moveal %d0,%a0 <== NOT EXECUTED my_length = 0; copied += to_copy; 4aee0: d9c6 addal %d6,%a4 <== NOT EXECUTED if ( !block_ptr ) return copied; #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, my_length ); 4aee2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4aee4: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4aee6: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED my_length = 0; copied += to_copy; 4aeec: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); 4aef0: 42a7 clrl %sp@- <== NOT EXECUTED 4aef2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4aef6: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4aefc: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED return copied; 4af00: 508f addql #8,%sp <== NOT EXECUTED memcpy( &(*block_ptr)[ 0 ], src, my_length ); my_length = 0; copied += to_copy; } IMFS_mtime_ctime_update( the_jnode ); 4af02: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED 4af06: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED return copied; 4af0a: 6002 bras 4af0e <== NOT EXECUTED to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK - start_offset; if ( to_copy > my_length ) to_copy = my_length; block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; 4af0c: 99cc subal %a4,%a4 <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); return copied; } 4af0e: 200c movel %a4,%d0 <== NOT EXECUTED 4af10: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4af16: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00041f04 : const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 41f04: 4e56 ffb4 linkw %fp,#-76 41f08: 48d7 003c moveml %d2-%d5,%sp@ 41f0c: 262e 0008 movel %fp@(8),%d3 IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, strlen( token ), new_name, &result ); 41f10: 2f03 movel %d3,%sp@- const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 41f12: 242e 000c movel %fp@(12),%d2 IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, strlen( token ), new_name, &result ); 41f16: 4eb9 0004 cedc jsr 4cedc 41f1c: 588f addql #4,%sp 41f1e: 486e fffc pea %fp@(-4) 41f22: 486e ffc7 pea %fp@(-57) const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 41f26: 2a2e 0010 movel %fp@(16),%d5 IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, strlen( token ), new_name, &result ); 41f2a: 2f00 movel %d0,%sp@- const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 41f2c: 282e 0014 movel %fp@(20),%d4 IMFS_jnode_t *new_node; int result; char new_name[ IMFS_NAME_MAX + 1 ]; IMFS_types_union info; IMFS_get_token( token, strlen( token ), new_name, &result ); 41f30: 2f03 movel %d3,%sp@- 41f32: 4eb9 0004 91e8 jsr 491e8 /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) 41f38: 4fef 0010 lea %sp@(16),%sp 41f3c: 2002 movel %d2,%d0 41f3e: 0280 0000 f000 andil #61440,%d0 41f44: 0c80 0000 4000 cmpil #16384,%d0 41f4a: 6730 beqs 41f7c type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 41f4c: 0c80 0000 8000 cmpil #32768,%d0 41f52: 672c beqs 41f80 <== NEVER TAKEN type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { 41f54: 0c80 0000 6000 cmpil #24576,%d0 41f5a: 6708 beqs 41f64 41f5c: 0c80 0000 2000 cmpil #8192,%d0 41f62: 660c bnes 41f70 <== NEVER TAKEN type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 41f64: 2d45 ffe8 movel %d5,%fp@(-24) if ( S_ISDIR(mode) ) type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { type = IMFS_DEVICE; 41f68: 7002 moveq #2,%d0 rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 41f6a: 2d44 ffec movel %d4,%fp@(-20) 41f6e: 6016 bras 41f86 } else if (S_ISFIFO(mode)) 41f70: 0c80 0000 1000 cmpil #4096,%d0 <== NOT EXECUTED 41f76: 670c beqs 41f84 <== NOT EXECUTED mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { IMFS_token_types type = 0; 41f78: 4280 clrl %d0 <== NOT EXECUTED 41f7a: 600a bras 41f86 <== NOT EXECUTED /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) type = IMFS_DIRECTORY; 41f7c: 7001 moveq #1,%d0 41f7e: 6006 bras 41f86 else if ( S_ISREG(mode) ) type = IMFS_MEMORY_FILE; 41f80: 7005 moveq #5,%d0 <== NOT EXECUTED 41f82: 6002 bras 41f86 <== NOT EXECUTED else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); } else if (S_ISFIFO(mode)) type = IMFS_FIFO; 41f84: 7007 moveq #7,%d0 <== NOT EXECUTED * was ONLY passed a NULL when we created the root node. We * added a new IMFS_create_root_node() so this path no longer * existed. The result was simpler code which should not have * this path. */ new_node = IMFS_create_node( pathloc, type, new_name, mode, &info ); 41f86: 486e ffe8 pea %fp@(-24) 41f8a: 2f02 movel %d2,%sp@- 41f8c: 486e ffc7 pea %fp@(-57) 41f90: 2f00 movel %d0,%sp@- 41f92: 2f2e 0018 movel %fp@(24),%sp@- 41f96: 4eb9 0004 8988 jsr 48988 if ( !new_node ) 41f9c: 4fef 0014 lea %sp@(20),%sp 41fa0: 4a80 tstl %d0 41fa2: 6610 bnes 41fb4 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOMEM ); 41fa4: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 41faa: 2040 moveal %d0,%a0 <== NOT EXECUTED 41fac: 700c moveq #12,%d0 <== NOT EXECUTED 41fae: 2080 movel %d0,%a0@ <== NOT EXECUTED 41fb0: 70ff moveq #-1,%d0 <== NOT EXECUTED 41fb2: 6002 bras 41fb6 <== NOT EXECUTED return 0; 41fb4: 4280 clrl %d0 } 41fb6: 4cee 003c ffb4 moveml %fp@(-76),%d2-%d5 41fbc: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00041fc0 : /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 41fc0: 7001 moveq #1,%d0 <== NOT EXECUTED #include int IMFS_mount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 41fc2: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 41fc6: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 41fca: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 41fce: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 41fd2: 6710 beqs 41fe4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 41fd4: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 41fda: 2040 moveal %d0,%a0 <== NOT EXECUTED 41fdc: 7014 moveq #20,%d0 <== NOT EXECUTED 41fde: 2080 movel %d0,%a0@ <== NOT EXECUTED 41fe0: 70ff moveq #-1,%d0 <== NOT EXECUTED 41fe2: 6006 bras 41fea <== NOT EXECUTED /* * Set mt_fs pointer to point to the mount table entry for * the mounted file system. */ node->info.directory.mt_fs = mt_entry; 41fe4: 2149 0058 movel %a1,%a0@(88) <== NOT EXECUTED return 0; 41fe8: 4280 clrl %d0 <== NOT EXECUTED } 41fea: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00044660 : * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 44660: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44664: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 4466a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4466c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 44670: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44672: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED switch( the_jnode->type ) { 44676: 7406 moveq #6,%d2 <== NOT EXECUTED IMFS_jnode_t *the_jnode ) { IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44678: 486a 000c pea %a2@(12) <== NOT EXECUTED 4467c: 4eb9 0004 fda8 jsr 4fda8 <== NOT EXECUTED switch( the_jnode->type ) { 44682: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 44686: 2200 movel %d0,%d1 <== NOT EXECUTED 44688: 508f addql #8,%sp <== NOT EXECUTED 4468a: 5381 subql #1,%d1 <== NOT EXECUTED 4468c: b481 cmpl %d1,%d2 <== NOT EXECUTED 4468e: 6500 009c bcsw 4472c <== NOT EXECUTED 44692: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED 44698: 303b 1a08 movew %pc@(446a2 ,%d1:l:2),%d0<== NOT EXECUTED 4469c: 48c0 extl %d0 <== NOT EXECUTED 4469e: 4efb 0802 jmp %pc@(446a2 ,%d0:l)<== NOT EXECUTED 446a2: 000e 016 <== NOT EXECUTED 446a4: 0022 042 <== NOT EXECUTED 446a6: 006a 0152 <== NOT EXECUTED 446a8: 006a 0152 <== NOT EXECUTED 446aa: 0050 0120 <== NOT EXECUTED 446ac: 0032 062 <== NOT EXECUTED 446ae: 0076 0166 <== NOT EXECUTED case IMFS_DIRECTORY: fprintf(stdout, "/" ); 446b0: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 446b4: 4878 002f pea 2f <== NOT EXECUTED 446b8: 4eb9 0004 fcd8 jsr 4fcd8 <== NOT EXECUTED break; 446be: 508f addql #8,%sp <== NOT EXECUTED 446c0: 6000 0088 braw 4474a <== NOT EXECUTED case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", 446c4: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 446c8: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 446cc: 4879 0005 f2e6 pea 5f2e6 <== NOT EXECUTED 446d2: 600e bras 446e2 <== NOT EXECUTED the_jnode->info.device.major, the_jnode->info.device.minor ); break; case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", 446d4: 2f2a 0054 movel %a2@(84),%sp@- <== NOT EXECUTED 446d8: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 446dc: 4879 0005 f2f9 pea 5f2f9 <== NOT EXECUTED 446e2: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 446e6: 4eb9 0004 fc5a jsr 4fc5a <== NOT EXECUTED (uint32_t)the_jnode->info.linearfile.size, the_jnode->info.linearfile.direct ); break; 446ec: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 446f0: 6058 bras 4474a <== NOT EXECUTED the_jnode->info.file.indirect, the_jnode->info.file.doubly_indirect, the_jnode->info.file.triply_indirect ); #else fprintf(stdout, " (file %" PRId32 ")", 446f2: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 446f6: 4879 0005 f308 pea 5f308 <== NOT EXECUTED 446fc: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44700: 4eb9 0004 fc5a jsr 4fc5a <== NOT EXECUTED (uint32_t)the_jnode->info.file.size ); #endif break; 44706: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4470a: 603e bras 4474a <== NOT EXECUTED case IMFS_HARD_LINK: fprintf(stdout, " links not printed\n" ); return; case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); 4470c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44710: 4879 0005 f314 pea 5f314 <== NOT EXECUTED 44716: 600a bras 44722 <== NOT EXECUTED return; case IMFS_FIFO: fprintf(stdout, " FIFO not printed\n" ); 44718: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4471c: 4879 0005 f328 pea 5f328 <== NOT EXECUTED 44722: 4eb9 0004 fda8 jsr 4fda8 <== NOT EXECUTED return; 44728: 508f addql #8,%sp <== NOT EXECUTED 4472a: 6038 bras 44764 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); 4472c: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4472e: 4879 0005 f33b pea 5f33b <== NOT EXECUTED 44734: 2079 0006 0a7c moveal 60a7c <_impure_ptr>,%a0 <== NOT EXECUTED 4473a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4473e: 4eb9 0004 fc5a jsr 4fc5a <== NOT EXECUTED return; 44744: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 44748: 601a bras 44764 <== NOT EXECUTED } puts(""); } 4474a: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 4474e: 203c 0005 f9ee movel #391662,%d0 <== NOT EXECUTED } 44754: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44758: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 4475c: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 4475e: 4ef9 0005 157e jmp 5157e <== NOT EXECUTED } 44764: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 44768: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4476c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042004 : node = loc->node_access; IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 42004: 4280 clrl %d0 <== NOT EXECUTED int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 42006: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; 4200a: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 4200e: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; 42010: 2250 moveal %a0@,%a1 <== NOT EXECUTED int IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 42012: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42014: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED IMFS_jnode_t *node; int i; node = loc->node_access; 42018: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 4201c: 6004 bras 42022 <== NOT EXECUTED 4201e: 5280 addql #1,%d0 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; 42020: 10c1 moveb %d1,%a0@+ <== NOT EXECUTED node = loc->node_access; IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 42022: b480 cmpl %d0,%d2 <== NOT EXECUTED 42024: 630a blss 42030 <== NOT EXECUTED 42026: 2469 004c moveal %a1@(76),%a2 <== NOT EXECUTED 4202a: 1232 0800 moveb %a2@(00000000,%d0:l),%d1 <== NOT EXECUTED 4202e: 66ee bnes 4201e <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 42030: 241f movel %sp@+,%d2 <== NOT EXECUTED 42032: 245f moveal %sp@+,%a2 <== NOT EXECUTED 42034: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042038 : rtems_filesystem_location_info_t *old_parent_loc, /* IN */ rtems_filesystem_location_info_t *old_loc, /* IN */ rtems_filesystem_location_info_t *new_parent_loc, /* IN */ const char *new_name /* IN */ ) { 42038: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_jnode_t *new_parent; the_jnode = old_loc->node_access; 4203c: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED rtems_filesystem_location_info_t *old_parent_loc, /* IN */ rtems_filesystem_location_info_t *old_loc, /* IN */ rtems_filesystem_location_info_t *new_parent_loc, /* IN */ const char *new_name /* IN */ ) { 42040: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_jnode_t *new_parent; the_jnode = old_loc->node_access; 42042: 2450 moveal %a0@,%a2 <== NOT EXECUTED strncpy( the_jnode->name, new_name, IMFS_NAME_MAX ); 42044: 4878 0020 pea 20 <== NOT EXECUTED 42048: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4204c: 486a 000c pea %a2@(12) <== NOT EXECUTED 42050: 4eb9 0004 cef4 jsr 4cef4 <== NOT EXECUTED if ( the_jnode->Parent != NULL ) 42056: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4205a: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4205e: 670a beqs 4206a <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 42060: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42062: 4eb9 0004 5f84 jsr 45f84 <_Chain_Extract> <== NOT EXECUTED 42068: 588f addql #4,%sp <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); new_parent = new_parent_loc->node_access; 4206a: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 4206e: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_jnode->Parent = new_parent; 42070: 2548 0008 movel %a0,%a2@(8) <== NOT EXECUTED RTEMS_INLINE_ROUTINE void rtems_chain_append( rtems_chain_control *the_chain, rtems_chain_node *the_node ) { _Chain_Append( the_chain, the_node ); 42074: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42076: 4868 004c pea %a0@(76) <== NOT EXECUTED 4207a: 4eb9 0004 5f4c jsr 45f4c <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &new_parent->info.directory.Entries, &the_jnode->Node ); /* * Update the time. */ IMFS_update_ctime( the_jnode ); 42080: 42a7 clrl %sp@- <== NOT EXECUTED 42082: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42086: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4208c: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 42092: 4280 clrl %d0 <== NOT EXECUTED 42094: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 42098: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004934e : int IMFS_rmnod( rtems_filesystem_location_info_t *parent_pathloc, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN */ ) { 4934e: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *jnode = (IMFS_jnode_t *) pathloc->node_access; 49352: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED int IMFS_rmnod( rtems_filesystem_location_info_t *parent_pathloc, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN */ ) { 49356: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = (IMFS_jnode_t *) pathloc->node_access; 49358: 2410 movel %a0@,%d2 <== NOT EXECUTED IMFS_create_orphan( jnode ); 4935a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4935c: 4eb9 0004 929c jsr 4929c <== NOT EXECUTED IMFS_check_node_remove( jnode ); 49362: 2f02 movel %d2,%sp@- <== NOT EXECUTED 49364: 4eb9 0004 92e0 jsr 492e0 <== NOT EXECUTED return 0; } 4936a: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4936e: 4280 clrl %d0 <== NOT EXECUTED 49370: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00049374 : IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 49374: 7205 moveq #5,%d1 int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 49376: 4e56 0000 linkw %fp,#0 4937a: 206e 000c moveal %fp@(12),%a0 4937e: 2f0a movel %a2,%sp@- 49380: 246e 0008 moveal %fp@(8),%a2 IMFS_fs_info_t *fs_info; IMFS_jnode_t *the_jnode; IMFS_device_t *io; the_jnode = loc->node_access; 49384: 2252 moveal %a2@,%a1 switch ( the_jnode->type ) { 49386: 2029 0048 movel %a1@(72),%d0 4938a: 5580 subql #2,%d0 4938c: b280 cmpl %d0,%d1 4938e: 653e bcss 493ce <== NEVER TAKEN 49390: 303b 0a08 movew %pc@(4939a ,%d0:l:2),%d0 49394: 48c0 extl %d0 49396: 4efb 0802 jmp %pc@(4939a ,%d0:l) 4939a: 000c 014 <== NOT EXECUTED 4939c: 0034 064 <== NOT EXECUTED 4939e: 0026 046 <== NOT EXECUTED 493a0: 001c 034 <== NOT EXECUTED 493a2: 001c 034 <== NOT EXECUTED 493a4: 0026 046 <== NOT EXECUTED case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); 493a6: 2029 0050 movel %a1@(80),%d0 493aa: 2169 004c 0016 movel %a1@(76),%a0@(22) 493b0: 2140 001a movel %d0,%a0@(26) break; 493b4: 602a bras 493e0 case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 493b6: 2029 004c movel %a1@(76),%d0 <== NOT EXECUTED 493ba: 2229 0050 movel %a1@(80),%d1 <== NOT EXECUTED 493be: 6004 bras 493c4 <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; case IMFS_FIFO: buf->st_size = 0; 493c0: 4280 clrl %d0 <== NOT EXECUTED 493c2: 4281 clrl %d1 <== NOT EXECUTED 493c4: 2140 001e movel %d0,%a0@(30) <== NOT EXECUTED 493c8: 2141 0022 movel %d1,%a0@(34) <== NOT EXECUTED break; 493cc: 6012 bras 493e0 <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 493ce: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 493d4: 2040 moveal %d0,%a0 <== NOT EXECUTED 493d6: 70ff moveq #-1,%d0 <== NOT EXECUTED 493d8: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 493de: 6046 bras 49426 <== NOT EXECUTED /* * The device number of the IMFS is the major number and the minor is the * instance. */ fs_info = loc->mt_entry->fs_info; 493e0: 246a 0010 moveal %a2@(16),%a2 buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 493e4: 246a 0034 moveal %a2@(52),%a2 493e8: 2012 movel %a2@,%d0 buf->st_mode = the_jnode->st_mode; 493ea: 2169 002e 000c movel %a1@(46),%a0@(12) buf->st_nlink = the_jnode->st_nlink; 493f0: 3169 0032 0010 movew %a1@(50),%a0@(16) buf->st_ino = the_jnode->st_ino; 493f6: 2169 0034 0008 movel %a1@(52),%a0@(8) buf->st_uid = the_jnode->st_uid; 493fc: 3169 0038 0012 movew %a1@(56),%a0@(18) buf->st_gid = the_jnode->st_gid; 49402: 3169 003a 0014 movew %a1@(58),%a0@(20) buf->st_atime = the_jnode->stat_atime; 49408: 2169 003c 0026 movel %a1@(60),%a0@(38) buf->st_mtime = the_jnode->stat_mtime; 4940e: 2169 0040 002e movel %a1@(64),%a0@(46) buf->st_ctime = the_jnode->stat_ctime; 49414: 2169 0044 0036 movel %a1@(68),%a0@(54) /* * The device number of the IMFS is the major number and the minor is the * instance. */ fs_info = loc->mt_entry->fs_info; buf->st_dev = 4941a: 2140 0004 movel %d0,%a0@(4) buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; 4941e: 4280 clrl %d0 /* * The device number of the IMFS is the major number and the minor is the * instance. */ fs_info = loc->mt_entry->fs_info; buf->st_dev = 49420: 20bc 0000 fffe movel #65534,%a0@ buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 49426: 246e fffc moveal %fp@(-4),%a2 4942a: 4e5e unlk %fp ... =============================================================================== 0004209c : int IMFS_symlink( rtems_filesystem_location_info_t *parent_loc, const char *link_name, const char *node_name ) { 4209c: 4e56 ffc4 linkw %fp,#-60 <== NOT EXECUTED 420a0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 420a2: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 420a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED int i; /* * Remove any separators at the end of the string. */ IMFS_get_token( node_name, strlen( node_name ), new_name, &i ); 420a8: 240e movel %fp,%d2 <== NOT EXECUTED 420aa: 0682 ffff ffc7 addil #-57,%d2 <== NOT EXECUTED 420b0: 2f03 movel %d3,%sp@- <== NOT EXECUTED 420b2: 4eb9 0004 cedc jsr 4cedc <== NOT EXECUTED 420b8: 588f addql #4,%sp <== NOT EXECUTED 420ba: 486e fffc pea %fp@(-4) <== NOT EXECUTED 420be: 2f02 movel %d2,%sp@- <== NOT EXECUTED 420c0: 2f00 movel %d0,%sp@- <== NOT EXECUTED 420c2: 2f03 movel %d3,%sp@- <== NOT EXECUTED 420c4: 4eb9 0004 91e8 jsr 491e8 <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup(link_name); 420ca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 420ce: 4eb9 0004 ca4c jsr 4ca4c <== NOT EXECUTED if (info.sym_link.name == NULL) { 420d4: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED IMFS_get_token( node_name, strlen( node_name ), new_name, &i ); /* * Duplicate link name */ info.sym_link.name = strdup(link_name); 420d8: 2d40 ffe8 movel %d0,%fp@(-24) <== NOT EXECUTED if (info.sym_link.name == NULL) { 420dc: 660e bnes 420ec <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 420de: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 420e4: 720c moveq #12,%d1 <== NOT EXECUTED 420e6: 2040 moveal %d0,%a0 <== NOT EXECUTED 420e8: 2081 movel %d1,%a0@ <== NOT EXECUTED 420ea: 603a bras 42126 <== NOT EXECUTED * was ONLY passed a NULL when we created the root node. We * added a new IMFS_create_root_node() so this path no longer * existed. The result was simpler code which should not have * this path. */ new_node = IMFS_create_node( 420ec: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 420f0: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 420f6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 420f8: 4878 0004 pea 4 <== NOT EXECUTED 420fc: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42100: 4eb9 0004 8988 jsr 48988 <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { 42106: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED 4210a: 4a80 tstl %d0 <== NOT EXECUTED 4210c: 661c bnes 4212a <== NOT EXECUTED free(info.sym_link.name); 4210e: 2f2e ffe8 movel %fp@(-24),%sp@- <== NOT EXECUTED 42112: 4eb9 0004 27b4 jsr 427b4 <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 42118: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4211e: 588f addql #4,%sp <== NOT EXECUTED 42120: 2040 moveal %d0,%a0 <== NOT EXECUTED 42122: 700c moveq #12,%d0 <== NOT EXECUTED 42124: 2080 movel %d0,%a0@ <== NOT EXECUTED 42126: 70ff moveq #-1,%d0 <== NOT EXECUTED 42128: 6002 bras 4212c <== NOT EXECUTED } return 0; 4212a: 4280 clrl %d0 <== NOT EXECUTED } 4212c: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED 42130: 262e ffc0 movel %fp@(-64),%d3 <== NOT EXECUTED 42134: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042138 : /* * If this is the last last pointer to the node * free the node. */ if ( node->type == IMFS_HARD_LINK ) { 42138: 7003 moveq #3,%d0 <== NOT EXECUTED int IMFS_unlink( rtems_filesystem_location_info_t *parentloc, /* IN */ rtems_filesystem_location_info_t *loc /* IN */ ) { 4213a: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 4213e: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 42142: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 42146: 262e 0008 movel %fp@(8),%d3 <== NOT EXECUTED IMFS_jnode_t *node; rtems_filesystem_location_info_t the_link; int result = 0; node = loc->node_access; 4214a: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * If this is the last last pointer to the node * free the node. */ if ( node->type == IMFS_HARD_LINK ) { 4214c: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 42150: 6600 0082 bnew 421d4 <== NOT EXECUTED if ( !node->info.hard_link.link_node ) 42154: 282b 004c movel %a3@(76),%d4 <== NOT EXECUTED 42158: 660e bnes 42168 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4215a: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 42160: 2040 moveal %d0,%a0 <== NOT EXECUTED 42162: 7016 moveq #22,%d0 <== NOT EXECUTED 42164: 2080 movel %d0,%a0@ <== NOT EXECUTED 42166: 607e bras 421e6 <== NOT EXECUTED the_link = *loc; 42168: 4878 0014 pea 14 <== NOT EXECUTED 4216c: 240e movel %fp,%d2 <== NOT EXECUTED 4216e: 0682 ffff ffe4 addil #-28,%d2 <== NOT EXECUTED 42174: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42176: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42178: 4eb9 0004 c330 jsr 4c330 <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; 4217e: 2d44 ffe4 movel %d4,%fp@(-28) <== NOT EXECUTED /* * If removing the last hard link to a node, then we need * to remove the node that is a link and the node itself. */ if ( node->info.hard_link.link_node->st_nlink == 1) 42182: 7801 moveq #1,%d4 <== NOT EXECUTED if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 42184: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42186: 4eb9 0004 8ad8 jsr 48ad8 <== NOT EXECUTED /* * If removing the last hard link to a node, then we need * to remove the node that is a link and the node itself. */ if ( node->info.hard_link.link_node->st_nlink == 1) 4218c: 206b 004c moveal %a3@(76),%a0 <== NOT EXECUTED 42190: 4281 clrl %d1 <== NOT EXECUTED 42192: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 42196: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 4219a: 3200 movew %d0,%d1 <== NOT EXECUTED 4219c: b881 cmpl %d1,%d4 <== NOT EXECUTED 4219e: 6616 bnes 421b6 <== NOT EXECUTED { result = (*the_link.handlers->rmnod_h)( parentloc, &the_link ); 421a0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 421a2: 206e ffec moveal %fp@(-20),%a0 <== NOT EXECUTED 421a6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 421a8: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 421ac: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) 421ae: 508f addql #8,%sp <== NOT EXECUTED 421b0: 4a80 tstl %d0 <== NOT EXECUTED 421b2: 6720 beqs 421d4 <== NOT EXECUTED 421b4: 6030 bras 421e6 <== NOT EXECUTED return -1; } else { node->info.hard_link.link_node->st_nlink --; 421b6: 5380 subql #1,%d0 <== NOT EXECUTED 421b8: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( node->info.hard_link.link_node ); 421bc: 42a7 clrl %sp@- <== NOT EXECUTED 421be: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 421c2: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 421c8: 206b 004c moveal %a3@(76),%a0 <== NOT EXECUTED 421cc: 508f addql #8,%sp <== NOT EXECUTED 421ce: 216e fff8 0044 movel %fp@(-8),%a0@(68) <== NOT EXECUTED /* * Now actually free the node we were asked to free. */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); 421d4: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 421d8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 421da: 2f03 movel %d3,%sp@- <== NOT EXECUTED 421dc: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 421e0: 4e90 jsr %a0@ <== NOT EXECUTED return result; 421e2: 508f addql #8,%sp <== NOT EXECUTED 421e4: 6002 bras 421e8 <== NOT EXECUTED if ( node->info.hard_link.link_node->st_nlink == 1) { result = (*the_link.handlers->rmnod_h)( parentloc, &the_link ); if ( result != 0 ) return -1; 421e6: 70ff moveq #-1,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); return result; } 421e8: 4cee 0c1c ffd0 moveml %fp@(-48),%d2-%d4/%a2-%a3 <== NOT EXECUTED 421ee: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 000421f4 : /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 421f4: 7001 moveq #1,%d0 <== NOT EXECUTED #include int IMFS_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 421f6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 421fa: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 421fe: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 42202: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 42206: 670e beqs 42216 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOTDIR ); 42208: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 4220e: 7214 moveq #20,%d1 <== NOT EXECUTED 42210: 2040 moveal %d0,%a0 <== NOT EXECUTED 42212: 2081 movel %d1,%a0@ <== NOT EXECUTED 42214: 6012 bras 42228 <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) 42216: 4aa8 0058 tstl %a0@(88) <== NOT EXECUTED 4221a: 6610 bnes 4222c <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 4221c: 4eb9 0004 ba84 jsr 4ba84 <__errno> <== NOT EXECUTED 42222: 2040 moveal %d0,%a0 <== NOT EXECUTED 42224: 7016 moveq #22,%d0 <== NOT EXECUTED 42226: 2080 movel %d0,%a0@ <== NOT EXECUTED 42228: 70ff moveq #-1,%d0 <== NOT EXECUTED 4222a: 6006 bras 42232 <== NOT EXECUTED /* * Set the mt_fs pointer to indicate that there is no longer * a file system mounted to this point. */ node->info.directory.mt_fs = NULL; 4222c: 42a8 0058 clrl %a0@(88) <== NOT EXECUTED return 0; 42230: 4280 clrl %d0 <== NOT EXECUTED } 42232: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00042238 : int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ time_t modtime /* IN */ ) { 42238: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 4223c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ time_t modtime /* IN */ ) { 42240: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 42242: 2450 moveal %a0@,%a2 <== NOT EXECUTED the_jnode->stat_atime = actime; 42244: 256e 000c 003c movel %fp@(12),%a2@(60) <== NOT EXECUTED the_jnode->stat_mtime = modtime; 4224a: 256e 0010 0040 movel %fp@(16),%a2@(64) <== NOT EXECUTED the_jnode->stat_ctime = time( NULL ); 42250: 42a7 clrl %sp@- <== NOT EXECUTED 42252: 4eb9 0004 f1a4 jsr 4f1a4