=============================================================================== 00042abc : #include static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { 42abc: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 42ac0: 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 } 42ac4: 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 ); 42ac6: 42a8 0082 clrl %a0@(130) <== NOT EXECUTED 42aca: 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 a1a7 pea 5a1a7 <== 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 cb04 lea 4cb04 ,%a3 <== NOT EXECUTED 41dc6: 41f9 0004 cb04 lea 4cb04 ,%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 9bf4 pea 59bf4 <== 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 b184 moveal 5b184 <__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 a1a9 pea 5a1a9 <== 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 cb04 lea 4cb04 ,%a2 <== NOT EXECUTED 41e46: 41f9 0004 cb04 lea 4cb04 ,%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 9bfb pea 59bfb <== 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 =============================================================================== 00048b64 : { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) { 48b64: 7206 moveq #6,%d1 #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 48b66: 4e56 0000 linkw %fp,#0 48b6a: 206e 0008 moveal %fp@(8),%a0 48b6e: 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 ) { 48b70: 2450 moveal %a0@,%a2 ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 48b72: 2268 0010 moveal %a0@(16),%a1 switch( node->type ) { 48b76: 202a 0048 movel %a2@(72),%d0 48b7a: 5380 subql #1,%d0 ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 48b7c: 2269 0034 moveal %a1@(52),%a1 switch( node->type ) { 48b80: b280 cmpl %d0,%d1 48b82: 6546 bcss 48bca <== NEVER TAKEN 48b84: 303b 0a08 movew %pc@(48b8e ,%d0:l:2),%d0 48b88: 48c0 extl %d0 48b8a: 4efb 0802 jmp %pc@(48b8e ,%d0:l) 48b8e: 000e .short 0x000e <== NOT EXECUTED 48b90: 0016 .short 0x0016 <== NOT EXECUTED 48b92: 0022 .short 0x0022 <== NOT EXECUTED 48b94: 0022 .short 0x0022 <== NOT EXECUTED 48b96: 002e .short 0x002e <== NOT EXECUTED 48b98: 002e .short 0x002e <== NOT EXECUTED 48b9a: 0036 .short 0x0036 <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 48b9c: 2169 000c 0008 movel %a1@(12),%a0@(8) break; 48ba2: 6026 bras 48bca case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 48ba4: 203c 0005 a2f0 movel #369392,%d0 48baa: 2140 0008 movel %d0,%a0@(8) break; 48bae: 601a bras 48bca case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 48bb0: 223c 0005 a360 movel #369504,%d1 <== NOT EXECUTED 48bb6: 2141 0008 movel %d1,%a0@(8) <== NOT EXECUTED break; 48bba: 600e bras 48bca <== NOT EXECUTED case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 48bbc: 2169 0008 0008 movel %a1@(8),%a0@(8) <== NOT EXECUTED break; 48bc2: 6006 bras 48bca <== NOT EXECUTED case IMFS_FIFO: loc->handlers = fs_info->fifo_handlers; 48bc4: 2169 0010 0008 movel %a1@(16),%a0@(8) <== NOT EXECUTED break; } return 0; } 48bca: 245f moveal %sp@+,%a2 48bcc: 4280 clrl %d0 48bce: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 000489a0 : IMFS_jnode_t *IMFS_allocate_node( IMFS_jnode_types_t type, const char *name, mode_t mode ) { 489a0: 4e56 fff8 linkw %fp,#-8 489a4: 2f0a movel %a2,%sp@- struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 489a6: 4878 0060 pea 60 489aa: 4878 0001 pea 1 489ae: 4eb9 0004 241c jsr 4241c if ( !node ) 489b4: 508f addql #8,%sp struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 489b6: 2440 moveal %d0,%a2 if ( !node ) 489b8: 4a80 tstl %d0 489ba: 674e beqs 48a0a <== NEVER TAKEN /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 489bc: 4878 0020 pea 20 489c0: 2f2e 000c movel %fp@(12),%sp@- /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; 489c4: 256e 0008 0048 movel %fp@(8),%a2@(72) strncpy( node->name, name, IMFS_NAME_MAX ); 489ca: 486a 000c pea %a2@(12) return NULL; /* * Fill in the basic information */ node->st_nlink = 1; 489ce: 7001 moveq #1,%d0 489d0: 3540 0032 movew %d0,%a2@(50) node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 489d4: 4eb9 0004 cfc0 jsr 4cfc0 /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode; 489da: 256e 0010 002e movel %fp@(16),%a2@(46) #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 489e0: 42a7 clrl %sp@- 489e2: 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; 489e6: 4240 clrw %d0 489e8: 3540 0038 movew %d0,%a2@(56) node->st_gid = 0; 489ec: 3540 003a movew %d0,%a2@(58) #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 489f0: 4eb9 0004 283c jsr 4283c node->stat_atime = (time_t) tv.tv_sec; 489f6: 202e fff8 movel %fp@(-8),%d0 node->stat_mtime = (time_t) tv.tv_sec; node->stat_ctime = (time_t) tv.tv_sec; return node; 489fa: 4fef 0014 lea %sp@(20),%sp /* * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 489fe: 2540 003c movel %d0,%a2@(60) node->stat_mtime = (time_t) tv.tv_sec; 48a02: 2540 0040 movel %d0,%a2@(64) node->stat_ctime = (time_t) tv.tv_sec; 48a06: 2540 0044 movel %d0,%a2@(68) return node; } 48a0a: 200a movel %a2,%d0 48a0c: 246e fff4 moveal %fp@(-12),%a2 48a10: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004936c : void IMFS_check_node_remove( IMFS_jnode_t *jnode ) { 4936c: 4e56 0000 linkw %fp,#0 49370: 2f0a movel %a2,%sp@- 49372: 246e 0008 moveal %fp@(8),%a2 if ( !rtems_libio_is_file_open( jnode ) && jnode->st_nlink < 1 ) { 49376: 2f0a movel %a2,%sp@- 49378: 4eb9 0004 98e2 jsr 498e2 4937e: 588f addql #4,%sp 49380: 4a80 tstl %d0 49382: 664e bnes 493d2 <== ALWAYS TAKEN 49384: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 49388: 6648 bnes 493d2 <== NOT EXECUTED if ( rtems_filesystem_current.node_access == jnode ) 4938a: 2079 0005 b000 moveal 5b000 ,%a0 <== NOT EXECUTED 49390: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 49394: 6604 bnes 4939a <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; 49396: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED switch ( jnode->type ) { 4939a: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 4939e: 7204 moveq #4,%d1 <== NOT EXECUTED 493a0: b280 cmpl %d0,%d1 <== NOT EXECUTED 493a2: 6712 beqs 493b6 <== NOT EXECUTED 493a4: 123c 0005 moveb #5,%d1 <== NOT EXECUTED 493a8: b280 cmpl %d0,%d1 <== NOT EXECUTED 493aa: 6616 bnes 493c2 <== NOT EXECUTED case IMFS_MEMORY_FILE: IMFS_memfile_remove( jnode ); 493ac: 2f0a movel %a2,%sp@- <== NOT EXECUTED 493ae: 4eb9 0004 ac94 jsr 4ac94 <== NOT EXECUTED 493b4: 600a bras 493c0 <== NOT EXECUTED break; case IMFS_SYM_LINK: free( jnode->info.sym_link.name ); 493b6: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 493ba: 4eb9 0004 27b4 jsr 427b4 <== NOT EXECUTED break; 493c0: 588f addql #4,%sp <== NOT EXECUTED default: break; } free( jnode ); 493c2: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 493c6: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 493ca: 4e5e unlk %fp <== NOT EXECUTED break; default: break; } free( jnode ); 493cc: 4ef9 0004 27b4 jmp 427b4 <== NOT EXECUTED } } 493d2: 246e fffc moveal %fp@(-4),%a2 493d6: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004896c : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 4896c: 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; 48970: 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 */ ) { 48974: 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; 48976: 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; 48978: 356e 000e 0038 movew %fp@(14),%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 4897e: 356e 0012 003a movew %fp@(18),%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 48984: 42a7 clrl %sp@- <== NOT EXECUTED 48986: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4898a: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 48990: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 48996: 4280 clrl %d0 <== NOT EXECUTED 48998: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4899c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048a14 : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 48a14: 4e56 ffec linkw %fp,#-20 48a18: 206e 0008 moveal %fp@(8),%a0 48a1c: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ 48a20: 242e 000c movel %fp@(12),%d2 48a24: 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 ) 48a28: 4a88 tstl %a0 48a2a: 6700 00ee beqw 48b1a return NULL; parent = parent_loc->node_access; 48a2e: 2850 moveal %a0@,%a4 fs_info = parent_loc->mt_entry->fs_info; /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 48a30: 7007 moveq #7,%d0 */ if ( parent_loc == NULL ) return NULL; parent = parent_loc->node_access; fs_info = parent_loc->mt_entry->fs_info; 48a32: 2068 0010 moveal %a0@(16),%a0 48a36: 2668 0034 moveal %a0@(52),%a3 /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 48a3a: b082 cmpl %d2,%d0 48a3c: 660e bnes 48a4c <== ALWAYS TAKEN 48a3e: 223c 0005 a280 movel #369280,%d1 <== NOT EXECUTED 48a44: b2ab 0010 cmpl %a3@(16),%d1 <== NOT EXECUTED 48a48: 6700 00d0 beqw 48b1a <== NOT EXECUTED return NULL; /* * Allocate filesystem node and fill in basic information */ node = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask ); 48a4c: 2079 0005 b000 moveal 5b000 ,%a0 48a52: 2028 002c movel %a0@(44),%d0 48a56: 4680 notl %d0 48a58: c0ae 0014 andl %fp@(20),%d0 48a5c: 2f00 movel %d0,%sp@- 48a5e: 2f2e 0010 movel %fp@(16),%sp@- 48a62: 2f02 movel %d2,%sp@- 48a64: 4eb9 0004 89a0 jsr 489a0 if ( !node ) 48a6a: 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 ); 48a6e: 2a40 moveal %d0,%a5 if ( !node ) 48a70: 4a80 tstl %d0 48a72: 6700 00a8 beqw 48b1c return NULL; /* * Set the type specific information */ if ( type == IMFS_DIRECTORY ) { 48a76: 7001 moveq #1,%d0 48a78: b082 cmpl %d2,%d0 48a7a: 6616 bnes 48a92 RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); Chain_Node *tail = _Chain_Tail( the_chain ); 48a7c: 41ed 0050 lea %a5@(80),%a0 48a80: 2b48 004c movel %a0,%a5@(76) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 48a84: 41ed 004c lea %a5@(76),%a0 Chain_Node *tail = _Chain_Tail( the_chain ); head->next = tail; head->previous = NULL; 48a88: 42ad 0050 clrl %a5@(80) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 48a8c: 2b48 0054 movel %a0,%a5@(84) 48a90: 6066 bras 48af8 rtems_chain_initialize_empty(&node->info.directory.Entries); } else if ( type == IMFS_HARD_LINK ) { 48a92: 7003 moveq #3,%d0 48a94: b082 cmpl %d2,%d0 48a96: 6706 beqs 48a9e <== NEVER TAKEN node->info.hard_link.link_node = info->hard_link.link_node; } else if ( type == IMFS_SYM_LINK ) { 48a98: 7204 moveq #4,%d1 48a9a: b282 cmpl %d2,%d1 48a9c: 6606 bnes 48aa4 <== ALWAYS TAKEN node->info.sym_link.name = info->sym_link.name; 48a9e: 2b52 004c movel %a2@,%a5@(76) <== NOT EXECUTED 48aa2: 6054 bras 48af8 <== NOT EXECUTED } else if ( type == IMFS_DEVICE ) { 48aa4: 7002 moveq #2,%d0 48aa6: b082 cmpl %d2,%d0 48aa8: 660c bnes 48ab6 <== NEVER TAKEN node->info.device.major = info->device.major; 48aaa: 2b52 004c movel %a2@,%a5@(76) node->info.device.minor = info->device.minor; 48aae: 2b6a 0004 0050 movel %a2@(4),%a5@(80) 48ab4: 6042 bras 48af8 } else if ( type == IMFS_LINEAR_FILE ) { 48ab6: 7206 moveq #6,%d1 <== NOT EXECUTED 48ab8: b282 cmpl %d2,%d1 <== NOT EXECUTED 48aba: 6612 bnes 48ace <== NOT EXECUTED node->info.linearfile.size = 0; node->info.linearfile.direct = 0; 48abc: 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; 48ac0: 4280 clrl %d0 <== NOT EXECUTED 48ac2: 4281 clrl %d1 <== NOT EXECUTED 48ac4: 2b40 004c movel %d0,%a5@(76) <== NOT EXECUTED 48ac8: 2b41 0050 movel %d1,%a5@(80) <== NOT EXECUTED 48acc: 602a bras 48af8 <== NOT EXECUTED node->info.linearfile.direct = 0; } else if ( type == IMFS_MEMORY_FILE ) { 48ace: 7205 moveq #5,%d1 <== NOT EXECUTED 48ad0: b282 cmpl %d2,%d1 <== NOT EXECUTED 48ad2: 661a bnes 48aee <== NOT EXECUTED node->info.file.size = 0; node->info.file.indirect = 0; 48ad4: 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; 48ad8: 4280 clrl %d0 <== NOT EXECUTED 48ada: 4281 clrl %d1 <== NOT EXECUTED node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; 48adc: 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; 48ae0: 2b40 004c movel %d0,%a5@(76) <== NOT EXECUTED 48ae4: 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; 48ae8: 42ad 005c clrl %a5@(92) <== NOT EXECUTED 48aec: 600a bras 48af8 <== NOT EXECUTED } else if ( type == IMFS_FIFO ) { 48aee: 7207 moveq #7,%d1 <== NOT EXECUTED 48af0: b282 cmpl %d2,%d1 <== NOT EXECUTED 48af2: 6604 bnes 48af8 <== NOT EXECUTED node->info.fifo.pipe = NULL; 48af4: 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; 48af8: 202b 0004 movel %a3@(4),%d0 48afc: 5280 addql #1,%d0 } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 48afe: 2b4c 0008 movel %a4,%a5@(8) node->st_ino = ++fs_info->ino_count; 48b02: 2740 0004 movel %d0,%a3@(4) 48b06: 2b40 0034 movel %d0,%a5@(52) 48b0a: 2f0d movel %a5,%sp@- 48b0c: 486c 004c pea %a4@(76) 48b10: 4eb9 0004 5f60 jsr 45f60 <_Chain_Append> rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 48b16: 508f addql #8,%sp 48b18: 6002 bras 48b1c /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && fs_info->fifo_handlers == &rtems_filesystem_handlers_default ) return NULL; 48b1a: 9bcd subal %a5,%a5 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; } 48b1c: 200d movel %a5,%d0 48b1e: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 48b24: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00049328 : #include #include "imfs.h" void IMFS_create_orphan( IMFS_jnode_t *jnode ) { 49328: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4932c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4932e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( jnode->Parent != NULL ) { 49332: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 49336: 670e beqs 49346 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 49338: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4933a: 4eb9 0004 5f98 jsr 45f98 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( &jnode->Node ); jnode->Parent = NULL; 49340: 588f addql #4,%sp <== NOT EXECUTED 49342: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED } --jnode->st_nlink; 49346: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 4934a: 5380 subql #1,%d0 <== NOT EXECUTED 4934c: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( jnode ); 49350: 42a7 clrl %sp@- <== NOT EXECUTED 49352: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 49356: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4935c: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED 49362: 508f addql #8,%sp <== NOT EXECUTED } 49364: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 49368: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048b28 : return node; } IMFS_jnode_t *IMFS_create_root_node(void) { 48b28: 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) ); 48b2c: 4878 41ed pea 41ed 48b30: 4879 0005 a0d0 pea 5a0d0 48b36: 4878 0001 pea 1 48b3a: 4eb9 0004 89a0 jsr 489a0 if ( !node ) 48b40: 4fef 000c lea %sp@(12),%sp 48b44: 4a80 tstl %d0 48b46: 6716 beqs 48b5e <== NEVER TAKEN Chain_Node *tail = _Chain_Tail( the_chain ); 48b48: 2240 moveal %d0,%a1 48b4a: 2040 moveal %d0,%a0 48b4c: 43e9 0050 lea %a1@(80),%a1 48b50: 2149 004c movel %a1,%a0@(76) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 48b54: 5989 subql #4,%a1 Chain_Node *tail = _Chain_Tail( the_chain ); head->next = tail; head->previous = NULL; 48b56: 42a8 0050 clrl %a0@(80) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 48b5a: 2149 0054 movel %a1,%a0@(84) * NOTE: Root node is always a directory. */ rtems_chain_initialize_empty(&node->info.directory.Entries); return node; } 48b5e: 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 0b60 moveal 60b60 <_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 fe74 lea 4fe74 ,%a2 <== NOT EXECUTED 447fe: 4879 0005 f426 pea 5f426 <== NOT EXECUTED 44804: 4e92 jsr %a2@ <== NOT EXECUTED fprintf(stdout, "/\n" ); 44806: 2079 0006 0b60 moveal 60b60 <_impure_ptr>,%a0 <== NOT EXECUTED 4480c: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44810: 4879 0005 f45b pea 5f45b <== NOT EXECUTED 44816: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); 44818: 2079 0006 0ae0 moveal 60ae0 ,%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 0b60 moveal 60b60 <_impure_ptr>,%a0 <== NOT EXECUTED 44830: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44834: 4879 0005 f45e pea 5f45e <== 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 bool _Chain_Is_tail( Chain_Control *the_chain, const Chain_Node *the_node ) { return (the_node == _Chain_Tail(the_chain)); 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 fe74 lea 4fe74 ,%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 * */ int IMFS_memfile_maximum_size( void ) { return IMFS_MEMFILE_MAXIMUM_SIZE; } 4479e: 2468 004c moveal %a0@(76),%a2 <== NOT EXECUTED IMFS_assert( level >= 0 ); IMFS_assert( the_directory->type == IMFS_DIRECTORY ); the_chain = &the_directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); 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 0b60 moveal 60b60 <_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 f421 pea 5f421 <== 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 = rtems_chain_first( the_chain ); !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 = rtems_chain_first( the_chain ); 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 =============================================================================== 00048c50 : 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 ) ) { 48c50: 70f8 moveq #-8,%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 48c52: 4e56 ff9c linkw %fp,#-100 48c56: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 48c5a: 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 ) ) { 48c5e: c084 andl %d4,%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 48c60: 2a6e 0008 moveal %fp@(8),%a5 48c64: 286e 000c moveal %fp@(12),%a4 48c68: 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 ) ) { 48c6c: 670e beqs 48c7c <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EIO ); 48c6e: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48c74: 7c05 moveq #5,%d6 <== NOT EXECUTED 48c76: 2040 moveal %d0,%a0 <== NOT EXECUTED 48c78: 2086 movel %d6,%a0@ <== NOT EXECUTED 48c7a: 603e bras 48cba <== 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 ); 48c7c: 2a0e movel %fp,%d5 size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { int i = 0; 48c7e: 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 ); 48c80: 0685 ffff ffc7 addil #-57,%d5 } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48c86: 2e3c 0004 9208 movel #299528,%d7 /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 48c8c: 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 ); 48c8e: 486e fffc pea %fp@(-4) 48c92: 2f05 movel %d5,%sp@- 48c94: 2f0c movel %a4,%sp@- 48c96: 4875 2800 pea %a5@(00000000,%d2:l) 48c9a: 4eb9 0004 9274 jsr 49274 pathnamelen -= len; 48ca0: 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 ); 48ca4: 2600 movel %d0,%d3 pathnamelen -= len; i += len; if ( !pathloc->node_access ) 48ca6: 4fef 0010 lea %sp@(16),%sp 48caa: 4a92 tstl %a2@ 48cac: 6612 bnes 48cc0 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOENT ); 48cae: 4eb9 0004 bb50 jsr 4bb50 <__errno> 48cb4: 7a02 moveq #2,%d5 48cb6: 2040 moveal %d0,%a0 48cb8: 2085 movel %d5,%a0@ 48cba: 76ff moveq #-1,%d3 48cbc: 6000 017c braw 48e3a /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 48cc0: 4a80 tstl %d0 48cc2: 671c beqs 48ce0 if ( node->type == IMFS_DIRECTORY ) 48cc4: 7001 moveq #1,%d0 48cc6: b0ab 0048 cmpl %a3@(72),%d0 48cca: 6614 bnes 48ce0 <== NEVER TAKEN if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 48ccc: 4878 0001 pea 1 48cd0: 2f0a movel %a2,%sp@- 48cd2: 4eb9 0004 8bd2 jsr 48bd2 48cd8: 508f addql #8,%sp 48cda: 4a80 tstl %d0 48cdc: 6700 014a beqw 48e28 rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 48ce0: 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; 48ce2: 99c6 subal %d6,%a4 i += len; 48ce4: 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 ) { 48ce6: 7003 moveq #3,%d0 48ce8: b083 cmpl %d3,%d0 48cea: 6742 beqs 48d2e 48cec: 7204 moveq #4,%d1 48cee: b283 cmpl %d3,%d1 48cf0: 6700 00aa beqw 48d9c 48cf4: 103c 0002 moveb #2,%d0 48cf8: b083 cmpl %d3,%d0 48cfa: 6600 00b0 bnew 48dac case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 48cfe: 2079 0005 b000 moveal 5b000 ,%a0 <== NOT EXECUTED 48d04: b7e8 0018 cmpal %a0@(24),%a3 <== NOT EXECUTED 48d08: 6784 beqs 48c8e <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access) { 48d0a: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 48d0e: b7e8 001c cmpal %a0@(28),%a3 <== NOT EXECUTED 48d12: 6614 bnes 48d28 <== 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; 48d14: 4878 0014 pea 14 <== NOT EXECUTED 48d18: 260e movel %fp,%d3 <== NOT EXECUTED 48d1a: 4868 0008 pea %a0@(8) <== NOT EXECUTED 48d1e: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48d24: 6000 00b2 braw 48dd8 <== NOT EXECUTED pathnamelen+len, flags,pathloc); } } else { if ( !node->Parent ) 48d28: 266b 0008 moveal %a3@(8),%a3 <== NOT EXECUTED 48d2c: 6062 bras 48d90 <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 48d2e: 202b 0048 movel %a3@(72),%d0 48d32: 7203 moveq #3,%d1 48d34: b280 cmpl %d0,%d1 48d36: 6610 bnes 48d48 <== ALWAYS TAKEN IMFS_evaluate_hard_link( pathloc, 0 ); 48d38: 42a7 clrl %sp@- <== NOT EXECUTED 48d3a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d3c: 4eb9 0004 8c0a jsr 48c0a <== NOT EXECUTED node = pathloc->node_access; 48d42: 2652 moveal %a2@,%a3 <== NOT EXECUTED 48d44: 508f addql #8,%sp <== NOT EXECUTED 48d46: 601c bras 48d64 <== 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 ) { 48d48: 7204 moveq #4,%d1 48d4a: b280 cmpl %d0,%d1 48d4c: 6616 bnes 48d64 <== ALWAYS TAKEN result = IMFS_evaluate_sym_link( pathloc, 0 ); 48d4e: 42a7 clrl %sp@- <== NOT EXECUTED 48d50: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48d52: 4eb9 0004 8e46 jsr 48e46 <== NOT EXECUTED /* * In contrast to a hard link, it is possible to have a broken * symbolic link. */ node = pathloc->node_access; 48d58: 2652 moveal %a2@,%a3 <== NOT EXECUTED if ( result == -1 ) 48d5a: 508f addql #8,%sp <== NOT EXECUTED 48d5c: 72ff moveq #-1,%d1 <== NOT EXECUTED 48d5e: b280 cmpl %d0,%d1 <== NOT EXECUTED 48d60: 6700 00d6 beqw 48e38 <== NOT EXECUTED } /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 48d64: 7001 moveq #1,%d0 48d66: b0ab 0048 cmpl %a3@(72),%d0 48d6a: 6710 beqs 48d7c <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOTDIR ); 48d6c: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48d72: 7814 moveq #20,%d4 <== NOT EXECUTED 48d74: 2040 moveal %d0,%a0 <== NOT EXECUTED 48d76: 2084 movel %d4,%a0@ <== NOT EXECUTED 48d78: 6000 ff40 braw 48cba <== 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 ) { 48d7c: 206b 0058 moveal %a3@(88),%a0 48d80: 4a88 tstl %a0 48d82: 6644 bnes 48dc8 <== NEVER TAKEN } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48d84: 2f05 movel %d5,%sp@- 48d86: 2047 moveal %d7,%a0 48d88: 2f0b movel %a3,%sp@- 48d8a: 4e90 jsr %a0@ if ( !node ) 48d8c: 508f addql #8,%sp } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 48d8e: 2640 moveal %d0,%a3 if ( !node ) 48d90: 4a8b tstl %a3 48d92: 6700 ff1a beqw 48cae /* * Set the node access to the point we have found. */ pathloc->node_access = node; 48d96: 248b movel %a3,%a2@ 48d98: 6000 fef4 braw 48c8e case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 48d9c: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48da2: 765b moveq #91,%d3 <== NOT EXECUTED 48da4: 2040 moveal %d0,%a0 <== NOT EXECUTED 48da6: 2083 movel %d3,%a0@ <== NOT EXECUTED 48da8: 6000 ff10 braw 48cba <== NOT EXECUTED /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 48dac: 4a83 tstl %d3 48dae: 6708 beqs 48db8 48db0: 7004 moveq #4,%d0 48db2: b083 cmpl %d3,%d0 48db4: 6600 fed8 bnew 48c8e * 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 ) { 48db8: 7201 moveq #1,%d1 48dba: b2ab 0048 cmpl %a3@(72),%d1 48dbe: 664e bnes 48e0e if ( node->info.directory.mt_fs != NULL ) { 48dc0: 206b 0058 moveal %a3@(88),%a0 48dc4: 4a88 tstl %a0 48dc6: 6746 beqs 48e0e <== ALWAYS TAKEN newloc = node->info.directory.mt_fs->mt_fs_root; 48dc8: 4878 0014 pea 14 <== NOT EXECUTED 48dcc: 260e movel %fp,%d3 <== NOT EXECUTED 48dce: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 48dd4: 4868 001c pea %a0@(28) <== NOT EXECUTED 48dd8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48dda: 47f9 0004 c3fc lea 4c3fc ,%a3 <== NOT EXECUTED 48de0: 4e93 jsr %a3@ <== NOT EXECUTED *pathloc = newloc; 48de2: 4878 0014 pea 14 <== NOT EXECUTED 48de6: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48de8: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48dea: 4e93 jsr %a3@ <== NOT EXECUTED return (*pathloc->ops->evalpath_h)( &pathname[i-len], 48dec: 226a 000c moveal %a2@(12),%a1 <== NOT EXECUTED 48df0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48df2: 206e fffc moveal %fp@(-4),%a0 <== NOT EXECUTED 48df6: 9488 subl %a0,%d2 <== NOT EXECUTED 48df8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 48dfa: 4874 8800 pea %a4@(00000000,%a0:l) <== NOT EXECUTED 48dfe: 4875 2800 pea %a5@(00000000,%d2:l) <== NOT EXECUTED 48e02: 2051 moveal %a1@,%a0 <== NOT EXECUTED 48e04: 4e90 jsr %a0@ <== NOT EXECUTED 48e06: 4fef 0028 lea %sp@(40),%sp <== NOT EXECUTED 48e0a: 2600 movel %d0,%d3 <== NOT EXECUTED 48e0c: 602c bras 48e3a <== NOT EXECUTED flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 48e0e: 2f0a movel %a2,%sp@- 48e10: 4eb9 0004 8b64 jsr 48b64 48e16: 2600 movel %d0,%d3 /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 48e18: 2e84 movel %d4,%sp@ 48e1a: 2f0a movel %a2,%sp@- 48e1c: 4eb9 0004 8bd2 jsr 48bd2 48e22: 508f addql #8,%sp 48e24: 4a80 tstl %d0 48e26: 6612 bnes 48e3a <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EACCES ); 48e28: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48e2e: 740d moveq #13,%d2 <== NOT EXECUTED 48e30: 2040 moveal %d0,%a0 <== NOT EXECUTED 48e32: 2082 movel %d2,%a0@ <== NOT EXECUTED 48e34: 6000 fe84 braw 48cba <== NOT EXECUTED 48e38: 2600 movel %d0,%d3 <== NOT EXECUTED return result; } 48e3a: 2003 movel %d3,%d0 48e3c: 4cee 3cfc ff9c moveml %fp@(-100),%d2-%d7/%a2-%a5 48e42: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048f5a : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48f5a: 4e56 ff9c linkw %fp,#-100 48f5e: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 48f62: 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 ); 48f66: 2c0e movel %fp,%d6 const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { int i = 0; 48f68: 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 ); 48f6a: 0686 ffff ffc7 addil #-57,%d6 if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 48f70: 2a3c 0004 8ec2 movel #298690,%d5 int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 48f76: 286e 0008 moveal %fp@(8),%a4 /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 48f7a: 2652 moveal %a2@,%a3 /* * Get the path length. */ pathlen = strlen( path ); 48f7c: 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 */ ) { 48f7e: 2a6e 0010 moveal %fp@(16),%a5 node = pathloc->node_access; /* * Get the path length. */ pathlen = strlen( path ); 48f82: 4eb9 0004 cfa8 jsr 4cfa8 48f88: 588f addql #4,%sp 48f8a: 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 ); 48f8c: 486e fffc pea %fp@(-4) 48f90: 2f06 movel %d6,%sp@- 48f92: 2f04 movel %d4,%sp@- 48f94: 4874 2800 pea %a4@(00000000,%d2:l) 48f98: 4eb9 0004 9274 jsr 49274 pathlen -= len; 48f9e: 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 ); 48fa2: 2600 movel %d0,%d3 pathlen -= len; 48fa4: 9887 subl %d7,%d4 i += len; if ( !pathloc->node_access ) 48fa6: 4fef 0010 lea %sp@(16),%sp 48faa: 4a92 tstl %a2@ 48fac: 6700 0154 beqw 49102 /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 48fb0: 4a80 tstl %d0 48fb2: 671c beqs 48fd0 if ( node->type == IMFS_DIRECTORY ) 48fb4: 7001 moveq #1,%d0 48fb6: b0ab 0048 cmpl %a3@(72),%d0 48fba: 6614 bnes 48fd0 <== NEVER TAKEN if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 48fbc: 4878 0001 pea 1 48fc0: 2f0a movel %a2,%sp@- 48fc2: 4eb9 0004 8bd2 jsr 48bd2 48fc8: 508f addql #8,%sp 48fca: 4a80 tstl %d0 48fcc: 6700 017c beqw 4914a rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 48fd0: 2652 moveal %a2@,%a3 while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); pathlen -= len; i += len; 48fd2: 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 ) { 48fd4: 7002 moveq #2,%d0 48fd6: b083 cmpl %d3,%d0 48fd8: 671a beqs 48ff4 <== NEVER TAKEN 48fda: 6508 bcss 48fe4 48fdc: 4a83 tstl %d3 48fde: 6700 00e4 beqw 490c4 48fe2: 60a8 bras 48f8c 48fe4: 7203 moveq #3,%d1 48fe6: b283 cmpl %d3,%d1 48fe8: 6740 beqs 4902a <== ALWAYS TAKEN 48fea: 7004 moveq #4,%d0 <== NOT EXECUTED 48fec: b083 cmpl %d3,%d0 <== NOT EXECUTED 48fee: 669c bnes 48f8c <== NOT EXECUTED 48ff0: 6000 00e2 braw 490d4 <== 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 ) 48ff4: 2079 0005 b000 moveal 5b000 ,%a0 <== NOT EXECUTED 48ffa: b7e8 0018 cmpal %a0@(24),%a3 <== NOT EXECUTED 48ffe: 678c beqs 48f8c <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 49000: 206a 0010 moveal %a2@(16),%a0 <== NOT EXECUTED 49004: b7e8 001c cmpal %a0@(28),%a3 <== NOT EXECUTED 49008: 6612 bnes 4901c <== NOT EXECUTED if ( pathloc->node_access == rtems_filesystem_root.node_access ) { break; } else { newloc = pathloc->mt_entry->mt_point_node; 4900a: 4878 0014 pea 14 <== NOT EXECUTED 4900e: 260e movel %fp,%d3 <== NOT EXECUTED 49010: 4868 0008 pea %a0@(8) <== NOT EXECUTED 49014: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 4901a: 605c bras 49078 <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); } } else { if ( !node->Parent ) 4901c: 266b 0008 moveal %a3@(8),%a3 <== NOT EXECUTED 49020: 4a8b tstl %a3 <== NOT EXECUTED 49022: 6600 009a bnew 490be <== NOT EXECUTED 49026: 6000 00da braw 49102 <== NOT EXECUTED pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 4902a: 202b 0048 movel %a3@(72),%d0 4902e: 7203 moveq #3,%d1 49030: b280 cmpl %d0,%d1 49032: 6706 beqs 4903a <== NEVER TAKEN result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 49034: 7204 moveq #4,%d1 49036: b280 cmpl %d0,%d1 49038: 6614 bnes 4904e <== ALWAYS TAKEN result = IMFS_evaluate_link( pathloc, 0 ); 4903a: 42a7 clrl %sp@- <== NOT EXECUTED 4903c: 2045 moveal %d5,%a0 <== NOT EXECUTED 4903e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49040: 4e90 jsr %a0@ <== NOT EXECUTED if ( result == -1 ) 49042: 508f addql #8,%sp <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 49044: 2600 movel %d0,%d3 <== NOT EXECUTED if ( result == -1 ) 49046: 70ff moveq #-1,%d0 <== NOT EXECUTED 49048: b083 cmpl %d3,%d0 <== NOT EXECUTED 4904a: 6700 010c beqw 49158 <== NOT EXECUTED return -1; } node = pathloc->node_access; 4904e: 2052 moveal %a2@,%a0 if ( !node ) 49050: 4a88 tstl %a0 49052: 6700 00d6 beqw 4912a /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 49056: 7001 moveq #1,%d0 49058: b0a8 0048 cmpl %a0@(72),%d0 4905c: 6600 00cc bnew 4912a /* * 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 ) { 49060: 2268 0058 moveal %a0@(88),%a1 49064: 4a89 tstl %a1 49066: 6744 beqs 490ac <== ALWAYS TAKEN newloc = node->info.directory.mt_fs->mt_fs_root; 49068: 4878 0014 pea 14 <== NOT EXECUTED 4906c: 260e movel %fp,%d3 <== NOT EXECUTED 4906e: 0683 ffff ffe8 addil #-24,%d3 <== NOT EXECUTED 49074: 4869 001c pea %a1@(28) <== NOT EXECUTED 49078: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4907a: 47f9 0004 c3fc lea 4c3fc ,%a3 <== NOT EXECUTED 49080: 4e93 jsr %a3@ <== NOT EXECUTED *pathloc = newloc; 49082: 4878 0014 pea 14 <== NOT EXECUTED 49086: 2f03 movel %d3,%sp@- <== NOT EXECUTED 49088: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4908a: 4e93 jsr %a3@ <== NOT EXECUTED return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4908c: 206a 000c moveal %a2@(12),%a0 <== NOT EXECUTED 49090: 94ae fffc subl %fp@(-4),%d2 <== NOT EXECUTED 49094: 2f0d movel %a5,%sp@- <== NOT EXECUTED 49096: 2f0a movel %a2,%sp@- <== NOT EXECUTED 49098: 4874 2800 pea %a4@(00000000,%d2:l) <== NOT EXECUTED 4909c: 2068 0004 moveal %a0@(4),%a0 <== NOT EXECUTED 490a0: 4e90 jsr %a0@ <== NOT EXECUTED 490a2: 4fef 0024 lea %sp@(36),%sp <== NOT EXECUTED 490a6: 2600 movel %d0,%d3 <== NOT EXECUTED 490a8: 6000 00ae braw 49158 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 490ac: 2f06 movel %d6,%sp@- 490ae: 2f08 movel %a0,%sp@- 490b0: 4eb9 0004 9208 jsr 49208 /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 490b6: 508f addql #8,%sp /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 490b8: 2640 moveal %d0,%a3 /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 490ba: 4a80 tstl %d0 490bc: 6724 beqs 490e2 done = true; else pathloc->node_access = node; 490be: 248b movel %a3,%a2@ 490c0: 6000 feca braw 48f8c break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 490c4: 4eb9 0004 bb50 jsr 4bb50 <__errno> 490ca: 7c11 moveq #17,%d6 490cc: 2040 moveal %d0,%a0 490ce: 2086 movel %d6,%a0@ 490d0: 6000 0084 braw 49156 break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 490d4: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 490da: 7a5b moveq #91,%d5 <== NOT EXECUTED 490dc: 2040 moveal %d0,%a0 <== NOT EXECUTED 490de: 2085 movel %d5,%a0@ <== NOT EXECUTED 490e0: 6074 bras 49156 <== NOT EXECUTED case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 490e2: 2002 movel %d2,%d0 490e4: 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 ] ) ) 490e8: 47f9 0004 34c8 lea 434c8 ,%a3 case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 490ee: 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( 490f0: d9c2 addal %d2,%a4 case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 490f2: 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++) { 490f4: 601a bras 49110 if ( !IMFS_is_separator( path[ i ] ) ) 490f6: 49c0 extbl %d0 <== NOT EXECUTED 490f8: 2f00 movel %d0,%sp@- <== NOT EXECUTED 490fa: 4e93 jsr %a3@ <== NOT EXECUTED 490fc: 588f addql #4,%sp <== NOT EXECUTED 490fe: 4a80 tstl %d0 <== NOT EXECUTED 49100: 660e bnes 49110 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOENT ); 49102: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 49108: 7802 moveq #2,%d4 <== NOT EXECUTED 4910a: 2040 moveal %d0,%a0 <== NOT EXECUTED 4910c: 2084 movel %d4,%a0@ <== NOT EXECUTED 4910e: 6046 bras 49156 <== 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++) { 49110: 101c moveb %a4@+,%d0 49112: 66e2 bnes 490f6 <== NEVER TAKEN /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 49114: 2f0a movel %a2,%sp@- 49116: 4eb9 0004 8b64 jsr 48b64 /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 4911c: 2052 moveal %a2@,%a0 /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 4911e: 2600 movel %d0,%d3 /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 49120: 588f addql #4,%sp 49122: 7001 moveq #1,%d0 49124: b0a8 0048 cmpl %a0@(72),%d0 49128: 670e beqs 49138 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( ENOTDIR ); 4912a: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 49130: 7614 moveq #20,%d3 <== NOT EXECUTED 49132: 2040 moveal %d0,%a0 <== NOT EXECUTED 49134: 2083 movel %d3,%a0@ <== NOT EXECUTED 49136: 601e bras 49156 <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) 49138: 4878 0003 pea 3 4913c: 2f0a movel %a2,%sp@- 4913e: 4eb9 0004 8bd2 jsr 48bd2 49144: 508f addql #8,%sp 49146: 4a80 tstl %d0 49148: 660e bnes 49158 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EACCES ); 4914a: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 49150: 740d moveq #13,%d2 <== NOT EXECUTED 49152: 2040 moveal %d0,%a0 <== NOT EXECUTED 49154: 2082 movel %d2,%a0@ <== NOT EXECUTED 49156: 76ff moveq #-1,%d3 return result; } 49158: 2003 movel %d3,%d0 4915a: 4cee 3cfc ff9c moveml %fp@(-100),%d2-%d7/%a2-%a5 49160: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048c0a : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48c0a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 48c0e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48c10: 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; 48c14: 2052 moveal %a2@,%a0 <== NOT EXECUTED 48c16: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 48c1a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48c1c: 4eb9 0004 8b64 jsr 48b64 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 48c22: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 48c26: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48c28: 4eb9 0004 8bd2 jsr 48bd2 <== NOT EXECUTED 48c2e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 48c32: 4a80 tstl %d0 <== NOT EXECUTED 48c34: 6610 bnes 48c46 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 48c36: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48c3c: 720d moveq #13,%d1 <== NOT EXECUTED 48c3e: 2040 moveal %d0,%a0 <== NOT EXECUTED 48c40: 70ff moveq #-1,%d0 <== NOT EXECUTED 48c42: 2081 movel %d1,%a0@ <== NOT EXECUTED 48c44: 6002 bras 48c48 <== NOT EXECUTED return result; 48c46: 4280 clrl %d0 <== NOT EXECUTED } 48c48: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 48c4c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048ec2 : */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48ec2: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48ec6: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 48eca: 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 ); 48ece: 4bf9 0004 8e46 lea 48e46 ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 48ed4: 49f9 0004 8c0a lea 48c0a ,%a4 <== NOT EXECUTED */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48eda: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48ede: 2079 0005 b000 moveal 5b000 ,%a0 <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 48ee4: 7205 moveq #5,%d1 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48ee6: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED { IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 48eea: 2652 moveal %a2@,%a3 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 48eec: 5280 addql #1,%d0 <== NOT EXECUTED 48eee: 3140 0030 movew %d0,%a0@(48) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 48ef2: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 48ef8: b280 cmpl %d0,%d1 <== NOT EXECUTED 48efa: 6416 bccs 48f12 <== NOT EXECUTED rtems_filesystem_link_counts = 0; 48efc: 4240 clrw %d0 <== NOT EXECUTED 48efe: 3140 0030 movew %d0,%a0@(48) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 48f02: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48f08: 725c moveq #92,%d1 <== NOT EXECUTED 48f0a: 2040 moveal %d0,%a0 <== NOT EXECUTED 48f0c: 70ff moveq #-1,%d0 <== NOT EXECUTED 48f0e: 2081 movel %d1,%a0@ <== NOT EXECUTED 48f10: 603e bras 48f50 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 48f12: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48f16: 7203 moveq #3,%d1 <== NOT EXECUTED 48f18: b280 cmpl %d0,%d1 <== NOT EXECUTED 48f1a: 6608 bnes 48f24 <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); 48f1c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f1e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f20: 4e94 jsr %a4@ <== NOT EXECUTED 48f22: 600c bras 48f30 <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) 48f24: 7204 moveq #4,%d1 <== NOT EXECUTED 48f26: b280 cmpl %d0,%d1 <== NOT EXECUTED 48f28: 660c bnes 48f36 <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); 48f2a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48f2c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48f2e: 4e95 jsr %a5@ <== NOT EXECUTED 48f30: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 48f32: 4a80 tstl %d0 <== NOT EXECUTED 48f34: 660e bnes 48f44 <== 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 ) || 48f36: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 48f3a: 7201 moveq #1,%d1 <== NOT EXECUTED 48f3c: 5780 subql #3,%d0 <== NOT EXECUTED 48f3e: b280 cmpl %d0,%d1 <== NOT EXECUTED 48f40: 649c bccs 48ede <== NOT EXECUTED 48f42: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 48f44: 2079 0005 b000 moveal 5b000 ,%a0 <== NOT EXECUTED 48f4a: 4241 clrw %d1 <== NOT EXECUTED 48f4c: 3141 0030 movew %d1,%a0@(48) <== NOT EXECUTED return result; } 48f50: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 48f56: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048bd2 : uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) 48bd2: 72f8 moveq #-8,%d1 */ int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 48bd4: 4e56 0000 linkw %fp,#0 48bd8: 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 ) ) 48bdc: c280 andl %d0,%d1 48bde: 6710 beqs 48bf0 <== ALWAYS TAKEN rtems_set_errno_and_return_minus_one( EPERM ); 48be0: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48be6: 2040 moveal %d0,%a0 <== NOT EXECUTED 48be8: 7001 moveq #1,%d0 <== NOT EXECUTED 48bea: 2080 movel %d0,%a0@ <== NOT EXECUTED 48bec: 70ff moveq #-1,%d0 <== NOT EXECUTED 48bee: 6016 bras 48c06 <== 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 ) 48bf0: 206e 0008 moveal %fp@(8),%a0 */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; 48bf4: 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 ) 48bf6: 2050 moveal %a0@,%a0 48bf8: 2200 movel %d0,%d1 48bfa: 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 ); 48bfe: b081 cmpl %d1,%d0 48c00: 57c0 seq %d0 48c02: 49c0 extbl %d0 48c04: 4480 negl %d0 */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) return 1; return 0; } 48c06: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00048e46 : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48e46: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 48e4a: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 48e4e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 48e52: 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; 48e54: 24ab 0008 movel %a3@(8),%a2@ <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 48e58: 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( 48e5c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e5e: 486e fffc pea %fp@(-4) <== NOT EXECUTED 48e62: 2f2b 004c movel %a3@(76),%sp@- <== NOT EXECUTED 48e66: 4eb9 0004 9b58 jsr 49b58 <== NOT EXECUTED ); /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 48e6c: 242b 004c movel %a3@(76),%d2 <== NOT EXECUTED 48e70: d4ae fffc addl %fp@(-4),%d2 <== NOT EXECUTED 48e74: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e76: 4eb9 0004 cfa8 jsr 4cfa8 <== NOT EXECUTED 48e7c: 2e8a movel %a2,%sp@ <== NOT EXECUTED 48e7e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 48e80: 2f00 movel %d0,%sp@- <== NOT EXECUTED 48e82: 2f02 movel %d2,%sp@- <== NOT EXECUTED 48e84: 4eb9 0004 8c50 jsr 48c50 <== NOT EXECUTED 48e8a: 2400 movel %d0,%d2 <== NOT EXECUTED strlen( &jnode->info.sym_link.name[i] ), flags, node ); IMFS_Set_handlers( node ); 48e8c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e8e: 4eb9 0004 8b64 jsr 48b64 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 48e94: 4fef 001c lea %sp@(28),%sp <== NOT EXECUTED 48e98: 2e83 movel %d3,%sp@ <== NOT EXECUTED 48e9a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 48e9c: 4eb9 0004 8bd2 jsr 48bd2 <== NOT EXECUTED 48ea2: 508f addql #8,%sp <== NOT EXECUTED 48ea4: 4a80 tstl %d0 <== NOT EXECUTED 48ea6: 660e bnes 48eb6 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); 48ea8: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 48eae: 74ff moveq #-1,%d2 <== NOT EXECUTED 48eb0: 2040 moveal %d0,%a0 <== NOT EXECUTED 48eb2: 700d moveq #13,%d0 <== NOT EXECUTED 48eb4: 2080 movel %d0,%a0@ <== NOT EXECUTED return result; } 48eb6: 2002 movel %d2,%d0 <== NOT EXECUTED 48eb8: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 48ebe: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004b6b0 : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4b6b0: 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; 4b6b4: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4b6b8: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4b6ba: 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); 4b6bc: 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); 4b6c0: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b6c4: 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); 4b6ca: 0280 ffff f000 andil #-4096,%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4b6d0: 8280 orl %d0,%d1 <== NOT EXECUTED 4b6d2: 2541 002e movel %d1,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4b6d6: 42a7 clrl %sp@- <== NOT EXECUTED 4b6d8: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4b6dc: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4b6e2: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 4b6e8: 4280 clrl %d0 <== NOT EXECUTED 4b6ea: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4b6ee: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 0004b6f4 : int IMFS_fdatasync( rtems_libio_t *iop ) { return 0; } 4b6f4: 4280 clrl %d0 <== NOT EXECUTED #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 4b6f6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4b6fa: 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 b13e jsr 4b13e <== 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 b822 jsr 4b822 <== 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 d63c jsr 4d63c <__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 b882 jsr 4b882 <== 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 d63c jsr 4d63c <__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 b1c6 jsr 4b1c6 <== 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 d63c jsr 4d63c <__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 b550 jsr 4b550 <== 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 d63c jsr 4d63c <__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 b6aa jsr 4b6aa <== 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 d63c jsr 4d63c <__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 =============================================================================== 00049208 : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 49208: 4e56 fff0 linkw %fp,#-16 4920c: 48d7 1c04 moveml %d2/%a2-%a4,%sp@ /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49210: 4879 0005 a2e8 pea 5a2e8 49216: 49f9 0004 ca50 lea 4ca50 ,%a4 IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 4921c: 242e 000c movel %fp@(12),%d2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49220: 2f02 movel %d2,%sp@- IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 49222: 246e 0008 moveal %fp@(8),%a2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 49226: 4e94 jsr %a4@ 49228: 508f addql #8,%sp 4922a: 4a80 tstl %d0 4922c: 673a beqs 49268 <== NEVER TAKEN return directory; if ( !strcmp( name, dotdotname ) ) 4922e: 4879 0005 a2ea pea 5a2ea 49234: 2f02 movel %d2,%sp@- 49236: 4e94 jsr %a4@ 49238: 508f addql #8,%sp 4923a: 4a80 tstl %d0 4923c: 6606 bnes 49244 <== ALWAYS TAKEN return directory->Parent; 4923e: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED 49242: 6024 bras 49268 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 49244: 266a 004c moveal %a2@(76),%a3 RTEMS_INLINE_ROUTINE bool _Chain_Is_tail( Chain_Control *the_chain, const Chain_Node *the_node ) { return (the_node == _Chain_Tail(the_chain)); 49248: 45ea 0050 lea %a2@(80),%a2 if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); 4924c: 6010 bras 4925e !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 ) ) 4924e: 486b 000c pea %a3@(12) 49252: 2f02 movel %d2,%sp@- 49254: 4e94 jsr %a4@ 49256: 508f addql #8,%sp 49258: 4a80 tstl %d0 4925a: 670a beqs 49266 the_chain = &directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { 4925c: 2653 moveal %a3@,%a3 if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); 4925e: b5cb cmpal %a3,%a2 49260: 66ec bnes 4924e if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; 49262: 95ca subal %a2,%a2 49264: 6002 bras 49268 for ( the_node = rtems_chain_first( the_chain ); !rtems_chain_is_tail( the_chain, the_node ); the_node = the_node->next ) { the_jnode = (IMFS_jnode_t *) the_node; 49266: 244b moveal %a3,%a2 if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 49268: 200a movel %a2,%d0 4926a: 4cee 1c04 fff0 moveml %fp@(-16),%d2/%a2-%a4 49270: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00049164 : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 49164: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 49168: 48d7 1c0c moveml %d2-%d3/%a2-%a4,%sp@ <== NOT EXECUTED 4916c: 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; 49170: 240e movel %fp,%d2 <== NOT EXECUTED 49172: 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 ); 49178: 49f9 0004 8b64 lea 48b64 ,%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; 4917e: 246b 001c moveal %a3@(28),%a2 <== NOT EXECUTED loc = temp_mt_entry->mt_fs_root; 49182: 4878 0014 pea 14 <== NOT EXECUTED 49186: 486b 001c pea %a3@(28) <== NOT EXECUTED 4918a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4918c: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 49192: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 49196: 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 ); 4919a: 47f9 0004 2138 lea 42138 ,%a3 <== NOT EXECUTED */ temp_mt_entry->mt_fs_root.node_access = NULL; do { next = jnode->Parent; 491a0: 262a 0008 movel %a2@(8),%d3 <== NOT EXECUTED loc.node_access = (void *)jnode; 491a4: 2d4a ffec movel %a2,%fp@(-20) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 491a8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 491aa: 4e94 jsr %a4@ <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { 491ac: 588f addql #4,%sp <== NOT EXECUTED 491ae: 7001 moveq #1,%d0 <== NOT EXECUTED 491b0: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 491b4: 660e bnes 491c4 <== NOT EXECUTED RTEMS_INLINE_ROUTINE bool _Chain_Is_empty( const Chain_Control *the_chain ) { return _Chain_Immutable_first( the_chain ) == _Chain_Immutable_tail( the_chain ); 491b6: 200a movel %a2,%d0 <== NOT EXECUTED 491b8: 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 ) ) { 491be: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 491c2: 660e bnes 491d2 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); 491c4: 2f02 movel %d2,%sp@- <== NOT EXECUTED 491c6: 42a7 clrl %sp@- <== NOT EXECUTED 491c8: 4e93 jsr %a3@ <== NOT EXECUTED if (result != 0) 491ca: 508f addql #8,%sp <== NOT EXECUTED 491cc: 4a80 tstl %d0 <== NOT EXECUTED 491ce: 6626 bnes 491f6 <== NOT EXECUTED return -1; jnode = next; 491d0: 2443 moveal %d3,%a2 <== NOT EXECUTED } if ( jnode != NULL ) { 491d2: 4a8a tstl %a2 <== NOT EXECUTED 491d4: 6724 beqs 491fa <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 491d6: 7001 moveq #1,%d0 <== NOT EXECUTED 491d8: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 491dc: 66c2 bnes 491a0 <== NOT EXECUTED 491de: 220a movel %a2,%d1 <== NOT EXECUTED 491e0: 0681 0000 0050 addil #80,%d1 <== NOT EXECUTED } } } while (jnode != NULL); return 0; } 491e6: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED return -1; jnode = next; } if ( jnode != NULL ) { if ( jnode->type == IMFS_DIRECTORY ) { if ( jnode_has_children( jnode ) ) 491ea: b280 cmpl %d0,%d1 <== NOT EXECUTED 491ec: 67b2 beqs 491a0 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 491ee: 2440 moveal %d0,%a2 <== NOT EXECUTED } } } while (jnode != NULL); 491f0: 4a80 tstl %d0 <== NOT EXECUTED 491f2: 66ac bnes 491a0 <== NOT EXECUTED 491f4: 6004 bras 491fa <== NOT EXECUTED return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; 491f6: 70ff moveq #-1,%d0 <== NOT EXECUTED 491f8: 6002 bras 491fc <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); } } } while (jnode != NULL); return 0; 491fa: 4280 clrl %d0 <== NOT EXECUTED } 491fc: 4cee 1c0c ffd8 moveml %fp@(-40),%d2-%d3/%a2-%a4 <== NOT EXECUTED 49202: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00049274 : const char *path, int pathlen, char *token, int *token_len ) { 49274: 4e56 ffe4 linkw %fp,#-28 49278: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ 4927c: 246e 0010 moveal %fp@(16),%a2 register int i = 0; 49280: 4283 clrl %d3 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 49282: 284a moveal %a2,%a4 while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 49284: 4bf9 0004 34c8 lea 434c8 ,%a5 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 4928a: 266e 0008 moveal %fp@(8),%a3 const char *path, int pathlen, char *token, int *token_len ) { 4928e: 282e 000c movel %fp@(12),%d4 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 49292: 141b moveb %a3@+,%d2 while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 49294: 600c bras 492a2 token[i] = c; if ( i == IMFS_NAME_MAX ) 49296: 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; 49298: 18c2 moveb %d2,%a4@+ if ( i == IMFS_NAME_MAX ) 4929a: b083 cmpl %d3,%d0 4929c: 6772 beqs 49310 <== NEVER TAKEN return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 4929e: 5283 addql #1,%d3 492a0: 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) ) { 492a2: 1002 moveb %d2,%d0 492a4: 49c0 extbl %d0 492a6: 2f00 movel %d0,%sp@- 492a8: 4e95 jsr %a5@ 492aa: 588f addql #4,%sp 492ac: 4a80 tstl %d0 492ae: 6604 bnes 492b4 492b0: b883 cmpl %d3,%d4 492b2: 6ee2 bgts 49296 <== ALWAYS TAKEN /* * Copy a seperator into token. */ if ( i == 0 ) { 492b4: 4a83 tstl %d3 492b6: 660a bnes 492c2 token[i] = c; 492b8: 1482 moveb %d2,%a2@ if ( (token[i] != '\0') && pathlen ) { 492ba: 6714 beqs 492d0 492bc: 4a84 tstl %d4 492be: 6614 bnes 492d4 <== ALWAYS TAKEN 492c0: 600e bras 492d0 <== NOT EXECUTED i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 492c2: 4a32 38ff tstb %a2@(ffffffff,%d3:l) 492c6: 6712 beqs 492da <== NEVER TAKEN token[i] = '\0'; 492c8: 4200 clrb %d0 492ca: 1580 3800 moveb %d0,%a2@(00000000,%d3:l) 492ce: 600a bras 492da if ( (token[i] != '\0') && pathlen ) { i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; 492d0: 4282 clrl %d2 492d2: 6008 bras 492dc if ( i == 0 ) { token[i] = c; if ( (token[i] != '\0') && pathlen ) { i++; type = IMFS_CURRENT_DIR; 492d4: 7401 moveq #1,%d2 if ( i == 0 ) { token[i] = c; if ( (token[i] != '\0') && pathlen ) { i++; 492d6: 7601 moveq #1,%d3 492d8: 6002 bras 492dc char *token, int *token_len ) { register int i = 0; IMFS_token_types type = IMFS_NAME; 492da: 7403 moveq #3,%d2 /* * Set token_len to the number of characters copied. */ *token_len = i; 492dc: 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 ) { 492e0: 7003 moveq #3,%d0 /* * Set token_len to the number of characters copied. */ *token_len = i; 492e2: 2083 movel %d3,%a0@ /* * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { 492e4: b082 cmpl %d2,%d0 492e6: 6632 bnes 4931a if ( strcmp( token, "..") == 0 ) 492e8: 4879 0005 a2ed pea 5a2ed 492ee: 47f9 0004 ca50 lea 4ca50 ,%a3 492f4: 2f0a movel %a2,%sp@- 492f6: 4e93 jsr %a3@ 492f8: 508f addql #8,%sp 492fa: 4a80 tstl %d0 492fc: 6716 beqs 49314 <== NEVER TAKEN type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 492fe: 4879 0005 a2ee pea 5a2ee 49304: 2f0a movel %a2,%sp@- 49306: 4e93 jsr %a3@ 49308: 508f addql #8,%sp 4930a: 4a80 tstl %d0 4930c: 670a beqs 49318 <== NEVER TAKEN 4930e: 600a bras 4931a while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { token[i] = c; if ( i == IMFS_NAME_MAX ) return IMFS_INVALID_TOKEN; 49310: 7404 moveq #4,%d2 <== NOT EXECUTED 49312: 6006 bras 4931a <== NOT EXECUTED * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; 49314: 7402 moveq #2,%d2 <== NOT EXECUTED 49316: 6002 bras 4931a <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; 49318: 7401 moveq #1,%d2 <== NOT EXECUTED } return type; } 4931a: 2002 movel %d2,%d0 4931c: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 49322: 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 ade8 movel 5ade8 ,%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 bd68 movel %d0,5bd68 /* * 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 8b28 jsr 48b28 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 a2b8 pea 5a2b8 41dd6: 486a 0038 pea %a2@(56) 41dda: 4eb9 0004 c3fc jsr 4c3fc /* * 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 bb50 jsr 4bb50 <__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 bd6c movel 5bd6c ,%d0 41e1c: 2080 movel %d0,%a0@ 41e1e: 5280 addql #1,%d0 41e20: 23c0 0005 bd6c movel %d0,5bd6c 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 bb50 jsr 4bb50 <__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 cfa8 jsr 4cfa8 <== 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 9274 jsr 49274 <== 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 8a14 jsr 48a14 <== 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 bb50 jsr 4bb50 <__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 =============================================================================== 0004abf8 : */ MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 4abf8: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4abfc: 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 ); 4abfe: 4878 0001 pea 1 <== NOT EXECUTED 4ac02: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ac06: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ac0a: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED if ( *block_entry_ptr ) 4ac10: 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 ); 4ac14: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 4ac16: 4a92 tstl %a2@ <== NOT EXECUTED 4ac18: 660c bnes 4ac26 <== NOT EXECUTED return 0; /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); 4ac1a: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !memory ) 4ac20: 4a80 tstl %d0 <== NOT EXECUTED 4ac22: 6706 beqs 4ac2a <== NOT EXECUTED return 1; *block_entry_ptr = memory; 4ac24: 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; 4ac26: 4280 clrl %d0 <== NOT EXECUTED 4ac28: 6002 bras 4ac2c <== NOT EXECUTED /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); if ( !memory ) return 1; 4ac2a: 7001 moveq #1,%d0 <== NOT EXECUTED *block_entry_ptr = memory; return 0; } 4ac2c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ac30: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ad9c : IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4ad9c: 4280 clrl %d0 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4ad9e: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4ada2: 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 ) 4ada6: 2c39 0005 bd68 movel 5bd68 ,%d6<== NOT EXECUTED 4adac: 2a06 movel %d6,%d5 <== NOT EXECUTED 4adae: e48d lsrl #2,%d5 <== NOT EXECUTED 4adb0: 2805 movel %d5,%d4 <== NOT EXECUTED 4adb2: 5284 addql #1,%d4 <== NOT EXECUTED 4adb4: 4c05 4800 mulsl %d5,%d4 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4adb8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4adbc: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4adc0: 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 ) 4adc4: 5284 addql #1,%d4 <== NOT EXECUTED 4adc6: 4c05 4800 mulsl %d5,%d4 <== NOT EXECUTED 4adca: 5384 subql #1,%d4 <== NOT EXECUTED 4adcc: 4c06 4800 mulsl %d6,%d4 <== NOT EXECUTED 4add0: 2204 movel %d4,%d1 <== NOT EXECUTED 4add2: 2802 movel %d2,%d4 <== NOT EXECUTED 4add4: 2a03 movel %d3,%d5 <== NOT EXECUTED 4add6: 9a81 subl %d1,%d5 <== NOT EXECUTED 4add8: 9980 subxl %d0,%d4 <== NOT EXECUTED 4adda: 6d0e blts 4adea <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); 4addc: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 4ade2: 7216 moveq #22,%d1 <== NOT EXECUTED 4ade4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ade6: 2081 movel %d1,%a0@ <== NOT EXECUTED 4ade8: 6078 bras 4ae62 <== NOT EXECUTED /* * Verify new file size is actually larger than current size */ if ( new_length <= the_jnode->info.file.size ) 4adea: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4adee: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4adf2: 2002 movel %d2,%d0 <== NOT EXECUTED 4adf4: 2203 movel %d3,%d1 <== NOT EXECUTED 4adf6: 9285 subl %d5,%d1 <== NOT EXECUTED 4adf8: 9184 subxl %d4,%d0 <== NOT EXECUTED 4adfa: 6f78 bles 4ae74 <== NOT EXECUTED return 0; /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 4adfc: 47f9 0005 79e8 lea 579e8 <__divdi3>,%a3 <== NOT EXECUTED 4ae02: 2e06 movel %d6,%d7 <== NOT EXECUTED 4ae04: 5bc6 smi %d6 <== NOT EXECUTED 4ae06: 49c6 extbl %d6 <== NOT EXECUTED 4ae08: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4ae0a: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4ae0c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4ae0e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ae10: 4e93 jsr %a3@ <== NOT EXECUTED 4ae12: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4ae16: 2841 moveal %d1,%a4 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 4ae18: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4ae1a: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4ae1c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4ae1e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ae20: 4e93 jsr %a3@ <== NOT EXECUTED 4ae22: 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 ) ) { 4ae26: 47f9 0004 abf8 lea 4abf8 ,%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; 4ae2c: 2c01 movel %d1,%d6 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 4ae2e: 2801 movel %d1,%d4 <== NOT EXECUTED 4ae30: 6036 bras 4ae68 <== NOT EXECUTED if ( IMFS_memfile_addblock( the_jnode, block ) ) { 4ae32: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ae34: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae36: 4e93 jsr %a3@ <== NOT EXECUTED 4ae38: 508f addql #8,%sp <== NOT EXECUTED 4ae3a: 4a80 tstl %d0 <== NOT EXECUTED 4ae3c: 6728 beqs 4ae66 <== NOT EXECUTED 4ae3e: 600c bras 4ae4c <== NOT EXECUTED for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); 4ae40: 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-- ) { 4ae42: 5384 subql #1,%d4 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4ae44: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ae46: 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-- ) { 4ae48: 508f addql #8,%sp <== NOT EXECUTED 4ae4a: 6006 bras 4ae52 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4ae4c: 47f9 0004 ad74 lea 4ad74 ,%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-- ) { 4ae52: bc84 cmpl %d4,%d6 <== NOT EXECUTED 4ae54: 63ea blss 4ae40 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 4ae56: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 4ae5c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ae5e: 701c moveq #28,%d0 <== NOT EXECUTED 4ae60: 2080 movel %d0,%a0@ <== NOT EXECUTED 4ae62: 70ff moveq #-1,%d0 <== NOT EXECUTED 4ae64: 6010 bras 4ae76 <== 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++ ) { 4ae66: 5284 addql #1,%d4 <== NOT EXECUTED 4ae68: b9c4 cmpal %d4,%a4 <== NOT EXECUTED 4ae6a: 64c6 bccs 4ae32 <== NOT EXECUTED } /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 4ae6c: 2542 004c movel %d2,%a2@(76) <== NOT EXECUTED 4ae70: 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; 4ae74: 4280 clrl %d0 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4ae76: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4ae7c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a8f0 : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4a8f0: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED my_block = block; /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 4a8f4: 2039 0005 bd68 movel 5bd68 ,%d0<== NOT EXECUTED 4a8fa: e488 lsrl #2,%d0 <== NOT EXECUTED 4a8fc: 2200 movel %d0,%d1 <== NOT EXECUTED 4a8fe: 5381 subql #1,%d1 <== NOT EXECUTED #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4a900: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4a904: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4a908: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4a90c: 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 ) { 4a910: b282 cmpl %d2,%d1 <== NOT EXECUTED 4a912: 6536 bcss 4a94a <== NOT EXECUTED p = info->indirect; 4a914: 226a 0054 moveal %a2@(84),%a1 <== NOT EXECUTED if ( malloc_it ) { 4a918: 4a88 tstl %a0 <== NOT EXECUTED 4a91a: 6720 beqs 4a93c <== NOT EXECUTED if ( !p ) { 4a91c: 4a89 tstl %a1 <== NOT EXECUTED 4a91e: 6610 bnes 4a930 <== NOT EXECUTED p = memfile_alloc_block(); 4a920: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !p ) 4a926: 4a80 tstl %d0 <== NOT EXECUTED 4a928: 6700 00f8 beqw 4aa22 <== NOT EXECUTED return 0; info->indirect = p; 4a92c: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } return &info->indirect[ my_block ]; 4a930: 206a 0054 moveal %a2@(84),%a0 <== NOT EXECUTED 4a934: e58a lsll #2,%d2 <== NOT EXECUTED 4a936: d1c2 addal %d2,%a0 <== NOT EXECUTED 4a938: 6000 00ea braw 4aa24 <== NOT EXECUTED } if ( !p ) 4a93c: 4a89 tstl %a1 <== NOT EXECUTED 4a93e: 6700 00e2 beqw 4aa22 <== NOT EXECUTED return 0; return &info->indirect[ my_block ]; 4a942: 41f1 2c00 lea %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 4a946: 6000 00dc braw 4aa24 <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 4a94a: 2200 movel %d0,%d1 <== NOT EXECUTED 4a94c: 5281 addql #1,%d1 <== NOT EXECUTED 4a94e: 4c00 1800 mulsl %d0,%d1 <== NOT EXECUTED 4a952: 2241 moveal %d1,%a1 <== NOT EXECUTED 4a954: 5389 subql #1,%a1 <== NOT EXECUTED 4a956: b3c2 cmpal %d2,%a1 <== NOT EXECUTED 4a958: 653e bcss 4a998 <== NOT EXECUTED my_block -= FIRST_DOUBLY_INDIRECT; 4a95a: 9480 subl %d0,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4a95c: 4c40 2003 remul %d0,%d3,%d2 <== NOT EXECUTED 4a960: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; 4a964: 202a 0058 movel %a2@(88),%d0 <== NOT EXECUTED if ( malloc_it ) { 4a968: 4a88 tstl %a0 <== NOT EXECUTED 4a96a: 671c beqs 4a988 <== NOT EXECUTED if ( !p ) { 4a96c: 4a80 tstl %d0 <== NOT EXECUTED 4a96e: 6610 bnes 4a980 <== NOT EXECUTED p = memfile_alloc_block(); 4a970: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !p ) 4a976: 4a80 tstl %d0 <== NOT EXECUTED 4a978: 6700 00a8 beqw 4aa22 <== NOT EXECUTED return 0; info->doubly_indirect = p; 4a97c: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 4a980: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a982: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4a986: 6066 bras 4a9ee <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 4a988: 4a80 tstl %d0 <== NOT EXECUTED 4a98a: 6700 0096 beqw 4aa22 <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 4a98e: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a990: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED 4a994: 6000 0082 braw 4aa18 <== NOT EXECUTED } /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 4a998: 2601 movel %d1,%d3 <== NOT EXECUTED 4a99a: 5283 addql #1,%d3 <== NOT EXECUTED 4a99c: 4c00 3800 mulsl %d0,%d3 <== NOT EXECUTED 4a9a0: 5383 subql #1,%d3 <== NOT EXECUTED 4a9a2: b682 cmpl %d2,%d3 <== NOT EXECUTED 4a9a4: 657c bcss 4aa22 <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 4a9a6: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4a9a8: 4c40 2003 remul %d0,%d3,%d2 <== NOT EXECUTED 4a9ac: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS; 4a9b0: 4c40 2004 remul %d0,%d4,%d2 <== NOT EXECUTED 4a9b4: 4c40 2002 remul %d0,%d2,%d2 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; 4a9b8: 202a 005c movel %a2@(92),%d0 <== NOT EXECUTED if ( malloc_it ) { 4a9bc: 4a88 tstl %a0 <== NOT EXECUTED 4a9be: 6746 beqs 4aa06 <== NOT EXECUTED if ( !p ) { 4a9c0: 4a80 tstl %d0 <== NOT EXECUTED 4a9c2: 660e bnes 4a9d2 <== NOT EXECUTED p = memfile_alloc_block(); 4a9c4: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !p ) 4a9ca: 4a80 tstl %d0 <== NOT EXECUTED 4a9cc: 6754 beqs 4aa22 <== NOT EXECUTED return 0; info->triply_indirect = p; 4a9ce: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 4a9d2: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a9d4: 45f0 2c00 lea %a0@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4a9d8: 2012 movel %a2@,%d0 <== NOT EXECUTED if ( !p1 ) { 4a9da: 660c bnes 4a9e8 <== NOT EXECUTED p1 = memfile_alloc_block(); 4a9dc: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !p1 ) 4a9e2: 4a80 tstl %d0 <== NOT EXECUTED 4a9e4: 673c beqs 4aa22 <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 4a9e6: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 4a9e8: 2240 moveal %d0,%a1 <== NOT EXECUTED 4a9ea: 45f1 4c00 lea %a1@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 4a9ee: 2012 movel %a2@,%d0 <== NOT EXECUTED if ( !p2 ) { 4a9f0: 660c bnes 4a9fe <== NOT EXECUTED p2 = memfile_alloc_block(); 4a9f2: 4eb9 0004 a8cc jsr 4a8cc <== NOT EXECUTED if ( !p2 ) 4a9f8: 4a80 tstl %d0 <== NOT EXECUTED 4a9fa: 6726 beqs 4aa22 <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 4a9fc: 2480 movel %d0,%a2@ <== NOT EXECUTED } return (block_p *)&p2[ singly ]; 4a9fe: 2240 moveal %d0,%a1 <== NOT EXECUTED 4aa00: 41f1 3c00 lea %a1@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4aa04: 601e bras 4aa24 <== NOT EXECUTED } if ( !p ) 4aa06: 4a80 tstl %d0 <== NOT EXECUTED 4aa08: 6718 beqs 4aa22 <== NOT EXECUTED return 0; p1 = (block_p *) p[ triply ]; 4aa0a: 2240 moveal %d0,%a1 <== NOT EXECUTED 4aa0c: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 4aa10: 4a88 tstl %a0 <== NOT EXECUTED 4aa12: 670e beqs 4aa22 <== NOT EXECUTED return 0; p2 = (block_p *)p1[ doubly ]; 4aa14: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED if ( !p2 ) 4aa18: 4a88 tstl %a0 <== NOT EXECUTED 4aa1a: 6706 beqs 4aa22 <== NOT EXECUTED return 0; return (block_p *)&p2[ singly ]; 4aa1c: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4aa20: 6002 bras 4aa24 <== NOT EXECUTED if ( !p1 ) return 0; p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; 4aa22: 91c8 subal %a0,%a0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 4aa24: 2008 movel %a0,%d0 <== NOT EXECUTED 4aa26: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4aa2c: 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 1898 movel 61898 ,%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 ... =============================================================================== 0004aa30 : * 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) { 4aa30: 7006 moveq #6,%d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 4aa32: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 4aa36: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4aa3a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4aa3e: 2e2e 0014 movel %fp@(20),%d7 <== NOT EXECUTED 4aa42: 2c2e 0018 movel %fp@(24),%d6 <== NOT EXECUTED 4aa46: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4aa4a: 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) { 4aa4e: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4aa52: 6656 bnes 4aaaa <== NOT EXECUTED unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 4aa54: 2246 moveal %d6,%a1 <== NOT EXECUTED 4aa56: 91c8 subal %a0,%a0 <== NOT EXECUTED 4aa58: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4aa5c: 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; 4aa60: 266a 0054 moveal %a2@(84),%a3 <== NOT EXECUTED if (my_length > (the_jnode->info.linearfile.size - start)) 4aa64: 2d44 fff0 movel %d4,%fp@(-16) <== NOT EXECUTED 4aa68: 2d45 fff4 movel %d5,%fp@(-12) <== NOT EXECUTED 4aa6c: 9a83 subl %d3,%d5 <== NOT EXECUTED 4aa6e: 9982 subxl %d2,%d4 <== NOT EXECUTED 4aa70: 2008 movel %a0,%d0 <== NOT EXECUTED 4aa72: 2209 movel %a1,%d1 <== NOT EXECUTED 4aa74: 9285 subl %d5,%d1 <== NOT EXECUTED 4aa76: 9184 subxl %d4,%d0 <== NOT EXECUTED 4aa78: 6f06 bles 4aa80 <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; 4aa7a: 2c2e fff4 movel %fp@(-12),%d6 <== NOT EXECUTED 4aa7e: 9c83 subl %d3,%d6 <== NOT EXECUTED memcpy(dest, &file_ptr[start], my_length); 4aa80: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4aa82: 4873 3800 pea %a3@(00000000,%d3:l) <== NOT EXECUTED IMFS_update_atime( the_jnode ); return my_length; 4aa86: 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); 4aa88: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4aa8a: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED IMFS_update_atime( the_jnode ); 4aa90: 42a7 clrl %sp@- <== NOT EXECUTED 4aa92: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4aa96: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4aa9c: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 4aaa2: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED 4aaa6: 6000 011e braw 4abc6 <== 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; 4aaaa: 2043 moveal %d3,%a0 <== NOT EXECUTED 4aaac: 43f0 6800 lea %a0@(00000000,%d6:l),%a1 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) 4aab0: 97cb subal %a3,%a3 <== NOT EXECUTED 4aab2: 2849 moveal %a1,%a4 <== NOT EXECUTED 4aab4: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 4aab8: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED 4aabc: 280b movel %a3,%d4 <== NOT EXECUTED 4aabe: 2a0c movel %a4,%d5 <== NOT EXECUTED 4aac0: 9a81 subl %d1,%d5 <== NOT EXECUTED 4aac2: 9980 subxl %d0,%d4 <== NOT EXECUTED 4aac4: 6f04 bles 4aaca <== NOT EXECUTED my_length = the_jnode->info.file.size - start; 4aac6: 2c01 movel %d1,%d6 <== NOT EXECUTED 4aac8: 9c83 subl %d3,%d6 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4aaca: 2879 0005 bd68 moveal 5bd68 ,%a4<== NOT EXECUTED 4aad0: 2a0c movel %a4,%d5 <== NOT EXECUTED 4aad2: 5bc4 smi %d4 <== NOT EXECUTED 4aad4: 49c4 extbl %d4 <== NOT EXECUTED 4aad6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aad8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aada: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aadc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aade: 4eb9 0005 7d9c jsr 57d9c <__moddi3> <== NOT EXECUTED 4aae4: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4aae8: 2641 moveal %d1,%a3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4aaea: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aaec: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aaee: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aaf0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aaf2: 4eb9 0005 79e8 jsr 579e8 <__divdi3> <== NOT EXECUTED 4aaf8: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4aafc: 2801 movel %d1,%d4 <== NOT EXECUTED if ( start_offset ) { 4aafe: 4a8b tstl %a3 <== NOT EXECUTED 4ab00: 673c beqs 4ab3e <== 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 ); 4ab02: 42a7 clrl %sp@- <== NOT EXECUTED 4ab04: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4ab06: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab08: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED if ( !block_ptr ) 4ab0e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ab12: 4a80 tstl %d0 <== NOT EXECUTED 4ab14: 6700 00ae beqw 4abc4 <== 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; 4ab18: 99cb subal %a3,%a4 <== NOT EXECUTED 4ab1a: 2406 movel %d6,%d2 <== NOT EXECUTED 4ab1c: b9c6 cmpal %d6,%a4 <== NOT EXECUTED 4ab1e: 6402 bccs 4ab22 <== NOT EXECUTED 4ab20: 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 ); 4ab22: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ab24: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ab26: d7d0 addal %a0@,%a3 <== NOT EXECUTED dest += to_copy; block++; 4ab28: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 4ab2a: 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 ); 4ab2c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ab2e: 2f07 movel %d7,%sp@- <== NOT EXECUTED dest += to_copy; 4ab30: 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 ); 4ab32: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 4ab38: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ab3c: 6002 bras 4ab40 <== NOT EXECUTED */ last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) my_length = the_jnode->info.file.size - start; copied = 0; 4ab3e: 4282 clrl %d2 <== NOT EXECUTED } /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 4ab40: 2679 0005 bd68 moveal 5bd68 ,%a3<== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ab46: 4bf9 0004 a8f0 lea 4a8f0 ,%a5<== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4ab4c: 49f9 0004 c3fc lea 4c3fc ,%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 ) { 4ab52: 6026 bras 4ab7a <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ab54: 42a7 clrl %sp@- <== NOT EXECUTED 4ab56: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ab58: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab5a: 4e95 jsr %a5@ <== NOT EXECUTED if ( !block_ptr ) 4ab5c: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ab60: 4a80 tstl %d0 <== NOT EXECUTED 4ab62: 6762 beqs 4abc6 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4ab64: 2040 moveal %d0,%a0 <== NOT EXECUTED dest += to_copy; block++; 4ab66: 5284 addql #1,%d4 <== NOT EXECUTED my_length -= to_copy; 4ab68: 9c8b subl %a3,%d6 <== NOT EXECUTED copied += to_copy; 4ab6a: 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 ); 4ab6c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ab6e: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4ab70: 2f07 movel %d7,%sp@- <== NOT EXECUTED dest += to_copy; 4ab72: 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 ); 4ab74: 4e94 jsr %a4@ <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; copied += to_copy; 4ab76: 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 ) { 4ab7a: bcb9 0005 bd68 cmpl 5bd68 ,%d6<== NOT EXECUTED 4ab80: 64d2 bccs 4ab54 <== NOT EXECUTED /* * Phase 3: possibly the first part of one block */ IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 4ab82: 4a86 tstl %d6 <== NOT EXECUTED 4ab84: 6728 beqs 4abae <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4ab86: 42a7 clrl %sp@- <== NOT EXECUTED 4ab88: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4ab8a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab8c: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED if ( !block_ptr ) 4ab92: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4ab96: 4a80 tstl %d0 <== NOT EXECUTED 4ab98: 672c beqs 4abc6 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 4ab9a: 2040 moveal %d0,%a0 <== NOT EXECUTED copied += my_length; 4ab9c: 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 ); 4ab9e: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4aba0: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4aba2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4aba4: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED copied += my_length; 4abaa: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 4abae: 42a7 clrl %sp@- <== NOT EXECUTED 4abb0: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4abb4: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4abba: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return copied; 4abc0: 508f addql #8,%sp <== NOT EXECUTED 4abc2: 6002 bras 4abc6 <== 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; 4abc4: 4282 clrl %d2 <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 4abc6: 2002 movel %d2,%d0 <== NOT EXECUTED 4abc8: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4abce: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ac94 : * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 4ac94: 4e56 ffe4 linkw %fp,#-28 <== NOT EXECUTED 4ac98: 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; 4ac9c: 2439 0005 bd68 movel 5bd68 ,%d2<== NOT EXECUTED 4aca2: 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 ) { 4aca4: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED * + doubly indirect * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 4aca8: 4aaa 0054 tstl %a2@(84) <== NOT EXECUTED 4acac: 670e beqs 4acbc <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 4acae: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4acb0: 486a 0054 pea %a2@(84) <== NOT EXECUTED 4acb4: 4eb9 0004 ac4e jsr 4ac4e <== NOT EXECUTED 4acba: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 4acbc: 4aaa 0058 tstl %a2@(88) <== NOT EXECUTED 4acc0: 673e beqs 4ad00 <== NOT EXECUTED 4acc2: 4283 clrl %d3 <== NOT EXECUTED for ( i=0 ; idoubly_indirect[i] ) { memfile_free_blocks_in_table( 4acc4: 47f9 0004 ac4e lea 4ac4e ,%a3<== NOT EXECUTED 4acca: 601a bras 4ace6 <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); } if ( info->doubly_indirect ) { for ( i=0 ; idoubly_indirect[i] ) { 4accc: 2003 movel %d3,%d0 <== NOT EXECUTED 4acce: 206a 0058 moveal %a2@(88),%a0 <== NOT EXECUTED 4acd2: e588 lsll #2,%d0 <== NOT EXECUTED 4acd4: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 4acd8: 670a beqs 4ace4 <== NOT EXECUTED memfile_free_blocks_in_table( 4acda: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4acdc: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 4ace0: 4e93 jsr %a3@ <== NOT EXECUTED 4ace2: 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 4acec: e488 lsrl #2,%d0 <== NOT EXECUTED 4acee: b083 cmpl %d3,%d0 <== NOT EXECUTED 4acf0: 62da bhis 4accc <== 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 ); 4acf2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4acf4: 486a 0058 pea %a2@(88) <== NOT EXECUTED 4acf8: 4eb9 0004 ac4e jsr 4ac4e <== NOT EXECUTED 4acfe: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 4ad00: 4aaa 005c tstl %a2@(92) <== NOT EXECUTED 4ad04: 6762 beqs 4ad68 <== NOT EXECUTED 4ad06: 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 4ad0e: 603e bras 4ad4e <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 4ad10: 2a03 movel %d3,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 4ad12: 206a 005c moveal %a2@(92),%a0 <== NOT EXECUTED } memfile_free_blocks_in_table( &info->doubly_indirect, to_free ); } if ( info->triply_indirect ) { 4ad16: e58d lsll #2,%d5 <== NOT EXECUTED for ( i=0 ; itriply_indirect[i]; 4ad18: 2670 5800 moveal %a0@(00000000,%d5:l),%a3 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4ad1c: 4a8b tstl %a3 <== NOT EXECUTED 4ad1e: 673a beqs 4ad5a <== NOT EXECUTED 4ad20: 4284 clrl %d4 <== NOT EXECUTED 4ad22: 6010 bras 4ad34 <== NOT EXECUTED break; for ( j=0 ; j <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 4ad28: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad2a: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4ad2c: 4e94 jsr %a4@ <== NOT EXECUTED 4ad2e: 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 4ad3a: e488 lsrl #2,%d0 <== NOT EXECUTED 4ad3c: b084 cmpl %d4,%d0 <== NOT EXECUTED 4ad3e: 62e4 bhis 4ad24 <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 4ad40: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad42: 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 4ad54: e488 lsrl #2,%d0 <== NOT EXECUTED 4ad56: b083 cmpl %d3,%d0 <== NOT EXECUTED 4ad58: 62b6 bhis 4ad10 <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 4ad5a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4ad5c: 486a 005c pea %a2@(92) <== NOT EXECUTED 4ad60: 4eb9 0004 ac4e jsr 4ac4e <== NOT EXECUTED 4ad66: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 4ad68: 4280 clrl %d0 <== NOT EXECUTED 4ad6a: 4cee 1c3c ffe4 moveml %fp@(-28),%d2-%d5/%a2-%a4 <== NOT EXECUTED 4ad70: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ad74 : */ MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 4ad74: 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 ); 4ad78: 42a7 clrl %sp@- <== NOT EXECUTED 4ad7a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4ad7e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4ad82: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED IMFS_assert( block_ptr ); ptr = *block_ptr; 4ad88: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ad8a: 2210 movel %a0@,%d1 <== NOT EXECUTED *block_ptr = 0; 4ad8c: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 4ad8e: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4ad90: 4eb9 0004 ac34 jsr 4ac34 <== NOT EXECUTED return 1; } 4ad96: 7001 moveq #1,%d0 <== NOT EXECUTED 4ad98: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ae80 : * 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 ) { 4ae80: 4280 clrl %d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4ae82: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 4ae86: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4ae8a: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4ae8e: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4ae92: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4ae96: 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; 4ae9a: 2046 moveal %d6,%a0 <== NOT EXECUTED 4ae9c: d1c3 addal %d3,%a0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 4ae9e: 2208 movel %a0,%d1 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4aea0: 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 ) { 4aea4: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4aea8: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4aeac: 9a81 subl %d1,%d5 <== NOT EXECUTED 4aeae: 9980 subxl %d0,%d4 <== NOT EXECUTED 4aeb0: 6c28 bges 4aeda <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); 4aeb2: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4aeb4: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4aeb6: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aeb8: 4eb9 0004 ad9c jsr 4ad9c <== NOT EXECUTED if ( status ) 4aebe: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4aec2: 4a80 tstl %d0 <== NOT EXECUTED 4aec4: 6714 beqs 4aeda <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4aec6: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 4aecc: 741c moveq #28,%d2 <== NOT EXECUTED 4aece: 2040 moveal %d0,%a0 <== NOT EXECUTED 4aed0: 387c ffff moveaw #-1,%a4 <== NOT EXECUTED 4aed4: 2082 movel %d2,%a0@ <== NOT EXECUTED 4aed6: 6000 0102 braw 4afda <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4aeda: 2879 0005 bd68 moveal 5bd68 ,%a4<== NOT EXECUTED 4aee0: 2a0c movel %a4,%d5 <== NOT EXECUTED 4aee2: 5bc4 smi %d4 <== NOT EXECUTED 4aee4: 49c4 extbl %d4 <== NOT EXECUTED 4aee6: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aee8: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aeea: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4aeec: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4aeee: 4eb9 0005 7d9c jsr 57d9c <__moddi3> <== NOT EXECUTED 4aef4: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4aef8: 2641 moveal %d1,%a3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4aefa: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4aefc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4aefe: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4af00: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4af02: 4eb9 0005 79e8 jsr 579e8 <__divdi3> <== NOT EXECUTED 4af08: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4af0c: 2401 movel %d1,%d2 <== NOT EXECUTED if ( start_offset ) { 4af0e: 4a8b tstl %a3 <== NOT EXECUTED 4af10: 673a beqs 4af4c <== 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 ); 4af12: 42a7 clrl %sp@- <== NOT EXECUTED 4af14: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4af16: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4af18: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED if ( !block_ptr ) 4af1e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4af22: 4a80 tstl %d0 <== NOT EXECUTED 4af24: 6700 00b2 beqw 4afd8 <== 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; 4af28: 99cb subal %a3,%a4 <== NOT EXECUTED 4af2a: bc8c cmpl %a4,%d6 <== NOT EXECUTED 4af2c: 6402 bccs 4af30 <== NOT EXECUTED 4af2e: 2846 moveal %d6,%a4 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4af30: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4af32: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; block++; 4af34: 5282 addql #1,%d2 <== NOT EXECUTED my_length -= to_copy; 4af36: 9c8c subl %a4,%d6 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4af38: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4af3a: d7d0 addal %a0@,%a3 <== NOT EXECUTED src += to_copy; 4af3c: de8c addl %a4,%d7 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4af3e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4af40: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; copied += to_copy; 4af46: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4af4a: 6002 bras 4af4e <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); if ( status ) rtems_set_errno_and_return_minus_one( ENOSPC ); } copied = 0; 4af4c: 99cc subal %a4,%a4 <== NOT EXECUTED /* * Phase 2: all of zero of more blocks */ to_copy = IMFS_MEMFILE_BYTES_PER_BLOCK; 4af4e: 2839 0005 bd68 movel 5bd68 ,%d4<== NOT EXECUTED while ( my_length >= IMFS_MEMFILE_BYTES_PER_BLOCK ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4af54: 4bf9 0004 a8f0 lea 4a8f0 ,%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 ); 4af5a: 47f9 0004 c3fc lea 4c3fc ,%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 ) { 4af60: 6026 bras 4af88 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4af62: 42a7 clrl %sp@- <== NOT EXECUTED 4af64: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4af66: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4af68: 4e95 jsr %a5@ <== NOT EXECUTED if ( !block_ptr ) 4af6a: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4af6e: 4a80 tstl %d0 <== NOT EXECUTED 4af70: 6768 beqs 4afda <== 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 ); 4af72: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4af74: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; block++; 4af76: 5282 addql #1,%d2 <== NOT EXECUTED my_length -= to_copy; 4af78: 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( 4af7a: 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 ); 4af7c: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4af7e: 2f10 movel %a0@,%sp@- <== NOT EXECUTED src += to_copy; 4af80: 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 ); 4af82: 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( 4af84: 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 ) { 4af88: bcb9 0005 bd68 cmpl 5bd68 ,%d6<== NOT EXECUTED 4af8e: 64d2 bccs 4af62 <== 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 ) { 4af90: 4a86 tstl %d6 <== NOT EXECUTED 4af92: 6728 beqs 4afbc <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4af94: 42a7 clrl %sp@- <== NOT EXECUTED 4af96: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4af98: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4af9a: 4eb9 0004 a8f0 jsr 4a8f0 <== NOT EXECUTED if ( !block_ptr ) 4afa0: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4afa4: 4a80 tstl %d0 <== NOT EXECUTED 4afa6: 6732 beqs 4afda <== 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 ); 4afa8: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4afaa: 2040 moveal %d0,%a0 <== NOT EXECUTED my_length = 0; copied += to_copy; 4afac: 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 ); 4afae: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4afb0: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4afb2: 4eb9 0004 c3fc jsr 4c3fc <== NOT EXECUTED my_length = 0; copied += to_copy; 4afb8: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); 4afbc: 42a7 clrl %sp@- <== NOT EXECUTED 4afbe: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4afc2: 4eb9 0004 283c jsr 4283c <== NOT EXECUTED 4afc8: 202e fff8 movel %fp@(-8),%d0 <== NOT EXECUTED return copied; 4afcc: 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 ); 4afce: 2540 0040 movel %d0,%a2@(64) <== NOT EXECUTED 4afd2: 2540 0044 movel %d0,%a2@(68) <== NOT EXECUTED return copied; 4afd6: 6002 bras 4afda <== 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; 4afd8: 99cc subal %a4,%a4 <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); return copied; } 4afda: 200c movel %a4,%d0 <== NOT EXECUTED 4afdc: 4cee 3cfc ffd0 moveml %fp@(-48),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4afe2: 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 cfa8 jsr 4cfa8 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 9274 jsr 49274 /* * 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 8a14 jsr 48a14 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 bb50 jsr 4bb50 <__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 bb50 jsr 4bb50 <__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 0b60 moveal 60b60 <_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 fe74 jsr 4fe74 <== 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 0b60 moveal 60b60 <_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 .short 0x000e <== NOT EXECUTED 446a4: 0022 .short 0x0022 <== NOT EXECUTED 446a6: 006a .short 0x006a <== NOT EXECUTED 446a8: 006a .short 0x006a <== NOT EXECUTED 446aa: 0050 .short 0x0050 <== NOT EXECUTED 446ac: 0032 .short 0x0032 <== NOT EXECUTED 446ae: 0076 .short 0x0076 <== 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 fda4 jsr 4fda4 <== 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 f3be pea 5f3be <== 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 f3d1 pea 5f3d1 <== NOT EXECUTED 446e2: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 446e6: 4eb9 0004 fd26 jsr 4fd26 <== 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 f3e0 pea 5f3e0 <== NOT EXECUTED 446fc: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44700: 4eb9 0004 fd26 jsr 4fd26 <== 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 f3ec pea 5f3ec <== 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 f400 pea 5f400 <== NOT EXECUTED 44722: 4eb9 0004 fe74 jsr 4fe74 <== 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 f413 pea 5f413 <== NOT EXECUTED 44734: 2079 0006 0b60 moveal 60b60 <_impure_ptr>,%a0 <== NOT EXECUTED 4473a: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4473e: 4eb9 0004 fd26 jsr 4fd26 <== 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 fac6 movel #391878,%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 164a jmp 5164a <== 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 cfc0 jsr 4cfc0 <== 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 5f98 jsr 45f98 <_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 5f60 jsr 45f60 <_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 =============================================================================== 000493da : int IMFS_rmnod( rtems_filesystem_location_info_t *parent_pathloc, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN */ ) { 493da: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_jnode_t *jnode = (IMFS_jnode_t *) pathloc->node_access; 493de: 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 */ ) { 493e2: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = (IMFS_jnode_t *) pathloc->node_access; 493e4: 2410 movel %a0@,%d2 <== NOT EXECUTED IMFS_create_orphan( jnode ); 493e6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 493e8: 4eb9 0004 9328 jsr 49328 <== NOT EXECUTED IMFS_check_node_remove( jnode ); 493ee: 2f02 movel %d2,%sp@- <== NOT EXECUTED 493f0: 4eb9 0004 936c jsr 4936c <== NOT EXECUTED return 0; } 493f6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 493fa: 4280 clrl %d0 <== NOT EXECUTED 493fc: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00049400 : IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 49400: 7205 moveq #5,%d1 int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 49402: 4e56 0000 linkw %fp,#0 49406: 206e 000c moveal %fp@(12),%a0 4940a: 2f0a movel %a2,%sp@- 4940c: 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; 49410: 2252 moveal %a2@,%a1 switch ( the_jnode->type ) { 49412: 2029 0048 movel %a1@(72),%d0 49416: 5580 subql #2,%d0 49418: b280 cmpl %d0,%d1 4941a: 653e bcss 4945a <== NEVER TAKEN 4941c: 303b 0a08 movew %pc@(49426 ,%d0:l:2),%d0 49420: 48c0 extl %d0 49422: 4efb 0802 jmp %pc@(49426 ,%d0:l) 49426: 000c .short 0x000c <== NOT EXECUTED 49428: 0034 .short 0x0034 <== NOT EXECUTED 4942a: 0026 .short 0x0026 <== NOT EXECUTED 4942c: 001c .short 0x001c <== NOT EXECUTED 4942e: 001c .short 0x001c <== NOT EXECUTED 49430: 0026 .short 0x0026 <== NOT EXECUTED case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); 49432: 2029 0050 movel %a1@(80),%d0 49436: 2169 004c 0016 movel %a1@(76),%a0@(22) 4943c: 2140 001a movel %d0,%a0@(26) break; 49440: 602a bras 4946c case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 49442: 2029 004c movel %a1@(76),%d0 <== NOT EXECUTED 49446: 2229 0050 movel %a1@(80),%d1 <== NOT EXECUTED 4944a: 6004 bras 49450 <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; case IMFS_FIFO: buf->st_size = 0; 4944c: 4280 clrl %d0 <== NOT EXECUTED 4944e: 4281 clrl %d1 <== NOT EXECUTED 49450: 2140 001e movel %d0,%a0@(30) <== NOT EXECUTED 49454: 2141 0022 movel %d1,%a0@(34) <== NOT EXECUTED break; 49458: 6012 bras 4946c <== NOT EXECUTED default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4945a: 4eb9 0004 bb50 jsr 4bb50 <__errno> <== NOT EXECUTED 49460: 2040 moveal %d0,%a0 <== NOT EXECUTED 49462: 70ff moveq #-1,%d0 <== NOT EXECUTED 49464: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED 4946a: 6046 bras 494b2 <== 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; 4946c: 246a 0010 moveal %a2@(16),%a2 buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 49470: 246a 0034 moveal %a2@(52),%a2 49474: 2012 movel %a2@,%d0 buf->st_mode = the_jnode->st_mode; 49476: 2169 002e 000c movel %a1@(46),%a0@(12) buf->st_nlink = the_jnode->st_nlink; 4947c: 3169 0032 0010 movew %a1@(50),%a0@(16) buf->st_ino = the_jnode->st_ino; 49482: 2169 0034 0008 movel %a1@(52),%a0@(8) buf->st_uid = the_jnode->st_uid; 49488: 3169 0038 0012 movew %a1@(56),%a0@(18) buf->st_gid = the_jnode->st_gid; 4948e: 3169 003a 0014 movew %a1@(58),%a0@(20) buf->st_atime = the_jnode->stat_atime; 49494: 2169 003c 0026 movel %a1@(60),%a0@(38) buf->st_mtime = the_jnode->stat_mtime; 4949a: 2169 0040 002e movel %a1@(64),%a0@(46) buf->st_ctime = the_jnode->stat_ctime; 494a0: 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 = 494a6: 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; 494aa: 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 = 494ac: 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; } 494b2: 246e fffc moveal %fp@(-4),%a2 494b6: 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 cfa8 jsr 4cfa8 <== 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 9274 jsr 49274 <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup(link_name); 420ca: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 420ce: 4eb9 0004 cb18 jsr 4cb18 <== 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 bb50 jsr 4bb50 <__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 8a14 jsr 48a14 <== 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 bb50 jsr 4bb50 <__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 bb50 jsr 4bb50 <__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 c3fc jsr 4c3fc <== 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 8b64 jsr 48b64 <== 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 bb50 jsr 4bb50 <__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 bb50 jsr 4bb50 <__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 f270 jsr 4f270