=============================================================================== 000433f0 : #include static void CPU_usage_Per_thread_handler( Thread_Control *the_thread ) { 433f0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 433f4: 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 } 433f8: 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 ); 433fa: 42a8 0082 clrl %a0@(130) <== NOT EXECUTED 433fe: 42a8 0086 clrl %a0@(134) <== NOT EXECUTED #else the_thread->cpu_time_used = 0; #endif } =============================================================================== 0004a12c : { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; switch( node->type ) { 4a12c: 7007 moveq #7,%d0 #define MAXSYMLINK 5 int IMFS_Set_handlers( rtems_filesystem_location_info_t *loc ) { 4a12e: 4e56 0000 linkw %fp,#0 4a132: 206e 0008 moveal %fp@(8),%a0 4a136: 2f0a movel %a2,%sp@- IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 4a138: 2468 0010 moveal %a0@(16),%a2 switch( node->type ) { 4a13c: 2250 moveal %a0@,%a1 ) { IMFS_jnode_t *node = loc->node_access; IMFS_fs_info_t *fs_info; fs_info = loc->mt_entry->fs_info; 4a13e: 246a 0034 moveal %a2@(52),%a2 switch( node->type ) { 4a142: b0a9 0048 cmpl %a1@(72),%d0 4a146: 6526 bcss 4a16e <== NEVER TAKEN 4a148: 2029 0048 movel %a1@(72),%d0 4a14c: d080 addl %d0,%d0 4a14e: 303b 0808 movew %pc@(4a158 ,%d0:l),%d0 4a152: 48c0 extl %d0 4a154: 4efb 0802 jmp %pc@(4a158 ,%d0:l) 4a158: 0016 .short 0x0016 <== NOT EXECUTED 4a15a: 0010 .short 0x0010 <== NOT EXECUTED 4a15c: 004c .short 0x004c <== NOT EXECUTED 4a15e: 002c .short 0x002c <== NOT EXECUTED 4a160: 002c .short 0x002c <== NOT EXECUTED 4a162: 001e .short 0x001e <== NOT EXECUTED 4a164: 001e .short 0x001e <== NOT EXECUTED 4a166: 003e .short 0x003e <== NOT EXECUTED case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; 4a168: 216a 000c 0008 movel %a2@(12),%a0@(8) loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a16e: 245f moveal %sp@+,%a2 4a170: 4280 clrl %d0 4a172: 4e5e unlk %fp 4a174: 4e75 rts 4a176: 4280 clrl %d0 break; case IMFS_LINEAR_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; 4a178: 216a 0008 0008 movel %a2@(8),%a0@(8) loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a17e: 245f moveal %sp@+,%a2 4a180: 4e5e unlk %fp 4a182: 4e75 rts 4a184: 245f moveal %sp@+,%a2 <== NOT EXECUTED case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; break; case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 4a186: 203c 0005 d6d2 movel #382674,%d0 <== NOT EXECUTED loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a18c: 4e5e unlk %fp <== NOT EXECUTED case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; break; case IMFS_SYM_LINK: case IMFS_HARD_LINK: loc->handlers = &IMFS_link_handlers; 4a18e: 2140 0008 movel %d0,%a0@(8) <== NOT EXECUTED loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a192: 4280 clrl %d0 <== NOT EXECUTED 4a194: 4e75 rts <== NOT EXECUTED 4a196: 4280 clrl %d0 <== NOT EXECUTED break; case IMFS_MEMORY_FILE: loc->handlers = fs_info->memfile_handlers; break; case IMFS_FIFO: loc->handlers = fs_info->fifo_handlers; 4a198: 216a 0010 0008 movel %a2@(16),%a0@(8) <== NOT EXECUTED break; } return 0; } 4a19e: 245f moveal %sp@+,%a2 <== NOT EXECUTED 4a1a0: 4e5e unlk %fp <== NOT EXECUTED 4a1a2: 4e75 rts <== NOT EXECUTED 4a1a4: 245f moveal %sp@+,%a2 switch( node->type ) { case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; break; case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 4a1a6: 203c 0005 d662 movel #382562,%d0 loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a1ac: 4e5e unlk %fp switch( node->type ) { case IMFS_DIRECTORY: loc->handlers = fs_info->directory_handlers; break; case IMFS_DEVICE: loc->handlers = &IMFS_device_handlers; 4a1ae: 2140 0008 movel %d0,%a0@(8) loc->handlers = fs_info->fifo_handlers; break; } return 0; } 4a1b2: 4280 clrl %d0 <== NOT EXECUTED =============================================================================== 00049e7c : IMFS_jnode_t *IMFS_allocate_node( IMFS_jnode_types_t type, const char *name, mode_t mode ) { 49e7c: 4e56 fff8 linkw %fp,#-8 49e80: 2f0a movel %a2,%sp@- struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 49e82: 4878 0060 pea 60 49e86: 4878 0001 pea 1 49e8a: 4eb9 0004 28f0 jsr 428f0 if ( !node ) 49e90: 508f addql #8,%sp struct timeval tv; /* * Allocate an IMFS jnode */ node = calloc( 1, sizeof( IMFS_jnode_t ) ); 49e92: 2440 moveal %d0,%a2 if ( !node ) 49e94: 4a80 tstl %d0 49e96: 6758 beqs 49ef0 <== NEVER TAKEN /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 49e98: 4878 0020 pea 20 49e9c: 2f2e 000c movel %fp@(12),%sp@- /* * Fill in the basic information */ node->st_nlink = 1; node->type = type; 49ea0: 256e 0008 0048 movel %fp@(8),%a2@(72) strncpy( node->name, name, IMFS_NAME_MAX ); 49ea6: 486a 000c pea %a2@(12) return NULL; /* * Fill in the basic information */ node->st_nlink = 1; 49eaa: 7001 moveq #1,%d0 49eac: 3540 0032 movew %d0,%a2@(50) node->type = type; strncpy( node->name, name, IMFS_NAME_MAX ); 49eb0: 4eb9 0004 fd54 jsr 4fd54 /* * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode; 49eb6: 256e 0010 002e movel %fp@(16),%a2@(46) #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); 49ebc: 4eb9 0004 b000 jsr 4b000 49ec2: 3540 0038 movew %d0,%a2@(56) node->st_gid = getegid(); 49ec6: 4eb9 0004 afec jsr 4afec #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 49ecc: 42a7 clrl %sp@- 49ece: 486e fff8 pea %fp@(-8) * Fill in the mode and permission information for the jnode structure. */ node->st_mode = mode; #if defined(RTEMS_POSIX_API) node->st_uid = geteuid(); node->st_gid = getegid(); 49ed2: 3540 003a movew %d0,%a2@(58) #endif /* * Now set all the times. */ gettimeofday( &tv, 0 ); 49ed6: 4eb9 0004 2d8c jsr 42d8c node->stat_atime = (time_t) tv.tv_sec; 49edc: 202e fff8 movel %fp@(-8),%d0 node->stat_mtime = (time_t) tv.tv_sec; node->stat_ctime = (time_t) tv.tv_sec; return node; 49ee0: 4fef 0014 lea %sp@(20),%sp /* * Now set all the times. */ gettimeofday( &tv, 0 ); node->stat_atime = (time_t) tv.tv_sec; 49ee4: 2540 003c movel %d0,%a2@(60) node->stat_mtime = (time_t) tv.tv_sec; 49ee8: 2540 0040 movel %d0,%a2@(64) node->stat_ctime = (time_t) tv.tv_sec; 49eec: 2540 0044 movel %d0,%a2@(68) return node; } 49ef0: 200a movel %a2,%d0 49ef2: 246e fff4 moveal %fp@(-12),%a2 49ef6: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ab4c : void IMFS_check_node_remove( IMFS_jnode_t *jnode ) { 4ab4c: 4e56 0000 linkw %fp,#0 4ab50: 2f0a movel %a2,%sp@- 4ab52: 246e 0008 moveal %fp@(8),%a2 if ( !rtems_libio_is_file_open( jnode ) && jnode->st_nlink < 1 ) { 4ab56: 2f0a movel %a2,%sp@- 4ab58: 4eb9 0004 b272 jsr 4b272 4ab5e: 588f addql #4,%sp 4ab60: 4a80 tstl %d0 4ab62: 6634 bnes 4ab98 <== ALWAYS TAKEN 4ab64: 4a6a 0032 tstw %a2@(50) <== NOT EXECUTED 4ab68: 662e bnes 4ab98 <== NOT EXECUTED if ( rtems_filesystem_current.node_access == jnode ) 4ab6a: 2079 0005 e530 moveal 5e530 ,%a0 <== NOT EXECUTED 4ab70: b5e8 0004 cmpal %a0@(4),%a2 <== NOT EXECUTED 4ab74: 6744 beqs 4abba <== NOT EXECUTED rtems_filesystem_current.node_access = NULL; switch ( jnode->type ) { 4ab76: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 4ab7a: 7204 moveq #4,%d1 <== NOT EXECUTED 4ab7c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ab7e: 6748 beqs 4abc8 <== NOT EXECUTED 4ab80: 123c 0005 moveb #5,%d1 <== NOT EXECUTED 4ab84: b280 cmpl %d0,%d1 <== NOT EXECUTED 4ab86: 6718 beqs 4aba0 <== NOT EXECUTED break; default: break; } free( jnode ); 4ab88: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 4ab8c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4ab90: 4e5e unlk %fp <== NOT EXECUTED break; default: break; } free( jnode ); 4ab92: 4ef9 0004 2cfc jmp 42cfc <== NOT EXECUTED } } 4ab98: 246e fffc moveal %fp@(-4),%a2 4ab9c: 4e5e unlk %fp 4ab9e: 4e75 rts if ( rtems_filesystem_current.node_access == jnode ) rtems_filesystem_current.node_access = NULL; switch ( jnode->type ) { case IMFS_MEMORY_FILE: IMFS_memfile_remove( jnode ); 4aba0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4aba2: 4eb9 0004 d304 jsr 4d304 <== NOT EXECUTED break; 4aba8: 588f addql #4,%sp <== NOT EXECUTED break; default: break; } free( jnode ); 4abaa: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 4abae: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4abb2: 4e5e unlk %fp <== NOT EXECUTED break; default: break; } free( jnode ); 4abb4: 4ef9 0004 2cfc jmp 42cfc <== NOT EXECUTED { if ( !rtems_libio_is_file_open( jnode ) && jnode->st_nlink < 1 ) { if ( rtems_filesystem_current.node_access == jnode ) rtems_filesystem_current.node_access = NULL; switch ( jnode->type ) { 4abba: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 4abbe: 7204 moveq #4,%d1 <== NOT EXECUTED void IMFS_check_node_remove( IMFS_jnode_t *jnode ) { if ( !rtems_libio_is_file_open( jnode ) && jnode->st_nlink < 1 ) { if ( rtems_filesystem_current.node_access == jnode ) rtems_filesystem_current.node_access = NULL; 4abc0: 42a8 0004 clrl %a0@(4) <== NOT EXECUTED switch ( jnode->type ) { 4abc4: b280 cmpl %d0,%d1 <== NOT EXECUTED 4abc6: 66b8 bnes 4ab80 <== NOT EXECUTED case IMFS_MEMORY_FILE: IMFS_memfile_remove( jnode ); break; case IMFS_SYM_LINK: free( jnode->info.sym_link.name ); 4abc8: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 4abcc: 4eb9 0004 2cfc jsr 42cfc <== NOT EXECUTED break; 4abd2: 588f addql #4,%sp <== NOT EXECUTED default: break; } free( jnode ); 4abd4: 2d4a 0008 movel %a2,%fp@(8) <== NOT EXECUTED } } 4abd8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED 4abdc: 4e5e unlk %fp <== NOT EXECUTED break; default: break; } free( jnode ); 4abde: 4ef9 0004 2cfc jmp 42cfc <== NOT EXECUTED =============================================================================== 00049e0c : int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 49e0c: 4e56 ffe8 linkw %fp,#-24 <== NOT EXECUTED 49e10: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 49e14: 48d7 041c moveml %d2-%d4/%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; 49e18: 2450 moveal %a0@,%a2 <== NOT EXECUTED */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 49e1a: 4284 clrl %d4 <== NOT EXECUTED int IMFS_chown( rtems_filesystem_location_info_t *pathloc, /* IN */ uid_t owner, /* IN */ gid_t group /* IN */ ) { 49e1c: 362e 000e movew %fp@(14),%d3 <== NOT EXECUTED 49e20: 342e 0012 movew %fp@(18),%d2 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 49e24: 4eb9 0004 b000 jsr 4b000 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 49e2a: 4281 clrl %d1 <== NOT EXECUTED 49e2c: 382a 0038 movew %a2@(56),%d4 <== NOT EXECUTED 49e30: 3200 movew %d0,%d1 <== NOT EXECUTED 49e32: b284 cmpl %d4,%d1 <== NOT EXECUTED 49e34: 6704 beqs 49e3a <== NOT EXECUTED 49e36: 4a40 tstw %d0 <== NOT EXECUTED 49e38: 6628 bnes 49e62 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EPERM ); #endif jnode->st_uid = owner; 49e3a: 3543 0038 movew %d3,%a2@(56) <== NOT EXECUTED jnode->st_gid = group; 49e3e: 3542 003a movew %d2,%a2@(58) <== NOT EXECUTED IMFS_update_ctime( jnode ); 49e42: 42a7 clrl %sp@- <== NOT EXECUTED 49e44: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 49e48: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 49e4e: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; 49e54: 508f addql #8,%sp <== NOT EXECUTED 49e56: 4280 clrl %d0 <== NOT EXECUTED } 49e58: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED 49e5e: 4e5e unlk %fp <== NOT EXECUTED 49e60: 4e75 rts <== NOT EXECUTED #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 49e62: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 49e68: 7201 moveq #1,%d1 <== NOT EXECUTED 49e6a: 2040 moveal %d0,%a0 <== NOT EXECUTED 49e6c: 70ff moveq #-1,%d0 <== NOT EXECUTED jnode->st_gid = group; IMFS_update_ctime( jnode ); return 0; } 49e6e: 4cee 041c ffe8 moveml %fp@(-24),%d2-%d4/%a2 <== NOT EXECUTED #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 49e74: 2081 movel %d1,%a0@ <== NOT EXECUTED jnode->st_gid = group; IMFS_update_ctime( jnode ); return 0; } 49e76: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00049efa : IMFS_jnode_types_t type, const char *name, mode_t mode, const IMFS_types_union *info ) { 49efa: 4e56 ffec linkw %fp,#-20 49efe: 206e 0008 moveal %fp@(8),%a0 49f02: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ 49f06: 242e 000c movel %fp@(12),%d2 49f0a: 286e 0018 moveal %fp@(24),%a4 IMFS_fs_info_t *fs_info; /* * MUST have a parent node to call this routine. */ if ( parent_loc == NULL ) 49f0e: 4a88 tstl %a0 49f10: 6700 00ac beqw 49fbe return NULL; parent = parent_loc->node_access; fs_info = parent_loc->mt_entry->fs_info; 49f14: 2268 0010 moveal %a0@(16),%a1 /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 49f18: 7007 moveq #7,%d0 * MUST have a parent node to call this routine. */ if ( parent_loc == NULL ) return NULL; parent = parent_loc->node_access; 49f1a: 2650 moveal %a0@,%a3 fs_info = parent_loc->mt_entry->fs_info; 49f1c: 2469 0034 moveal %a1@(52),%a2 /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 49f20: b082 cmpl %d2,%d0 49f22: 6700 008c beqw 49fb0 return NULL; /* * Allocate filesystem node and fill in basic information */ node = IMFS_allocate_node( type, name, mode & ~rtems_filesystem_umask ); 49f26: 2079 0005 e530 moveal 5e530 ,%a0 49f2c: 2028 002c movel %a0@(44),%d0 49f30: 4680 notl %d0 49f32: c0ae 0014 andl %fp@(20),%d0 49f36: 2f00 movel %d0,%sp@- 49f38: 2f2e 0010 movel %fp@(16),%sp@- 49f3c: 2f02 movel %d2,%sp@- 49f3e: 4eb9 0004 9e7c jsr 49e7c if ( !node ) 49f44: 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 ); 49f48: 2a40 moveal %d0,%a5 if ( !node ) 49f4a: 4a80 tstl %d0 49f4c: 6756 beqs 49fa4 <== NEVER TAKEN return NULL; /* * Set the type specific information */ if ( type == IMFS_DIRECTORY ) { 49f4e: 7001 moveq #1,%d0 49f50: b082 cmpl %d2,%d0 49f52: 6778 beqs 49fcc rtems_chain_initialize_empty(&node->info.directory.Entries); } else if ( type == IMFS_HARD_LINK ) { 49f54: 7003 moveq #3,%d0 49f56: b082 cmpl %d2,%d0 49f58: 6700 00d6 beqw 4a030 node->info.hard_link.link_node = info->hard_link.link_node; } else if ( type == IMFS_SYM_LINK ) { 49f5c: 7204 moveq #4,%d1 49f5e: b282 cmpl %d2,%d1 49f60: 6700 00ce beqw 4a030 node->info.sym_link.name = info->sym_link.name; } else if ( type == IMFS_DEVICE ) { 49f64: 7002 moveq #2,%d0 49f66: b082 cmpl %d2,%d0 49f68: 6700 0098 beqw 4a002 node->info.device.major = info->device.major; node->info.device.minor = info->device.minor; } else if ( type == IMFS_LINEAR_FILE ) { 49f6c: 7206 moveq #6,%d1 49f6e: b282 cmpl %d2,%d1 49f70: 6700 010e beqw 4a080 node->info.linearfile.size = 0; node->info.linearfile.direct = 0; } else if ( type == IMFS_MEMORY_FILE ) { 49f74: 7205 moveq #5,%d1 49f76: b282 cmpl %d2,%d1 49f78: 6700 013a beqw 4a0b4 node->info.file.size = 0; node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; node->info.file.triply_indirect = 0; } else if ( type == IMFS_FIFO ) { 49f7c: 7207 moveq #7,%d1 <== NOT EXECUTED 49f7e: b282 cmpl %d2,%d1 <== NOT EXECUTED 49f80: 6700 00d6 beqw 4a058 <== 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; 49f84: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 49f88: 5280 addql #1,%d0 <== NOT EXECUTED } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 49f8a: 2b4b 0008 movel %a3,%a5@(8) <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 49f8e: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 49f92: 2b40 0034 movel %d0,%a5@(52) <== NOT EXECUTED 49f96: 2f0d movel %a5,%sp@- <== NOT EXECUTED 49f98: 486b 004c pea %a3@(76) <== NOT EXECUTED 49f9c: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 49fa2: 508f addql #8,%sp <== NOT EXECUTED } 49fa4: 200d movel %a5,%d0 49fa6: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 49fac: 4e5e unlk %fp 49fae: 4e75 rts fs_info = parent_loc->mt_entry->fs_info; /* * Reject creation of FIFOs if support is disabled. */ if ( type == IMFS_FIFO && 49fb0: 223c 0005 d5f2 movel #382450,%d1 <== NOT EXECUTED 49fb6: b2aa 0010 cmpl %a2@(16),%d1 <== NOT EXECUTED 49fba: 6600 ff6a bnew 49f26 <== NOT EXECUTED fs_info->fifo_handlers == &rtems_filesystem_handlers_default ) return NULL; 49fbe: 9bcd subal %a5,%a5 <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; } 49fc0: 200d movel %a5,%d0 <== NOT EXECUTED 49fc2: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 49fc8: 4e5e unlk %fp <== NOT EXECUTED 49fca: 4e75 rts <== NOT EXECUTED RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); Chain_Node *tail = _Chain_Tail( the_chain ); 49fcc: 41ed 0050 lea %a5@(80),%a0 49fd0: 2b48 004c movel %a0,%a5@(76) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 49fd4: 41ed 004c lea %a5@(76),%a0 Chain_Node *tail = _Chain_Tail( the_chain ); head->next = tail; head->previous = NULL; 49fd8: 42ad 0050 clrl %a5@(80) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 49fdc: 2b48 0054 movel %a0,%a5@(84) /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; node->st_ino = ++fs_info->ino_count; 49fe0: 202a 0004 movel %a2@(4),%d0 49fe4: 5280 addql #1,%d0 } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 49fe6: 2b4b 0008 movel %a3,%a5@(8) node->st_ino = ++fs_info->ino_count; 49fea: 2540 0004 movel %d0,%a2@(4) 49fee: 2b40 0034 movel %d0,%a5@(52) 49ff2: 2f0d movel %a5,%sp@- 49ff4: 486b 004c pea %a3@(76) 49ff8: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 49ffe: 508f addql #8,%sp 4a000: 60a2 bras 49fa4 } else if ( type == IMFS_HARD_LINK ) { node->info.hard_link.link_node = info->hard_link.link_node; } else if ( type == IMFS_SYM_LINK ) { node->info.sym_link.name = info->sym_link.name; } else if ( type == IMFS_DEVICE ) { node->info.device.major = info->device.major; 4a002: 2b54 004c movel %a4@,%a5@(76) node->info.device.minor = info->device.minor; 4a006: 2b6c 0004 0050 movel %a4@(4),%a5@(80) /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; node->st_ino = ++fs_info->ino_count; 4a00c: 202a 0004 movel %a2@(4),%d0 4a010: 5280 addql #1,%d0 } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 4a012: 2b4b 0008 movel %a3,%a5@(8) node->st_ino = ++fs_info->ino_count; 4a016: 2540 0004 movel %d0,%a2@(4) 4a01a: 2b40 0034 movel %d0,%a5@(52) 4a01e: 2f0d movel %a5,%sp@- 4a020: 486b 004c pea %a3@(76) 4a024: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 4a02a: 508f addql #8,%sp 4a02c: 6000 ff76 braw 49fa4 if ( type == IMFS_DIRECTORY ) { rtems_chain_initialize_empty(&node->info.directory.Entries); } else if ( type == IMFS_HARD_LINK ) { node->info.hard_link.link_node = info->hard_link.link_node; } else if ( type == IMFS_SYM_LINK ) { node->info.sym_link.name = info->sym_link.name; 4a030: 2b54 004c movel %a4@,%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; 4a034: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4a038: 5280 addql #1,%d0 <== NOT EXECUTED } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 4a03a: 2b4b 0008 movel %a3,%a5@(8) <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 4a03e: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 4a042: 2b40 0034 movel %d0,%a5@(52) <== NOT EXECUTED 4a046: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4a048: 486b 004c pea %a3@(76) <== NOT EXECUTED 4a04c: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 4a052: 508f addql #8,%sp <== NOT EXECUTED 4a054: 6000 ff4e braw 49fa4 <== NOT EXECUTED node->info.file.size = 0; node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; node->info.file.triply_indirect = 0; } else if ( type == IMFS_FIFO ) { node->info.fifo.pipe = NULL; 4a058: 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; 4a05c: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 4a060: 2b4b 0008 movel %a3,%a5@(8) <== NOT EXECUTED node->st_ino = ++fs_info->ino_count; 4a064: 5280 addql #1,%d0 <== NOT EXECUTED 4a066: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 4a06a: 2b40 0034 movel %d0,%a5@(52) <== NOT EXECUTED 4a06e: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4a070: 486b 004c pea %a3@(76) <== NOT EXECUTED 4a074: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 4a07a: 508f addql #8,%sp <== NOT EXECUTED 4a07c: 6000 ff26 braw 49fa4 <== NOT EXECUTED } 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; node->info.linearfile.direct = 0; 4a080: 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; 4a084: 4280 clrl %d0 <== NOT EXECUTED 4a086: 4281 clrl %d1 <== NOT EXECUTED } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 4a088: 2b4b 0008 movel %a3,%a5@(8) <== 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; 4a08c: 2b40 004c movel %d0,%a5@(76) <== NOT EXECUTED 4a090: 2b41 0050 movel %d1,%a5@(80) <== 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; 4a094: 202a 0004 movel %a2@(4),%d0 <== NOT EXECUTED 4a098: 5280 addql #1,%d0 <== NOT EXECUTED 4a09a: 2540 0004 movel %d0,%a2@(4) <== NOT EXECUTED 4a09e: 2b40 0034 movel %d0,%a5@(52) <== NOT EXECUTED 4a0a2: 2f0d movel %a5,%sp@- <== NOT EXECUTED 4a0a4: 486b 004c pea %a3@(76) <== NOT EXECUTED 4a0a8: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 4a0ae: 508f addql #8,%sp <== NOT EXECUTED 4a0b0: 6000 fef2 braw 49fa4 <== NOT EXECUTED } 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; node->info.file.indirect = 0; 4a0b4: 42ad 0054 clrl %a5@(84) 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; 4a0b8: 4280 clrl %d0 4a0ba: 4281 clrl %d1 node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; 4a0bc: 42ad 0058 clrl %a5@(88) 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; 4a0c0: 2b40 004c movel %d0,%a5@(76) 4a0c4: 2b41 0050 movel %d1,%a5@(80) node->info.file.indirect = 0; node->info.file.doubly_indirect = 0; node->info.file.triply_indirect = 0; 4a0c8: 42ad 005c clrl %a5@(92) /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; node->st_ino = ++fs_info->ino_count; 4a0cc: 202a 0004 movel %a2@(4),%d0 4a0d0: 5280 addql #1,%d0 } /* * This node MUST have a parent, so put it in that directory list. */ node->Parent = parent; 4a0d2: 2b4b 0008 movel %a3,%a5@(8) node->st_ino = ++fs_info->ino_count; 4a0d6: 2540 0004 movel %d0,%a2@(4) 4a0da: 2b40 0034 movel %d0,%a5@(52) 4a0de: 2f0d movel %a5,%sp@- 4a0e0: 486b 004c pea %a3@(76) 4a0e4: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> rtems_chain_append( &parent->info.directory.Entries, &node->Node ); return node; 4a0ea: 508f addql #8,%sp 4a0ec: 6000 feb6 braw 49fa4 =============================================================================== 0004ab08 : #include #include "imfs.h" void IMFS_create_orphan( IMFS_jnode_t *jnode ) { 4ab08: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4ab0c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab0e: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED if ( jnode->Parent != NULL ) { 4ab12: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 4ab16: 670e beqs 4ab26 <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 4ab18: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4ab1a: 4eb9 0004 6f08 jsr 46f08 <_Chain_Extract> <== NOT EXECUTED rtems_chain_extract( &jnode->Node ); jnode->Parent = NULL; 4ab20: 588f addql #4,%sp <== NOT EXECUTED 4ab22: 42aa 0008 clrl %a2@(8) <== NOT EXECUTED } --jnode->st_nlink; IMFS_update_ctime( jnode ); 4ab26: 42a7 clrl %sp@- <== NOT EXECUTED 4ab28: 486e fff8 pea %fp@(-8) <== NOT EXECUTED if ( jnode->Parent != NULL ) { rtems_chain_extract( &jnode->Node ); jnode->Parent = NULL; } --jnode->st_nlink; 4ab2c: 302a 0032 movew %a2@(50),%d0 <== NOT EXECUTED 4ab30: 5380 subql #1,%d0 <== NOT EXECUTED 4ab32: 3540 0032 movew %d0,%a2@(50) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4ab36: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4ab3c: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED 4ab42: 508f addql #8,%sp <== NOT EXECUTED } 4ab44: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4ab48: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a0f0 : return node; } IMFS_jnode_t *IMFS_create_root_node(void) { 4a0f0: 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) ); 4a0f4: 4878 41ed pea 41ed 4a0f8: 4879 0005 d450 pea 5d450 4a0fe: 4878 0001 pea 1 4a102: 4eb9 0004 9e7c jsr 49e7c if ( !node ) 4a108: 4fef 000c lea %sp@(12),%sp 4a10c: 4a80 tstl %d0 4a10e: 6716 beqs 4a126 <== NEVER TAKEN Chain_Node *tail = _Chain_Tail( the_chain ); 4a110: 2240 moveal %d0,%a1 head->next = tail; head->previous = NULL; 4a112: 2040 moveal %d0,%a0 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 ); 4a114: 43e9 0050 lea %a1@(80),%a1 4a118: 2149 004c movel %a1,%a0@(76) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 4a11c: 5989 subql #4,%a1 Chain_Node *tail = _Chain_Tail( the_chain ); head->next = tail; head->previous = NULL; 4a11e: 42a8 0050 clrl %a0@(80) */ RTEMS_INLINE_ROUTINE void _Chain_Initialize_empty( Chain_Control *the_chain ) { Chain_Node *head = _Chain_Head( the_chain ); 4a122: 2149 0054 movel %a1,%a0@(84) * NOTE: Root node is always a directory. */ rtems_chain_initialize_empty(&node->info.directory.Entries); return node; } 4a126: 4e5e unlk %fp ... =============================================================================== 00044fba : * NOTE: Assuming the "/" directory is bad. * Not checking that the starting directory is in an IMFS is bad. */ void IMFS_dump( void ) { 44fba: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 44fbe: 2079 0006 4888 moveal 64888 <_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 ) { 44fc4: 2f0a movel %a2,%sp@- <== NOT EXECUTED fprintf(stdout, "*************** Dump of Entire IMFS ***************\n" ); 44fc6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44fca: 45f9 0005 3f24 lea 53f24 ,%a2 <== NOT EXECUTED 44fd0: 4878 0034 pea 34 <== NOT EXECUTED 44fd4: 4878 0001 pea 1 <== NOT EXECUTED 44fd8: 4879 0006 2f56 pea 62f56 <== NOT EXECUTED 44fde: 4e92 jsr %a2@ <== NOT EXECUTED fprintf(stdout, "/\n" ); 44fe0: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44fe6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44fea: 4878 0002 pea 2 <== NOT EXECUTED 44fee: 4878 0001 pea 1 <== NOT EXECUTED 44ff2: 4879 0006 2f8b pea 62f8b <== NOT EXECUTED 44ff8: 4e92 jsr %a2@ <== NOT EXECUTED IMFS_dump_directory( rtems_filesystem_root.node_access, 0 ); 44ffa: 4fef 001c lea %sp@(28),%sp <== NOT EXECUTED 44ffe: 2079 0006 47c0 moveal 647c0 ,%a0 <== NOT EXECUTED 45004: 4297 clrl %sp@ <== NOT EXECUTED 45006: 2f28 0018 movel %a0@(24),%sp@- <== NOT EXECUTED 4500a: 4eb9 0004 4f2c jsr 44f2c <== NOT EXECUTED fprintf(stdout, "*************** End of Dump ***************\n" ); 45010: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 45016: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 4501a: 4878 0037 pea 37 <== NOT EXECUTED 4501e: 4878 0001 pea 1 <== NOT EXECUTED 45022: 4879 0006 2f8e pea 62f8e <== NOT EXECUTED 45028: 4e92 jsr %a2@ <== NOT EXECUTED } 4502a: 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" ); 4502e: 4fef 0018 lea %sp@(24),%sp <== NOT EXECUTED } 45032: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00044f2c : */ void IMFS_dump_directory( IMFS_jnode_t *the_directory, int level ) { 44f2c: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 44f30: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 44f34: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@ <== 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)); 44f38: 2808 movel %a0,%d4 <== NOT EXECUTED 44f3a: 0684 0000 0050 addil #80,%d4 <== NOT EXECUTED 44f40: 262e 000c movel %fp@(12),%d3 <== NOT EXECUTED * */ int IMFS_memfile_maximum_size( void ) { return IMFS_MEMFILE_MAXIMUM_SIZE; } 44f44: 2668 004c moveal %a0@(76),%a3 <== 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 ); 44f48: b88b cmpl %a3,%d4 <== NOT EXECUTED 44f4a: 6754 beqs 44fa0 <== 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 ); 44f4c: 2a03 movel %d3,%d5 <== NOT EXECUTED 44f4e: 49f9 0004 4da0 lea 44da0 ,%a4 <== NOT EXECUTED 44f54: 45f9 0005 3f24 lea 53f24 ,%a2 <== NOT EXECUTED 44f5a: 5285 addql #1,%d5 <== NOT EXECUTED 44f5c: 4bf9 0004 4f2c lea 44f2c ,%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++ ) 44f62: 4a83 tstl %d3 <== NOT EXECUTED 44f64: 6d26 blts 44f8c <== NOT EXECUTED 44f66: 4282 clrl %d2 <== NOT EXECUTED fprintf(stdout, "...." ); 44f68: 2079 0006 4888 moveal 64888 <_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++ ) 44f6e: 5282 addql #1,%d2 <== NOT EXECUTED fprintf(stdout, "...." ); 44f70: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44f74: 4878 0004 pea 4 <== NOT EXECUTED 44f78: 4878 0001 pea 1 <== NOT EXECUTED 44f7c: 4879 0006 2f51 pea 62f51 <== NOT EXECUTED 44f82: 4e92 jsr %a2@ <== 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++ ) 44f84: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 44f88: b483 cmpl %d3,%d2 <== NOT EXECUTED 44f8a: 6fdc bles 44f68 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); 44f8c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44f8e: 4e94 jsr %a4@ <== NOT EXECUTED if ( the_jnode->type == IMFS_DIRECTORY ) 44f90: 588f addql #4,%sp <== NOT EXECUTED 44f92: 7001 moveq #1,%d0 <== NOT EXECUTED 44f94: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 44f98: 6710 beqs 44faa <== 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 ) { 44f9a: 2653 moveal %a3@,%a3 <== 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 ); 44f9c: b88b cmpl %a3,%d4 <== NOT EXECUTED 44f9e: 66c2 bnes 44f62 <== NOT EXECUTED fprintf(stdout, "...." ); IMFS_print_jnode( the_jnode ); if ( the_jnode->type == IMFS_DIRECTORY ) IMFS_dump_directory( the_jnode, level + 1 ); } } 44fa0: 4cee 3c3c ffe0 moveml %fp@(-32),%d2-%d5/%a2-%a5 <== NOT EXECUTED 44fa6: 4e5e unlk %fp <== NOT EXECUTED 44fa8: 4e75 rts <== 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 ); 44faa: 2f05 movel %d5,%sp@- <== NOT EXECUTED 44fac: 2f0b movel %a3,%sp@- <== NOT EXECUTED 44fae: 4e95 jsr %a5@ <== 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 ) { 44fb0: 2653 moveal %a3@,%a3 <== 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 ); 44fb2: 508f addql #8,%sp <== 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 ); 44fb4: b88b cmpl %a3,%d4 <== NOT EXECUTED 44fb6: 66aa bnes 44f62 <== NOT EXECUTED 44fb8: 60e6 bras 44fa0 <== NOT EXECUTED =============================================================================== 0004a29c : 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 ) ) { 4a29c: 70f8 moveq #-8,%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 4a29e: 4e56 ffb0 linkw %fp,#-80 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 ) ) { 4a2a2: c0ae 0010 andl %fp@(16),%d0 const char *pathname, /* IN */ size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 4a2a6: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 4a2aa: 2a6e 0008 moveal %fp@(8),%a5 4a2ae: 246e 000c moveal %fp@(12),%a2 4a2b2: 286e 0014 moveal %fp@(20),%a4 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 ) ) { 4a2b6: 4a80 tstl %d0 4a2b8: 6600 0238 bnew 4a4f2 4a2bc: 2c0e movel %fp,%d6 4a2be: 280e movel %fp,%d4 size_t pathnamelen, /* IN */ int flags, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { int i = 0; 4a2c0: 4282 clrl %d2 4a2c2: 5986 subql #4,%d6 4a2c4: 0684 ffff ffdb addil #-37,%d4 4a2ca: 2a3c 0004 aa28 movel #305704,%d5 } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4a2d0: 2e3c 0004 a9ac movel #305580,%d7 /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4a2d6: 2654 moveal %a4@,%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 ); 4a2d8: 2f06 movel %d6,%sp@- 4a2da: 2045 moveal %d5,%a0 4a2dc: 2f04 movel %d4,%sp@- 4a2de: 2f0a movel %a2,%sp@- 4a2e0: 4875 2800 pea %a5@(00000000,%d2:l) 4a2e4: 4e90 jsr %a0@ pathnamelen -= len; i += len; if ( !pathloc->node_access ) 4a2e6: 2054 moveal %a4@,%a0 * 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 ); 4a2e8: 2600 movel %d0,%d3 pathnamelen -= len; i += len; if ( !pathloc->node_access ) 4a2ea: 4fef 0010 lea %sp@(16),%sp */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); pathnamelen -= len; 4a2ee: 202e fffc movel %fp@(-4),%d0 i += len; if ( !pathloc->node_access ) 4a2f2: 4a88 tstl %a0 4a2f4: 6700 00f8 beqw 4a3ee */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { type = IMFS_get_token( &pathname[i], pathnamelen, token, &len ); pathnamelen -= len; 4a2f8: 95c0 subal %d0,%a2 i += len; 4a2fa: d480 addl %d0,%d2 rtems_set_errno_and_return_minus_one( ENOENT ); /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 4a2fc: 4a83 tstl %d3 4a2fe: 6662 bnes 4a362 * 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 ) { 4a300: 7201 moveq #1,%d1 4a302: b2a8 0048 cmpl %a0@(72),%d1 4a306: 6600 0132 bnew 4a43a if ( node->info.directory.mt_fs != NULL ) { 4a30a: 2068 0058 moveal %a0@(88),%a0 4a30e: 4a88 tstl %a0 4a310: 6700 0128 beqw 4a43a 4a314: 28a8 001c movel %a0@(28),%a4@ <== NOT EXECUTED 4a318: 2268 0028 moveal %a0@(40),%a1 <== NOT EXECUTED 4a31c: 2628 0020 movel %a0@(32),%d3 <== NOT EXECUTED 4a320: 2228 0024 movel %a0@(36),%d1 <== NOT EXECUTED 4a324: 2028 002c movel %a0@(44),%d0 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalpath_h)( &pathname[i-len], 4a328: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4a32a: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a32e: 206e fffc moveal %fp@(-4),%a0 <== NOT EXECUTED 4a332: 4872 8800 pea %a2@(00000000,%a0:l) <== NOT EXECUTED 4a336: 9488 subl %a0,%d2 <== NOT EXECUTED 4a338: 4875 2800 pea %a5@(00000000,%d2:l) <== NOT EXECUTED 4a33c: 2051 moveal %a1@,%a0 <== NOT EXECUTED * * NOTE: The behavior of stat() on a mount point appears to be questionable. */ if ( node->type == IMFS_DIRECTORY ) { if ( node->info.directory.mt_fs != NULL ) { 4a33e: 2943 0004 movel %d3,%a4@(4) <== NOT EXECUTED 4a342: 2941 0008 movel %d1,%a4@(8) <== NOT EXECUTED 4a346: 2949 000c movel %a1,%a4@(12) <== NOT EXECUTED 4a34a: 2940 0010 movel %d0,%a4@(16) <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalpath_h)( &pathname[i-len], 4a34e: 4e90 jsr %a0@ <== NOT EXECUTED 4a350: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4a354: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a356: 2003 movel %d3,%d0 4a358: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 4a35e: 4e5e unlk %fp 4a360: 4e75 rts /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) 4a362: 7001 moveq #1,%d0 4a364: b0ab 0048 cmpl %a3@(72),%d0 4a368: 6700 00b8 beqw 4a422 if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 4a36c: 2648 moveal %a0,%a3 switch( type ) { 4a36e: 7003 moveq #3,%d0 4a370: b083 cmpl %d3,%d0 4a372: 671c beqs 4a390 4a374: 7204 moveq #4,%d1 4a376: b283 cmpl %d3,%d1 4a378: 6700 008e beqw 4a408 4a37c: 103c 0002 moveb #2,%d0 4a380: b083 cmpl %d3,%d0 4a382: 6748 beqs 4a3cc <== NEVER TAKEN /* * Evaluate all tokens until we are done or an error occurs. */ while( (type != IMFS_NO_MORE_PATH) && (type != IMFS_INVALID_TOKEN) ) { 4a384: 7004 moveq #4,%d0 4a386: b083 cmpl %d3,%d0 4a388: 6600 ff4e bnew 4a2d8 4a38c: 6000 ff72 braw 4a300 <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { 4a390: 2028 0048 movel %a0@(72),%d0 4a394: 7203 moveq #3,%d1 4a396: b280 cmpl %d0,%d1 4a398: 6700 00d8 beqw 4a472 * It would be a design error if we evaluated the link and * was broken. */ IMFS_assert( node ); } else if ( node->type == IMFS_SYM_LINK ) { 4a39c: 7204 moveq #4,%d1 4a39e: b280 cmpl %d0,%d1 4a3a0: 6700 0134 beqw 4a4d6 } /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 4a3a4: 7201 moveq #1,%d1 4a3a6: b280 cmpl %d0,%d1 4a3a8: 6600 0162 bnew 4a50c /* * 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 ) { 4a3ac: 206b 0058 moveal %a3@(88),%a0 4a3b0: 4a88 tstl %a0 4a3b2: 6600 ff60 bnew 4a314 } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4a3b6: 2f04 movel %d4,%sp@- 4a3b8: 2047 moveal %d7,%a0 4a3ba: 2f0b movel %a3,%sp@- 4a3bc: 4e90 jsr %a0@ if ( !node ) 4a3be: 508f addql #8,%sp } /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4a3c0: 2640 moveal %d0,%a3 if ( !node ) 4a3c2: 4a80 tstl %d0 4a3c4: 6728 beqs 4a3ee /* * Set the node access to the point we have found. */ pathloc->node_access = node; 4a3c6: 288b movel %a3,%a4@ 4a3c8: 6000 ff0e braw 4a2d8 case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 4a3cc: 2279 0005 e530 moveal 5e530 ,%a1 <== NOT EXECUTED 4a3d2: b1e9 0018 cmpal %a1@(24),%a0 <== NOT EXECUTED 4a3d6: 6700 ff00 beqw 4a2d8 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access) { 4a3da: 226c 0010 moveal %a4@(16),%a1 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 4a3de: b1e9 001c cmpal %a1@(28),%a0 <== NOT EXECUTED 4a3e2: 6700 00a4 beqw 4a488 <== NOT EXECUTED pathnamelen+len, flags,pathloc); } } else { if ( !node->Parent ) 4a3e6: 2668 0008 moveal %a0@(8),%a3 <== NOT EXECUTED 4a3ea: 4a8b tstl %a3 <== NOT EXECUTED 4a3ec: 66d8 bnes 4a3c6 <== NOT EXECUTED /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); if ( !node ) rtems_set_errno_and_return_minus_one( ENOENT ); 4a3ee: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> 4a3f4: 76ff moveq #-1,%d3 4a3f6: 7a02 moveq #2,%d5 4a3f8: 2040 moveal %d0,%a0 if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a3fa: 2003 movel %d3,%d0 /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); if ( !node ) rtems_set_errno_and_return_minus_one( ENOENT ); 4a3fc: 2085 movel %d5,%a0@ if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a3fe: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 4a404: 4e5e unlk %fp 4a406: 4e75 rts case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4a408: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a40e: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a410: 785b moveq #91,%d4 <== NOT EXECUTED 4a412: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a414: 2003 movel %d3,%d0 <== NOT EXECUTED case IMFS_NO_MORE_PATH: case IMFS_CURRENT_DIR: break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4a416: 2084 movel %d4,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a418: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a41e: 4e5e unlk %fp <== NOT EXECUTED 4a420: 4e75 rts <== NOT EXECUTED /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 4a422: 4878 0001 pea 1 4a426: 2f0c movel %a4,%sp@- 4a428: 4eb9 0004 a1b6 jsr 4a1b6 4a42e: 508f addql #8,%sp 4a430: 4a80 tstl %d0 4a432: 6724 beqs 4a458 <== NEVER TAKEN 4a434: 2054 moveal %a4@,%a0 4a436: 6000 ff34 braw 4a36c flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 4a43a: 2f0c movel %a4,%sp@- 4a43c: 4eb9 0004 a12c jsr 4a12c /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 4a442: 2eae 0010 movel %fp@(16),%sp@ flags, pathloc ); } else { result = IMFS_Set_handlers( pathloc ); } } else { result = IMFS_Set_handlers( pathloc ); 4a446: 2600 movel %d0,%d3 /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) 4a448: 2f0c movel %a4,%sp@- 4a44a: 4eb9 0004 a1b6 jsr 4a1b6 4a450: 508f addql #8,%sp 4a452: 4a80 tstl %d0 4a454: 6600 ff00 bnew 4a356 rtems_set_errno_and_return_minus_one( EACCES ); 4a458: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a45e: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a460: 740d moveq #13,%d2 <== NOT EXECUTED 4a462: 2040 moveal %d0,%a0 <== NOT EXECUTED return result; } 4a464: 2003 movel %d3,%d0 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a466: 2082 movel %d2,%a0@ <== NOT EXECUTED return result; } 4a468: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a46e: 4e5e unlk %fp <== NOT EXECUTED 4a470: 4e75 rts <== NOT EXECUTED case IMFS_NAME: /* * If we are at a link follow it. */ if ( node->type == IMFS_HARD_LINK ) { IMFS_evaluate_hard_link( pathloc, 0 ); 4a472: 42a7 clrl %sp@- <== NOT EXECUTED 4a474: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4a476: 4eb9 0004 a250 jsr 4a250 <== NOT EXECUTED node = pathloc->node_access; 4a47c: 2654 moveal %a4@,%a3 <== NOT EXECUTED 4a47e: 508f addql #8,%sp <== NOT EXECUTED 4a480: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 4a484: 6000 ff1e braw 4a3a4 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 4a488: 28a9 0008 movel %a1@(8),%a4@ <== NOT EXECUTED 4a48c: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 4a490: 2629 000c movel %a1@(12),%d3 <== NOT EXECUTED 4a494: 2229 0010 movel %a1@(16),%d1 <== NOT EXECUTED 4a498: 2029 0018 movel %a1@(24),%d0 <== 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; *pathloc = newloc; return (*pathloc->ops->evalpath_h)(&(pathname[i-len]), 4a49c: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4a49e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a4a2: 226e fffc moveal %fp@(-4),%a1 <== NOT EXECUTED 4a4a6: 4872 9800 pea %a2@(00000000,%a1:l) <== NOT EXECUTED 4a4aa: 9489 subl %a1,%d2 <== NOT EXECUTED 4a4ac: 4875 2800 pea %a5@(00000000,%d2:l) <== NOT EXECUTED 4a4b0: 2250 moveal %a0@,%a1 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == 4a4b2: 2943 0004 movel %d3,%a4@(4) <== NOT EXECUTED 4a4b6: 2941 0008 movel %d1,%a4@(8) <== NOT EXECUTED 4a4ba: 2948 000c movel %a0,%a4@(12) <== NOT EXECUTED 4a4be: 2940 0010 movel %d0,%a4@(16) <== 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; *pathloc = newloc; return (*pathloc->ops->evalpath_h)(&(pathname[i-len]), 4a4c2: 4e91 jsr %a1@ <== NOT EXECUTED 4a4c4: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4a4c8: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a4ca: 2003 movel %d3,%d0 <== NOT EXECUTED 4a4cc: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a4d2: 4e5e unlk %fp <== NOT EXECUTED 4a4d4: 4e75 rts <== NOT EXECUTED * was broken. */ IMFS_assert( node ); } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_sym_link( pathloc, 0 ); 4a4d6: 42a7 clrl %sp@- <== NOT EXECUTED 4a4d8: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4a4da: 4eb9 0004 a534 jsr 4a534 <== NOT EXECUTED /* * In contrast to a hard link, it is possible to have a broken * symbolic link. */ node = pathloc->node_access; 4a4e0: 2654 moveal %a4@,%a3 <== NOT EXECUTED if ( result == -1 ) 4a4e2: 508f addql #8,%sp <== NOT EXECUTED 4a4e4: 72ff moveq #-1,%d1 <== NOT EXECUTED 4a4e6: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a4e8: 673c beqs 4a526 <== NOT EXECUTED /* * In contrast to a hard link, it is possible to have a broken * symbolic link. */ node = pathloc->node_access; 4a4ea: 202b 0048 movel %a3@(72),%d0 <== NOT EXECUTED 4a4ee: 6000 feb4 braw 4a3a4 <== NOT EXECUTED rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) { rtems_set_errno_and_return_minus_one( EIO ); 4a4f2: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a4f8: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a4fa: 7e05 moveq #5,%d7 <== NOT EXECUTED 4a4fc: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a4fe: 2003 movel %d3,%d0 <== NOT EXECUTED rtems_filesystem_location_info_t newloc; IMFS_jnode_t *node; int result; if ( !rtems_libio_is_valid_perms( flags ) ) { rtems_set_errno_and_return_minus_one( EIO ); 4a500: 2087 movel %d7,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a502: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a508: 4e5e unlk %fp <== NOT EXECUTED 4a50a: 4e75 rts <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4a50c: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a512: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a514: 7c14 moveq #20,%d6 <== NOT EXECUTED 4a516: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a518: 2003 movel %d3,%d0 <== NOT EXECUTED /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4a51a: 2086 movel %d6,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a51c: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a522: 4e5e unlk %fp <== NOT EXECUTED 4a524: 4e75 rts <== NOT EXECUTED 4a526: 2600 movel %d0,%d3 <== NOT EXECUTED 4a528: 2003 movel %d3,%d0 <== NOT EXECUTED 4a52a: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a530: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a676 : int IMFS_evaluate_for_make( const char *path, /* IN */ rtems_filesystem_location_info_t *pathloc, /* IN/OUT */ const char **name /* OUT */ ) { 4a676: 4e56 ffb0 linkw %fp,#-80 4a67a: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ 4a67e: 286e 0008 moveal %fp@(8),%a4 4a682: 2e0e movel %fp,%d7 4a684: 2c0e movel %fp,%d6 int i = 0; 4a686: 4284 clrl %d4 4a688: 5987 subql #4,%d7 4a68a: 0686 ffff ffdb addil #-37,%d6 4a690: 4bf9 0004 aa28 lea 4aa28 ,%a5 node = pathloc->node_access; /* * Get the path length. */ pathlen = strlen( path ); 4a696: 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 */ ) { 4a698: 266e 000c moveal %fp@(12),%a3 node = pathloc->node_access; /* * Get the path length. */ pathlen = strlen( path ); 4a69c: 4eb9 0004 fd3c jsr 4fd3c /* * This was filled in by the caller and is valid in the * mount table. */ node = pathloc->node_access; 4a6a2: 2453 moveal %a3@,%a2 /* * Get the path length. */ pathlen = strlen( path ); 4a6a4: 588f addql #4,%sp 4a6a6: 2400 movel %d0,%d2 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 4a6a8: 2f07 movel %d7,%sp@- 4a6aa: 2f06 movel %d6,%sp@- 4a6ac: 2f02 movel %d2,%sp@- 4a6ae: 4874 4800 pea %a4@(00000000,%d4:l) 4a6b2: 4e95 jsr %a5@ pathlen -= len; 4a6b4: 2a2e fffc movel %fp@(-4),%d5 * Evaluate all tokens until we are done or an error occurs. */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); 4a6b8: 2600 movel %d0,%d3 pathlen -= len; i += len; if ( !pathloc->node_access ) 4a6ba: 4fef 0010 lea %sp@(16),%sp */ while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); pathlen -= len; 4a6be: 9485 subl %d5,%d2 i += len; if ( !pathloc->node_access ) 4a6c0: 2053 moveal %a3@,%a0 4a6c2: 4a88 tstl %a0 4a6c4: 6700 00ca beqw 4a790 /* * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) 4a6c8: 4a80 tstl %d0 4a6ca: 6742 beqs 4a70e <== NEVER TAKEN if ( node->type == IMFS_DIRECTORY ) 4a6cc: 7001 moveq #1,%d0 4a6ce: b0aa 0048 cmpl %a2@(72),%d0 4a6d2: 6700 00d6 beqw 4a7aa while( !done ) { type = IMFS_get_token( &path[i], pathlen, token, &len ); pathlen -= len; i += len; 4a6d6: d885 addl %d5,%d4 if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; 4a6d8: 2448 moveal %a0,%a2 switch( type ) { 4a6da: 7002 moveq #2,%d0 4a6dc: b083 cmpl %d3,%d0 4a6de: 6700 008e beqw 4a76e 4a6e2: 6426 bccs 4a70a 4a6e4: 7203 moveq #3,%d1 4a6e6: b283 cmpl %d3,%d1 4a6e8: 673e beqs 4a728 <== ALWAYS TAKEN 4a6ea: 7004 moveq #4,%d0 <== NOT EXECUTED 4a6ec: b083 cmpl %d3,%d0 <== NOT EXECUTED 4a6ee: 66b8 bnes 4a6a8 <== NOT EXECUTED case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); break; case IMFS_INVALID_TOKEN: rtems_set_errno_and_return_minus_one( ENAMETOOLONG ); 4a6f0: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a6f6: 7c5b moveq #91,%d6 <== NOT EXECUTED 4a6f8: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a6fa: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a6fc: 2086 movel %d6,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a6fe: 2003 movel %d3,%d0 4a700: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 4a706: 4e5e unlk %fp 4a708: 4e75 rts if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) rtems_set_errno_and_return_minus_one( EACCES ); node = pathloc->node_access; switch( type ) { 4a70a: 4a83 tstl %d3 4a70c: 669a bnes 4a6a8 <== ALWAYS TAKEN pathloc->node_access = node; break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 4a70e: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> 4a714: 76ff moveq #-1,%d3 4a716: 7e11 moveq #17,%d7 4a718: 2040 moveal %d0,%a0 if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a71a: 2003 movel %d3,%d0 pathloc->node_access = node; break; case IMFS_NO_MORE_PATH: rtems_set_errno_and_return_minus_one( EEXIST ); 4a71c: 2087 movel %d7,%a0@ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a71e: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 4a724: 4e5e unlk %fp 4a726: 4e75 rts pathloc->node_access = node; break; case IMFS_NAME: if ( node->type == IMFS_HARD_LINK ) { 4a728: 2028 0048 movel %a0@(72),%d0 4a72c: 7203 moveq #3,%d1 4a72e: b280 cmpl %d0,%d1 4a730: 6700 014e beqw 4a880 result = IMFS_evaluate_link( pathloc, 0 ); if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { 4a734: 7204 moveq #4,%d1 4a736: b280 cmpl %d0,%d1 4a738: 6700 0146 beqw 4a880 if ( result == -1 ) return -1; } node = pathloc->node_access; if ( !node ) 4a73c: 4a8a tstl %a2 4a73e: 6700 015c beqw 4a89c /* * Only a directory can be decended into. */ if ( node->type != IMFS_DIRECTORY ) 4a742: 7001 moveq #1,%d0 4a744: b0aa 0048 cmpl %a2@(72),%d0 4a748: 6600 0152 bnew 4a89c /* * 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 ) { 4a74c: 206a 0058 moveal %a2@(88),%a0 4a750: 4a88 tstl %a0 4a752: 6600 0162 bnew 4a8b6 /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4a756: 2f06 movel %d6,%sp@- 4a758: 2f0a movel %a2,%sp@- 4a75a: 4eb9 0004 a9ac jsr 4a9ac /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 4a760: 508f addql #8,%sp /* * Otherwise find the token name in the present location. */ node = IMFS_find_match_in_dir( node, token ); 4a762: 2440 moveal %d0,%a2 /* * If there is no node we have found the name of the node we * wish to create. */ if ( ! node ) 4a764: 4a80 tstl %d0 4a766: 675a beqs 4a7c2 done = true; else pathloc->node_access = node; 4a768: 268a movel %a2,%a3@ 4a76a: 6000 ff3c braw 4a6a8 case IMFS_UP_DIR: /* * Am I at the root of all filesystems? (chroot'ed?) */ if ( pathloc->node_access == rtems_filesystem_root.node_access ) 4a76e: 2279 0005 e530 moveal 5e530 ,%a1 <== NOT EXECUTED 4a774: b1e9 0018 cmpal %a1@(24),%a0 <== NOT EXECUTED 4a778: 6700 ff2e beqw 4a6a8 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 4a77c: 226b 0010 moveal %a3@(16),%a1 <== NOT EXECUTED 4a780: b1e9 001c cmpal %a1@(28),%a0 <== NOT EXECUTED 4a784: 6700 00b0 beqw 4a836 <== NOT EXECUTED *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); } } else { if ( !node->Parent ) 4a788: 2468 0008 moveal %a0@(8),%a2 <== NOT EXECUTED 4a78c: 4a8a tstl %a2 <== NOT EXECUTED 4a78e: 66d8 bnes 4a768 <== NOT EXECUTED * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { if ( !IMFS_is_separator( path[ i ] ) ) rtems_set_errno_and_return_minus_one( ENOENT ); 4a790: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a796: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a798: 7a02 moveq #2,%d5 <== NOT EXECUTED 4a79a: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a79c: 2003 movel %d3,%d0 <== NOT EXECUTED * Verify there is not any invalid stuff at the end of the name. */ for( ; path[i] != '\0'; i++) { if ( !IMFS_is_separator( path[ i ] ) ) rtems_set_errno_and_return_minus_one( ENOENT ); 4a79e: 2085 movel %d5,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a7a0: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a7a6: 4e5e unlk %fp <== NOT EXECUTED 4a7a8: 4e75 rts <== NOT EXECUTED * I cannot move out of this directory without execute permission. */ if ( type != IMFS_NO_MORE_PATH ) if ( node->type == IMFS_DIRECTORY ) if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_SEARCH ) ) 4a7aa: 4878 0001 pea 1 4a7ae: 2f0b movel %a3,%sp@- 4a7b0: 4eb9 0004 a1b6 jsr 4a1b6 4a7b6: 508f addql #8,%sp 4a7b8: 4a80 tstl %d0 4a7ba: 6760 beqs 4a81c <== NEVER TAKEN 4a7bc: 2053 moveal %a3@,%a0 4a7be: 6000 ff16 braw 4a6d6 case IMFS_CURRENT_DIR: break; } } *name = &path[ i - len ]; 4a7c2: 2004 movel %d4,%d0 4a7c4: 90ae fffc subl %fp@(-4),%d0 4a7c8: d08c addl %a4,%d0 4a7ca: 206e 0010 moveal %fp@(16),%a0 4a7ce: 2080 movel %d0,%a0@ /* * 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++) { 4a7d0: 1034 4800 moveb %a4@(00000000,%d4:l),%d0 4a7d4: 671a beqs 4a7f0 <== ALWAYS TAKEN 4a7d6: 4bf9 0004 3c2c lea 43c2c ,%a5<== NOT EXECUTED * 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( 4a7dc: 45f4 4801 lea %a4@(00000001,%d4:l),%a2 <== 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++) { if ( !IMFS_is_separator( path[ i ] ) ) 4a7e0: 49c0 extbl %d0 <== NOT EXECUTED 4a7e2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a7e4: 4e95 jsr %a5@ <== NOT EXECUTED 4a7e6: 588f addql #4,%sp <== NOT EXECUTED 4a7e8: 4a80 tstl %d0 <== NOT EXECUTED 4a7ea: 67a4 beqs 4a790 <== 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++) { 4a7ec: 101a moveb %a2@+,%d0 <== NOT EXECUTED 4a7ee: 66f0 bnes 4a7e0 <== NOT EXECUTED /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 4a7f0: 2f0b movel %a3,%sp@- 4a7f2: 4eb9 0004 a12c jsr 4a12c /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 4a7f8: 2053 moveal %a3@,%a0 /* * Verify we can execute and write to this directory. */ result = IMFS_Set_handlers( pathloc ); 4a7fa: 2600 movel %d0,%d3 /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) 4a7fc: 588f addql #4,%sp 4a7fe: 7001 moveq #1,%d0 4a800: b0a8 0048 cmpl %a0@(72),%d0 4a804: 6600 0096 bnew 4a89c /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) 4a808: 4878 0003 pea 3 4a80c: 2f0b movel %a3,%sp@- 4a80e: 4eb9 0004 a1b6 jsr 4a1b6 4a814: 508f addql #8,%sp 4a816: 4a80 tstl %d0 4a818: 6600 fee4 bnew 4a6fe rtems_set_errno_and_return_minus_one( EACCES ); 4a81c: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a822: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a824: 740d moveq #13,%d2 <== NOT EXECUTED 4a826: 2040 moveal %d0,%a0 <== NOT EXECUTED return result; } 4a828: 2003 movel %d3,%d0 <== NOT EXECUTED /* * We must have Write and execute permission on the returned node. */ if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a82a: 2082 movel %d2,%a0@ <== NOT EXECUTED return result; } 4a82c: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a832: 4e5e unlk %fp <== NOT EXECUTED 4a834: 4e75 rts <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 4a836: 2429 000c movel %a1@(12),%d2 <== NOT EXECUTED break; } else { newloc = pathloc->mt_entry->mt_point_node; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a83a: 98ae fffc subl %fp@(-4),%d4 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 4a83e: 26a9 0008 movel %a1@(8),%a3@ <== NOT EXECUTED 4a842: 2069 0014 moveal %a1@(20),%a0 <== NOT EXECUTED 4a846: 2229 0010 movel %a1@(16),%d1 <== NOT EXECUTED 4a84a: 2029 0018 movel %a1@(24),%d0 <== NOT EXECUTED break; } else { newloc = pathloc->mt_entry->mt_point_node; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a84e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a852: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a854: 4874 4800 pea %a4@(00000000,%d4:l) <== NOT EXECUTED 4a858: 2268 0004 moveal %a0@(4),%a1 <== NOT EXECUTED /* * Am I at the root of this mounted filesystem? */ if (pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access){ 4a85c: 2742 0004 movel %d2,%a3@(4) <== NOT EXECUTED 4a860: 2741 0008 movel %d1,%a3@(8) <== NOT EXECUTED 4a864: 2748 000c movel %a0,%a3@(12) <== NOT EXECUTED 4a868: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED break; } else { newloc = pathloc->mt_entry->mt_point_node; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a86c: 4e91 jsr %a1@ <== NOT EXECUTED 4a86e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4a872: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a874: 2003 movel %d3,%d0 <== NOT EXECUTED 4a876: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a87c: 4e5e unlk %fp <== NOT EXECUTED 4a87e: 4e75 rts <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 4a880: 42a7 clrl %sp@- <== NOT EXECUTED 4a882: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a884: 4eb9 0004 a5bc jsr 4a5bc <== NOT EXECUTED if ( result == -1 ) 4a88a: 508f addql #8,%sp <== NOT EXECUTED if ( result == -1 ) return -1; } else if ( node->type == IMFS_SYM_LINK ) { result = IMFS_evaluate_link( pathloc, 0 ); 4a88c: 2600 movel %d0,%d3 <== NOT EXECUTED if ( result == -1 ) 4a88e: 70ff moveq #-1,%d0 <== NOT EXECUTED 4a890: b083 cmpl %d3,%d0 <== NOT EXECUTED 4a892: 6700 fe6a beqw 4a6fe <== NOT EXECUTED 4a896: 2453 moveal %a3@,%a2 <== NOT EXECUTED 4a898: 6000 fea2 braw 4a73c <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4a89c: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a8a2: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a8a4: 7814 moveq #20,%d4 <== NOT EXECUTED 4a8a6: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a8a8: 2003 movel %d3,%d0 <== NOT EXECUTED /* * The returned node must be a directory */ node = pathloc->node_access; if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 4a8aa: 2084 movel %d4,%a0@ <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a8ac: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a8b2: 4e5e unlk %fp <== NOT EXECUTED 4a8b4: 4e75 rts <== 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 ) { 4a8b6: 2428 0020 movel %a0@(32),%d2 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a8ba: 98ae fffc subl %fp@(-4),%d4 <== 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 ) { 4a8be: 26a8 001c movel %a0@(28),%a3@ <== NOT EXECUTED 4a8c2: 2268 0028 moveal %a0@(40),%a1 <== NOT EXECUTED 4a8c6: 2228 0024 movel %a0@(36),%d1 <== NOT EXECUTED 4a8ca: 2028 002c movel %a0@(44),%d0 <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a8ce: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 4a8d2: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a8d4: 4874 4800 pea %a4@(00000000,%d4:l) <== NOT EXECUTED 4a8d8: 2069 0004 moveal %a1@(4),%a0 <== 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 ) { 4a8dc: 2742 0004 movel %d2,%a3@(4) <== NOT EXECUTED 4a8e0: 2741 0008 movel %d1,%a3@(8) <== NOT EXECUTED 4a8e4: 2749 000c movel %a1,%a3@(12) <== NOT EXECUTED 4a8e8: 2740 0010 movel %d0,%a3@(16) <== NOT EXECUTED newloc = node->info.directory.mt_fs->mt_fs_root; *pathloc = newloc; return (*pathloc->ops->evalformake_h)( &path[i-len], pathloc, name ); 4a8ec: 4e90 jsr %a0@ <== NOT EXECUTED 4a8ee: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4a8f2: 2600 movel %d0,%d3 <== NOT EXECUTED if ( !IMFS_evaluate_permission( pathloc, RTEMS_LIBIO_PERMS_WX ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a8f4: 2003 movel %d3,%d0 <== NOT EXECUTED 4a8f6: 4cee 3cfc ffb0 moveml %fp@(-80),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4a8fc: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a250 : int IMFS_evaluate_hard_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a250: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4a254: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a256: 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; 4a25a: 2052 moveal %a2@,%a0 <== NOT EXECUTED 4a25c: 24a8 004c movel %a0@(76),%a2@ <== NOT EXECUTED IMFS_Set_handlers( node ); 4a260: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a262: 4eb9 0004 a12c jsr 4a12c <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4a268: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4a26c: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a26e: 4eb9 0004 a1b6 jsr 4a1b6 <== NOT EXECUTED 4a274: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4a278: 4a80 tstl %d0 <== NOT EXECUTED 4a27a: 670a beqs 4a286 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a27c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); return result; 4a280: 4280 clrl %d0 <== NOT EXECUTED } 4a282: 4e5e unlk %fp <== NOT EXECUTED 4a284: 4e75 rts <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a286: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED return result; } 4a28c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a290: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a292: 720d moveq #13,%d1 <== NOT EXECUTED 4a294: 70ff moveq #-1,%d0 <== NOT EXECUTED return result; } 4a296: 4e5e unlk %fp <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a298: 2081 movel %d1,%a0@ <== NOT EXECUTED return result; } =============================================================================== 0004a5bc : */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a5bc: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; rtems_set_errno_and_return_minus_one( ELOOP ); 4a5c0: 2079 0005 e530 moveal 5e530 ,%a0 <== NOT EXECUTED */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a5c6: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== NOT EXECUTED 4a5ca: 266e 0008 moveal %fp@(8),%a3 <== 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 ); 4a5ce: 4bf9 0004 a534 lea 4a534 ,%a5 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 4a5d4: 49f9 0004 a250 lea 4a250 ,%a4 <== NOT EXECUTED */ int IMFS_evaluate_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a5da: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED IMFS_jnode_t *jnode; int result = 0; do { jnode = node->node_access; 4a5de: 2453 moveal %a3@,%a2 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 4a5e0: 4281 clrl %d1 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 4a5e2: 3028 0030 movew %a0@(48),%d0 <== NOT EXECUTED 4a5e6: 5280 addql #1,%d0 <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 4a5e8: 3200 movew %d0,%d1 <== NOT EXECUTED /* * Increment and check the link counter. */ rtems_filesystem_link_counts ++; 4a5ea: 3140 0030 movew %d0,%a0@(48) <== NOT EXECUTED if ( rtems_filesystem_link_counts > MAXSYMLINK ) { 4a5ee: 7005 moveq #5,%d0 <== NOT EXECUTED 4a5f0: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a5f2: 6564 bcss 4a658 <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) 4a5f4: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 4a5f8: 7203 moveq #3,%d1 <== NOT EXECUTED 4a5fa: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a5fc: 6740 beqs 4a63e <== NOT EXECUTED result = IMFS_evaluate_hard_link( node, flags ); else if (jnode->type == IMFS_SYM_LINK ) 4a5fe: 7204 moveq #4,%d1 <== NOT EXECUTED 4a600: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a602: 671a beqs 4a61e <== NOT EXECUTED result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || 4a604: 5780 subql #3,%d0 <== NOT EXECUTED 4a606: 7201 moveq #1,%d1 <== NOT EXECUTED 4a608: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a60a: 64d2 bccs 4a5de <== NOT EXECUTED 4a60c: 4280 clrl %d0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 4a60e: 4241 clrw %d1 <== NOT EXECUTED 4a610: 3141 0030 movew %d1,%a0@(48) <== NOT EXECUTED return result; } 4a614: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED 4a61a: 4e5e unlk %fp <== NOT EXECUTED 4a61c: 4e75 rts <== 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 ); 4a61e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a620: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a622: 4e95 jsr %a5@ <== NOT EXECUTED 4a624: 508f addql #8,%sp <== NOT EXECUTED } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 4a626: 4a80 tstl %d0 <== NOT EXECUTED 4a628: 6620 bnes 4a64a <== NOT EXECUTED 4a62a: 202a 0048 movel %a2@(72),%d0 <== 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 ) || 4a62e: 7201 moveq #1,%d1 <== NOT EXECUTED 4a630: 5780 subql #3,%d0 <== NOT EXECUTED ( jnode->type == IMFS_HARD_LINK ) ) ); 4a632: 2079 0005 e530 moveal 5e530 ,%a0 <== 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 ) || 4a638: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a63a: 64a2 bccs 4a5de <== NOT EXECUTED 4a63c: 60ce bras 4a60c <== NOT EXECUTED /* * Follow the Link node. */ if ( jnode->type == IMFS_HARD_LINK ) result = IMFS_evaluate_hard_link( node, flags ); 4a63e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a640: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a642: 4e94 jsr %a4@ <== NOT EXECUTED 4a644: 508f addql #8,%sp <== NOT EXECUTED else if (jnode->type == IMFS_SYM_LINK ) result = IMFS_evaluate_sym_link( node, flags ); } while ( ( result == 0 ) && ( ( jnode->type == IMFS_SYM_LINK ) || ( jnode->type == IMFS_HARD_LINK ) ) ); 4a646: 4a80 tstl %d0 <== NOT EXECUTED 4a648: 67e0 beqs 4a62a <== NOT EXECUTED 4a64a: 2079 0005 e530 moveal 5e530 ,%a0 <== NOT EXECUTED /* * Clear link counter. */ rtems_filesystem_link_counts = 0; 4a650: 4241 clrw %d1 <== NOT EXECUTED 4a652: 3141 0030 movew %d1,%a0@(48) <== NOT EXECUTED 4a656: 60bc bras 4a614 <== NOT EXECUTED * Increment and check the link counter. */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; 4a658: 4241 clrw %d1 <== NOT EXECUTED 4a65a: 3141 0030 movew %d1,%a0@(48) <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ELOOP ); 4a65e: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a664: 725c moveq #92,%d1 <== NOT EXECUTED 4a666: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a668: 70ff moveq #-1,%d0 <== NOT EXECUTED */ rtems_filesystem_link_counts = 0; return result; } 4a66a: 4cee 3c04 ffec moveml %fp@(-20),%d2/%a2-%a5 <== NOT EXECUTED */ rtems_filesystem_link_counts ++; if ( rtems_filesystem_link_counts > MAXSYMLINK ) { rtems_filesystem_link_counts = 0; rtems_set_errno_and_return_minus_one( ELOOP ); 4a670: 2081 movel %d1,%a0@ <== NOT EXECUTED */ rtems_filesystem_link_counts = 0; return result; } 4a672: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a1b6 : uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) 4a1b6: 70f8 moveq #-8,%d0 */ int IMFS_evaluate_permission( rtems_filesystem_location_info_t *node, int flags ) { 4a1b8: 4e56 fff4 linkw %fp,#-12 4a1bc: 48d7 040c moveml %d2-%d3/%a2,%sp@ 4a1c0: 242e 000c movel %fp@(12),%d2 uid_t st_uid; gid_t st_gid; IMFS_jnode_t *jnode; int flags_to_test; if ( !rtems_libio_is_valid_perms( flags ) ) 4a1c4: c082 andl %d2,%d0 4a1c6: 6670 bnes 4a238 <== NEVER TAKEN rtems_set_errno_and_return_minus_one( EPERM ); jnode = node->node_access; 4a1c8: 206e 0008 moveal %fp@(8),%a0 4a1cc: 2450 moveal %a0@,%a2 #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 4a1ce: 4eb9 0004 b000 jsr 4b000 4a1d4: 3600 movew %d0,%d3 st_gid = getegid(); 4a1d6: 4eb9 0004 afec jsr 4afec * Check if I am owner or a group member or someone else. */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) 4a1dc: 4281 clrl %d1 4a1de: 0283 0000 ffff andil #65535,%d3 4a1e4: 322a 0038 movew %a2@(56),%d1 4a1e8: b681 cmpl %d1,%d3 4a1ea: 6728 beqs 4a214 <== ALWAYS TAKEN flags_to_test <<= 6; else if ( st_gid == jnode->st_gid ) 4a1ec: 4281 clrl %d1 <== NOT EXECUTED 4a1ee: 0280 0000 ffff andil #65535,%d0 <== NOT EXECUTED 4a1f4: 322a 003a movew %a2@(58),%d1 <== NOT EXECUTED 4a1f8: b081 cmpl %d1,%d0 <== NOT EXECUTED 4a1fa: 672a beqs 4a226 <== 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 ) 4a1fc: 2002 movel %d2,%d0 <== NOT EXECUTED 4a1fe: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED 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 ); 4a202: b082 cmpl %d2,%d0 <== NOT EXECUTED 4a204: 57c0 seq %d0 <== NOT EXECUTED 4a206: 49c0 extbl %d0 <== NOT EXECUTED 4a208: 4480 negl %d0 <== NOT EXECUTED */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) return 1; return 0; } 4a20a: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 4a210: 4e5e unlk %fp 4a212: 4e75 rts */ flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; 4a214: ed8a lsll #6,%d2 /* * If all of the flags are set we have permission * to do this. */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) 4a216: 2002 movel %d2,%d0 4a218: c0aa 002e andl %a2@(46),%d0 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 ); 4a21c: b082 cmpl %d2,%d0 4a21e: 57c0 seq %d0 4a220: 49c0 extbl %d0 4a222: 4480 negl %d0 4a224: 60e4 bras 4a20a flags_to_test = flags; if ( st_uid == jnode->st_uid ) flags_to_test <<= 6; else if ( st_gid == jnode->st_gid ) flags_to_test <<= 3; 4a226: e78a lsll #3,%d2 <== 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 ) 4a228: 2002 movel %d2,%d0 <== NOT EXECUTED 4a22a: c0aa 002e andl %a2@(46),%d0 <== NOT EXECUTED 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 ); 4a22e: b082 cmpl %d2,%d0 <== NOT EXECUTED 4a230: 57c0 seq %d0 <== NOT EXECUTED 4a232: 49c0 extbl %d0 <== NOT EXECUTED 4a234: 4480 negl %d0 <== NOT EXECUTED 4a236: 60d2 bras 4a20a <== NOT EXECUTED 4a238: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a23e: 7201 moveq #1,%d1 <== NOT EXECUTED 4a240: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a242: 70ff moveq #-1,%d0 <== NOT EXECUTED */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) return 1; return 0; } 4a244: 4cee 040c fff4 moveml %fp@(-12),%d2-%d3/%a2 <== NOT EXECUTED 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 ); 4a24a: 2081 movel %d1,%a0@ <== NOT EXECUTED */ if ( ( flags_to_test & jnode->st_mode) == flags_to_test ) return 1; return 0; } 4a24c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a534 : int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a534: 4e56 ffec linkw %fp,#-20 <== NOT EXECUTED 4a538: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ <== NOT EXECUTED 4a53c: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_jnode_t *jnode = node->node_access; 4a540: 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; 4a542: 24ab 0008 movel %a3@(8),%a2@ <== NOT EXECUTED int IMFS_evaluate_sym_link( rtems_filesystem_location_info_t *node, /* IN/OUT */ int flags /* IN */ ) { 4a546: 242e 000c movel %fp@(12),%d2 <== 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( 4a54a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a54c: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4a550: 2f2b 004c movel %a3@(76),%sp@- <== NOT EXECUTED 4a554: 4eb9 0004 b5a4 jsr 4b5a4 <== NOT EXECUTED ); /* * Use eval path to evaluate the path of the symbolic link. */ result = IMFS_eval_path( 4a55a: 262b 004c movel %a3@(76),%d3 <== NOT EXECUTED 4a55e: d6ae fffc addl %fp@(-4),%d3 <== NOT EXECUTED 4a562: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a564: 4eb9 0004 fd3c jsr 4fd3c <== NOT EXECUTED 4a56a: 2e8a movel %a2,%sp@ <== NOT EXECUTED 4a56c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4a56e: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4a570: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4a572: 4eb9 0004 a29c jsr 4a29c <== NOT EXECUTED 4a578: 2600 movel %d0,%d3 <== NOT EXECUTED strlen( &jnode->info.sym_link.name[i] ), flags, node ); IMFS_Set_handlers( node ); 4a57a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a57c: 4eb9 0004 a12c jsr 4a12c <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) 4a582: 4fef 001c lea %sp@(28),%sp <== NOT EXECUTED 4a586: 2e82 movel %d2,%sp@ <== NOT EXECUTED 4a588: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4a58a: 4eb9 0004 a1b6 jsr 4a1b6 <== NOT EXECUTED 4a590: 508f addql #8,%sp <== NOT EXECUTED 4a592: 4a80 tstl %d0 <== NOT EXECUTED 4a594: 670c beqs 4a5a2 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EACCES ); return result; } 4a596: 2003 movel %d3,%d0 <== NOT EXECUTED 4a598: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4a59e: 4e5e unlk %fp <== NOT EXECUTED 4a5a0: 4e75 rts <== NOT EXECUTED /* * Verify we have the correct permissions for this node. */ if ( !IMFS_evaluate_permission( node, flags ) ) rtems_set_errno_and_return_minus_one( EACCES ); 4a5a2: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4a5a8: 76ff moveq #-1,%d3 <== NOT EXECUTED 4a5aa: 2040 moveal %d0,%a0 <== NOT EXECUTED 4a5ac: 700d moveq #13,%d0 <== NOT EXECUTED 4a5ae: 2080 movel %d0,%a0@ <== NOT EXECUTED return result; } 4a5b0: 2003 movel %d3,%d0 <== NOT EXECUTED 4a5b2: 4cee 0c0c ffec moveml %fp@(-20),%d2-%d3/%a2-%a3 <== NOT EXECUTED 4a5b8: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004de5c : int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4de5c: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 4de60: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4de64: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode; #if defined(RTEMS_POSIX_API) uid_t st_uid; #endif jnode = loc->node_access; 4de66: 2450 moveal %a0@,%a2 <== NOT EXECUTED int IMFS_fchmod( rtems_filesystem_location_info_t *loc, mode_t mode ) { 4de68: 2f02 movel %d2,%sp@- <== NOT EXECUTED * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4de6a: 4282 clrl %d2 <== NOT EXECUTED /* * Verify I am the owner of the node or the super user. */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); 4de6c: 4eb9 0004 b000 jsr 4b000 <== NOT EXECUTED if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) 4de72: 4281 clrl %d1 <== NOT EXECUTED 4de74: 342a 0038 movew %a2@(56),%d2 <== NOT EXECUTED 4de78: 3200 movew %d0,%d1 <== NOT EXECUTED 4de7a: b282 cmpl %d2,%d1 <== NOT EXECUTED 4de7c: 6704 beqs 4de82 <== NOT EXECUTED 4de7e: 4a40 tstw %d0 <== NOT EXECUTED 4de80: 663c bnes 4debe <== 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); 4de82: 202a 002e movel %a2@(46),%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4de86: 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); 4de8a: 0280 ffff f000 andil #-4096,%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); 4de90: 0281 0000 0fff andil #4095,%d1 <== NOT EXECUTED 4de96: 8280 orl %d0,%d1 <== NOT EXECUTED 4de98: 2541 002e movel %d1,%a2@(46) <== NOT EXECUTED IMFS_update_ctime( jnode ); 4de9c: 42a7 clrl %sp@- <== NOT EXECUTED 4de9e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4dea2: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4dea8: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; 4deae: 508f addql #8,%sp <== NOT EXECUTED 4deb0: 4280 clrl %d0 <== NOT EXECUTED } 4deb2: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 4deb6: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4deba: 4e5e unlk %fp <== NOT EXECUTED 4debc: 4e75 rts <== NOT EXECUTED */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4debe: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); IMFS_update_ctime( jnode ); return 0; } 4dec4: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4dec8: 2040 moveal %d0,%a0 <== NOT EXECUTED 4deca: 7201 moveq #1,%d1 <== NOT EXECUTED 4decc: 70ff moveq #-1,%d0 <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); IMFS_update_ctime( jnode ); return 0; } 4dece: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4ded2: 4e5e unlk %fp <== NOT EXECUTED */ #if defined(RTEMS_POSIX_API) st_uid = geteuid(); if ( ( st_uid != jnode->st_uid ) && ( st_uid != 0 ) ) rtems_set_errno_and_return_minus_one( EPERM ); 4ded4: 2081 movel %d1,%a0@ <== NOT EXECUTED jnode->st_mode |= mode & (S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID | S_ISVTX); IMFS_update_ctime( jnode ); return 0; } =============================================================================== 0004ded8 : int IMFS_fdatasync( rtems_libio_t *iop ) { return 0; } 4ded8: 4280 clrl %d0 <== NOT EXECUTED #include "imfs.h" int IMFS_fdatasync( rtems_libio_t *iop ) { 4deda: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return 0; } 4dede: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 00043808 : } int IMFS_fifo_close( rtems_libio_t *iop ) { 43808: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4380c: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4380e: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43810: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED int err = 0; IMFS_jnode_t *jnode = iop->pathinfo.node_access; 43814: 266a 0018 moveal %a2@(24),%a3 <== NOT EXECUTED pipe_release(&JNODE2PIPE(jnode), iop); 43818: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4381a: 486b 004c pea %a3@(76) <== NOT EXECUTED 4381e: 4eb9 0004 ceae jsr 4ceae <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_OPEN; 43824: 203c ffff feff movel #-257,%d0 <== NOT EXECUTED 4382a: c1aa 0014 andl %d0,%a2@(20) <== NOT EXECUTED IMFS_check_node_remove(jnode); 4382e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 43830: 4eb9 0004 3ea8 jsr 43ea8 <== NOT EXECUTED IMFS_FIFO_RETURN(err); } 43836: 246e fff8 moveal %fp@(-8),%a2 <== NOT EXECUTED 4383a: 4280 clrl %d0 <== NOT EXECUTED 4383c: 266e fffc moveal %fp@(-4),%a3 <== NOT EXECUTED 43840: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00043680 : int IMFS_fifo_ioctl( rtems_libio_t *iop, uint32_t command, void *buffer ) { 43680: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43684: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43688: 202e 000c movel %fp@(12),%d0 <== NOT EXECUTED 4368c: 226e 0010 moveal %fp@(16),%a1 <== NOT EXECUTED 43690: 2f02 movel %d2,%sp@- <== NOT EXECUTED int err; if (command == FIONBIO) { 43692: 0c80 8004 667e cmpil #-2147195266,%d0 <== NOT EXECUTED 43698: 6724 beqs 436be <== NOT EXECUTED iop->flags &= ~LIBIO_FLAGS_NO_DELAY; return 0; } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); 4369a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4369c: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 436a0: 2f09 movel %a1,%sp@- <== NOT EXECUTED 436a2: 2f00 movel %d0,%sp@- <== NOT EXECUTED 436a4: 2f28 004c movel %a0@(76),%sp@- <== NOT EXECUTED 436a8: 4eb9 0004 d83a jsr 4d83a <== NOT EXECUTED IMFS_FIFO_RETURN(err); 436ae: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 436b2: 4a80 tstl %d0 <== NOT EXECUTED 436b4: 6d46 blts 436fc <== NOT EXECUTED } 436b6: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 436ba: 4e5e unlk %fp <== NOT EXECUTED 436bc: 4e75 rts <== NOT EXECUTED ) { int err; if (command == FIONBIO) { if (buffer == NULL) 436be: 4a89 tstl %a1 <== NOT EXECUTED 436c0: 6724 beqs 436e6 <== NOT EXECUTED err = -EFAULT; else { if (*(int *)buffer) 436c2: 4a91 tstl %a1@ <== NOT EXECUTED 436c4: 6710 beqs 436d6 <== NOT EXECUTED iop->flags |= LIBIO_FLAGS_NO_DELAY; 436c6: 7201 moveq #1,%d1 <== NOT EXECUTED else iop->flags &= ~LIBIO_FLAGS_NO_DELAY; return 0; 436c8: 4280 clrl %d0 <== NOT EXECUTED } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); } 436ca: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 436ce: 4e5e unlk %fp <== NOT EXECUTED if (command == FIONBIO) { if (buffer == NULL) err = -EFAULT; else { if (*(int *)buffer) iop->flags |= LIBIO_FLAGS_NO_DELAY; 436d0: 83a8 0014 orl %d1,%a0@(20) <== NOT EXECUTED } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); } 436d4: 4e75 rts <== NOT EXECUTED err = -EFAULT; else { if (*(int *)buffer) iop->flags |= LIBIO_FLAGS_NO_DELAY; else iop->flags &= ~LIBIO_FLAGS_NO_DELAY; 436d6: 72fe moveq #-2,%d1 <== NOT EXECUTED return 0; 436d8: 4280 clrl %d0 <== NOT EXECUTED } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); } 436da: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 436de: 4e5e unlk %fp <== NOT EXECUTED err = -EFAULT; else { if (*(int *)buffer) iop->flags |= LIBIO_FLAGS_NO_DELAY; else iop->flags &= ~LIBIO_FLAGS_NO_DELAY; 436e0: c3a8 0014 andl %d1,%a0@(20) <== NOT EXECUTED } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); } 436e4: 4e75 rts <== NOT EXECUTED } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); 436e6: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED ) { int err; if (command == FIONBIO) { if (buffer == NULL) 436ec: 740e moveq #14,%d2 <== NOT EXECUTED } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); 436ee: 2040 moveal %d0,%a0 <== NOT EXECUTED 436f0: 70ff moveq #-1,%d0 <== NOT EXECUTED 436f2: 2082 movel %d2,%a0@ <== NOT EXECUTED } 436f4: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 436f8: 4e5e unlk %fp <== NOT EXECUTED 436fa: 4e75 rts <== NOT EXECUTED } } else err = pipe_ioctl(LIBIO2PIPE(iop), command, buffer, iop); IMFS_FIFO_RETURN(err); 436fc: 2400 movel %d0,%d2 <== NOT EXECUTED 436fe: 4482 negl %d2 <== NOT EXECUTED 43700: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED 43706: 2040 moveal %d0,%a0 <== NOT EXECUTED 43708: 70ff moveq #-1,%d0 <== NOT EXECUTED 4370a: 2082 movel %d2,%a0@ <== NOT EXECUTED 4370c: 60e6 bras 436f4 <== NOT EXECUTED =============================================================================== 00043618 : rtems_off64_t IMFS_fifo_lseek( rtems_libio_t *iop, rtems_off64_t offset, int whence ) { 43618: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4361c: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43620: 2f03 movel %d3,%sp@- <== NOT EXECUTED 43622: 2f02 movel %d2,%sp@- <== NOT EXECUTED off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop); 43624: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43626: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED 4362a: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 4362e: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED 43632: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 43636: 2f28 004c movel %a0@(76),%sp@- <== NOT EXECUTED 4363a: 4eb9 0004 d89a jsr 4d89a <== NOT EXECUTED IMFS_FIFO_RETURN(err); 43640: 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); 43644: 2600 movel %d0,%d3 <== NOT EXECUTED 43646: 2400 movel %d0,%d2 <== NOT EXECUTED 43648: 5bc1 smi %d1 <== NOT EXECUTED 4364a: 49c1 extbl %d1 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 4364c: 4a81 tstl %d1 <== NOT EXECUTED 4364e: 6b10 bmis 43660 <== NOT EXECUTED } 43650: 2001 movel %d1,%d0 <== NOT EXECUTED 43652: 2202 movel %d2,%d1 <== NOT EXECUTED 43654: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 43658: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 4365c: 4e5e unlk %fp <== NOT EXECUTED 4365e: 4e75 rts <== NOT EXECUTED rtems_off64_t offset, int whence ) { off_t err = pipe_lseek(LIBIO2PIPE(iop), offset, whence, iop); IMFS_FIFO_RETURN(err); 43660: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED 43666: 4483 negl %d3 <== NOT EXECUTED 43668: 2040 moveal %d0,%a0 <== NOT EXECUTED 4366a: 72ff moveq #-1,%d1 <== NOT EXECUTED 4366c: 74ff moveq #-1,%d2 <== NOT EXECUTED 4366e: 2083 movel %d3,%a0@ <== NOT EXECUTED } 43670: 262e fffc movel %fp@(-4),%d3 <== NOT EXECUTED 43674: 2001 movel %d1,%d0 <== NOT EXECUTED 43676: 2202 movel %d2,%d1 <== NOT EXECUTED 43678: 242e fff8 movel %fp@(-8),%d2 <== NOT EXECUTED 4367c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00043844 : rtems_libio_t *iop, const char *pathname, uint32_t flag, uint32_t mode ) { 43844: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 43848: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4384c: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = fifo_open(&JNODE2PIPE(jnode), iop); 4384e: 2f08 movel %a0,%sp@- <== NOT EXECUTED 43850: 2068 0018 moveal %a0@(24),%a0 <== NOT EXECUTED 43854: 41e8 004c lea %a0@(76),%a0 <== NOT EXECUTED 43858: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4385a: 4eb9 0004 cf7c jsr 4cf7c <== NOT EXECUTED IMFS_FIFO_RETURN(err); 43860: 508f addql #8,%sp <== NOT EXECUTED uint32_t mode ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = fifo_open(&JNODE2PIPE(jnode), iop); 43862: 2400 movel %d0,%d2 <== NOT EXECUTED IMFS_FIFO_RETURN(err); 43864: 6d0a blts 43870 <== NOT EXECUTED } 43866: 2002 movel %d2,%d0 <== NOT EXECUTED 43868: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4386c: 4e5e unlk %fp <== NOT EXECUTED 4386e: 4e75 rts <== NOT EXECUTED ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = fifo_open(&JNODE2PIPE(jnode), iop); IMFS_FIFO_RETURN(err); 43870: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED 43876: 4482 negl %d2 <== NOT EXECUTED 43878: 2040 moveal %d0,%a0 <== NOT EXECUTED 4387a: 2082 movel %d2,%a0@ <== NOT EXECUTED 4387c: 74ff moveq #-1,%d2 <== NOT EXECUTED } 4387e: 2002 movel %d2,%d0 <== NOT EXECUTED 43880: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 43884: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004378e : ssize_t IMFS_fifo_read( rtems_libio_t *iop, void *buffer, size_t count ) { 4378e: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 43792: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43796: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43798: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); 4379a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4379c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED rtems_libio_t *iop, void *buffer, size_t count ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; 437a0: 2468 0018 moveal %a0@(24),%a2 <== NOT EXECUTED int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); 437a4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 437a8: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 437ac: 4eb9 0004 d424 jsr 4d424 <== NOT EXECUTED if (err > 0) 437b2: 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); 437b6: 2400 movel %d0,%d2 <== NOT EXECUTED if (err > 0) 437b8: 6f22 bles 437dc <== NOT EXECUTED IMFS_update_atime(jnode); 437ba: 42a7 clrl %sp@- <== NOT EXECUTED 437bc: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 437c0: 4eb9 0004 4b58 jsr 44b58 <== NOT EXECUTED 437c6: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED 437cc: 2002 movel %d2,%d0 <== NOT EXECUTED 437ce: 508f addql #8,%sp <== NOT EXECUTED IMFS_FIFO_RETURN(err); } 437d0: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 437d4: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 437d8: 4e5e unlk %fp <== NOT EXECUTED 437da: 4e75 rts <== NOT EXECUTED int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) IMFS_update_atime(jnode); IMFS_FIFO_RETURN(err); 437dc: 4a80 tstl %d0 <== NOT EXECUTED 437de: 660e bnes 437ee <== NOT EXECUTED } 437e0: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) IMFS_update_atime(jnode); IMFS_FIFO_RETURN(err); 437e4: 4280 clrl %d0 <== NOT EXECUTED } 437e6: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 437ea: 4e5e unlk %fp <== NOT EXECUTED 437ec: 4e75 rts <== NOT EXECUTED int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) IMFS_update_atime(jnode); IMFS_FIFO_RETURN(err); 437ee: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED 437f4: 4482 negl %d2 <== NOT EXECUTED 437f6: 2040 moveal %d0,%a0 <== NOT EXECUTED 437f8: 70ff moveq #-1,%d0 <== NOT EXECUTED 437fa: 2082 movel %d2,%a0@ <== NOT EXECUTED } 437fc: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 43800: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 43804: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004370e : ssize_t IMFS_fifo_write( rtems_libio_t *iop, const void *buffer, size_t count ) { 4370e: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED 43712: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 43716: 2f0a movel %a2,%sp@- <== NOT EXECUTED 43718: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); 4371a: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4371c: 2f2e 0010 movel %fp@(16),%sp@- <== NOT EXECUTED rtems_libio_t *iop, const void *buffer, size_t count ) { IMFS_jnode_t *jnode = iop->pathinfo.node_access; 43720: 2468 0018 moveal %a0@(24),%a2 <== NOT EXECUTED int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); 43724: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 43728: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 4372c: 4eb9 0004 d616 jsr 4d616 <== NOT EXECUTED if (err > 0) { 43732: 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); 43736: 2400 movel %d0,%d2 <== NOT EXECUTED if (err > 0) { 43738: 6f28 bles 43762 <== NOT EXECUTED IMFS_mtime_ctime_update(jnode); 4373a: 42a7 clrl %sp@- <== NOT EXECUTED 4373c: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 43740: 4eb9 0004 4b58 jsr 44b58 <== NOT EXECUTED 43746: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED 4374a: 2002 movel %d2,%d0 <== NOT EXECUTED 4374c: 508f addql #8,%sp <== NOT EXECUTED 4374e: 2541 0040 movel %d1,%a2@(64) <== NOT EXECUTED } IMFS_FIFO_RETURN(err); } 43752: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED { IMFS_jnode_t *jnode = iop->pathinfo.node_access; int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) { IMFS_mtime_ctime_update(jnode); 43756: 2541 0044 movel %d1,%a2@(68) <== NOT EXECUTED } IMFS_FIFO_RETURN(err); } 4375a: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4375e: 4e5e unlk %fp <== NOT EXECUTED 43760: 4e75 rts <== NOT EXECUTED int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) { IMFS_mtime_ctime_update(jnode); } IMFS_FIFO_RETURN(err); 43762: 4a80 tstl %d0 <== NOT EXECUTED 43764: 660e bnes 43774 <== NOT EXECUTED } 43766: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) { IMFS_mtime_ctime_update(jnode); } IMFS_FIFO_RETURN(err); 4376a: 4280 clrl %d0 <== NOT EXECUTED } 4376c: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 43770: 4e5e unlk %fp <== NOT EXECUTED 43772: 4e75 rts <== NOT EXECUTED int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop); if (err > 0) { IMFS_mtime_ctime_update(jnode); } IMFS_FIFO_RETURN(err); 43774: 4eb9 0005 0ecc jsr 50ecc <__errno> <== NOT EXECUTED 4377a: 4482 negl %d2 <== NOT EXECUTED 4377c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4377e: 70ff moveq #-1,%d0 <== NOT EXECUTED 43780: 2082 movel %d2,%a0@ <== NOT EXECUTED } 43782: 242e fff0 movel %fp@(-16),%d2 <== NOT EXECUTED 43786: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 4378a: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004a9ac : IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 4a9ac: 4e56 fff0 linkw %fp,#-16 4a9b0: 48d7 0c0c moveml %d2-%d3/%a2-%a3,%sp@ /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 4a9b4: 4879 0005 d65a pea 5d65a 4a9ba: 47f9 0004 f7e4 lea 4f7e4 ,%a3 IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 4a9c0: 242e 000c movel %fp@(12),%d2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 4a9c4: 2f02 movel %d2,%sp@- IMFS_jnode_t *IMFS_find_match_in_dir( IMFS_jnode_t *directory, char *name ) { 4a9c6: 246e 0008 moveal %fp@(8),%a2 /* * Check for "." and ".." */ if ( !strcmp( name, dotname ) ) 4a9ca: 4e93 jsr %a3@ 4a9cc: 508f addql #8,%sp 4a9ce: 4a80 tstl %d0 4a9d0: 6714 beqs 4a9e6 <== NEVER TAKEN return directory; if ( !strcmp( name, dotdotname ) ) 4a9d2: 4879 0005 d65c pea 5d65c 4a9d8: 2f02 movel %d2,%sp@- 4a9da: 4e93 jsr %a3@ 4a9dc: 508f addql #8,%sp 4a9de: 4a80 tstl %d0 4a9e0: 6610 bnes 4a9f2 <== ALWAYS TAKEN return directory->Parent; 4a9e2: 246a 0008 moveal %a2@(8),%a2 <== NOT EXECUTED if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; } 4a9e6: 200a movel %a2,%d0 4a9e8: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 4a9ee: 4e5e unlk %fp 4a9f0: 4e75 rts RTEMS_INLINE_ROUTINE bool _Chain_Is_tail( Chain_Control *the_chain, const Chain_Node *the_node ) { return (the_node == _Chain_Tail(the_chain)); 4a9f2: 260a movel %a2,%d3 4a9f4: 0683 0000 0050 addil #80,%d3 4a9fa: 202a 004c movel %a2@(76),%d0 if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); 4a9fe: b680 cmpl %d0,%d3 4aa00: 6716 beqs 4aa18 4aa02: 2440 moveal %d0,%a2 !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 ) ) 4aa04: 486a 000c pea %a2@(12) 4aa08: 2f02 movel %d2,%sp@- 4aa0a: 4e93 jsr %a3@ 4aa0c: 508f addql #8,%sp 4aa0e: 4a80 tstl %d0 4aa10: 67d4 beqs 4a9e6 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 ) { 4aa12: 2452 moveal %a2@,%a2 if ( !strcmp( name, dotdotname ) ) return directory->Parent; the_chain = &directory->info.directory.Entries; for ( the_node = rtems_chain_first( the_chain ); 4aa14: b68a cmpl %a2,%d3 4aa16: 66ec bnes 4aa04 if ( !strcmp( name, the_jnode->name ) ) return the_jnode; } return 0; 4aa18: 95ca subal %a2,%a2 } 4aa1a: 200a movel %a2,%d0 4aa1c: 4cee 0c0c fff0 moveml %fp@(-16),%d2-%d3/%a2-%a3 4aa22: 4e5e unlk %fp ... =============================================================================== 0004a900 : ((IMFS_jnode_t *)( rtems_chain_head( jnode_get_control( jnode ) )->next)) int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry ) { 4a900: 4e56 ffd8 linkw %fp,#-40 <== NOT EXECUTED 4a904: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4a908: 48d7 3c04 moveml %d2/%a2-%a5,%sp@ <== 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; 4a90c: 47ee ffec lea %fp@(-20),%a3 <== NOT EXECUTED 4a910: 49f9 0004 a12c lea 4a12c ,%a4 <== NOT EXECUTED next = jnode->Parent; loc.node_access = (void *)jnode; IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( NULL, &loc ); 4a916: 4bf9 0004 25c0 lea 425c0 ,%a5 <== 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; 4a91c: 26a8 001c movel %a0@(28),%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; 4a920: 2468 001c moveal %a0@(28),%a2 <== NOT EXECUTED loc = temp_mt_entry->mt_fs_root; 4a924: 2d68 0020 fff0 movel %a0@(32),%fp@(-16) <== NOT EXECUTED 4a92a: 2d68 0024 fff4 movel %a0@(36),%fp@(-12) <== NOT EXECUTED 4a930: 2d68 0028 fff8 movel %a0@(40),%fp@(-8) <== NOT EXECUTED 4a936: 2d68 002c fffc movel %a0@(44),%fp@(-4) <== NOT EXECUTED /* * Set this to null to indicate that it is being unmounted. */ temp_mt_entry->mt_fs_root.node_access = NULL; 4a93c: 42a8 001c clrl %a0@(28) <== NOT EXECUTED do { next = jnode->Parent; 4a940: 242a 0008 movel %a2@(8),%d2 <== NOT EXECUTED loc.node_access = (void *)jnode; 4a944: 2d4a ffec movel %a2,%fp@(-20) <== NOT EXECUTED IMFS_Set_handlers( &loc ); 4a948: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4a94a: 4e94 jsr %a4@ <== NOT EXECUTED if ( jnode->type != IMFS_DIRECTORY ) { 4a94c: 588f addql #4,%sp <== 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 ); 4a94e: 200a movel %a2,%d0 <== NOT EXECUTED 4a950: 0680 0000 0050 addil #80,%d0 <== NOT EXECUTED 4a956: 7201 moveq #1,%d1 <== NOT EXECUTED 4a958: b2aa 0048 cmpl %a2@(72),%d1 <== NOT EXECUTED 4a95c: 6634 bnes 4a992 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { 4a95e: b0aa 004c cmpl %a2@(76),%d0 <== NOT EXECUTED 4a962: 672e beqs 4a992 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; jnode = next; } if ( jnode != NULL ) { 4a964: 4a8a tstl %a2 <== NOT EXECUTED 4a966: 671e beqs 4a986 <== NOT EXECUTED if ( jnode->type == IMFS_DIRECTORY ) { 4a968: 7001 moveq #1,%d0 <== NOT EXECUTED 4a96a: b0aa 0048 cmpl %a2@(72),%d0 <== NOT EXECUTED 4a96e: 66d0 bnes 4a940 <== NOT EXECUTED 4a970: 220a movel %a2,%d1 <== NOT EXECUTED 4a972: 0681 0000 0050 addil #80,%d1 <== NOT EXECUTED } } } while (jnode != NULL); return 0; } 4a978: 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 ) ) 4a97c: b280 cmpl %d0,%d1 <== NOT EXECUTED 4a97e: 67c0 beqs 4a940 <== NOT EXECUTED jnode = jnode_get_first_child( jnode ); 4a980: 2440 moveal %d0,%a2 <== NOT EXECUTED } } } while (jnode != NULL); 4a982: 4a80 tstl %d0 <== NOT EXECUTED 4a984: 66ba bnes 4a940 <== NOT EXECUTED return 0; 4a986: 4280 clrl %d0 <== NOT EXECUTED } 4a988: 4cee 3c04 ffd8 moveml %fp@(-40),%d2/%a2-%a5 <== NOT EXECUTED 4a98e: 4e5e unlk %fp <== NOT EXECUTED 4a990: 4e75 rts <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { result = IMFS_unlink( NULL, &loc ); 4a992: 2f0b movel %a3,%sp@- <== NOT EXECUTED if (result != 0) return -1; jnode = next; 4a994: 2442 moveal %d2,%a2 <== NOT EXECUTED result = IMFS_unlink( NULL, &loc ); if (result != 0) return -1; jnode = next; } else if ( jnode_has_no_children( jnode ) ) { result = IMFS_unlink( NULL, &loc ); 4a996: 42a7 clrl %sp@- <== NOT EXECUTED 4a998: 4e95 jsr %a5@ <== NOT EXECUTED if (result != 0) 4a99a: 508f addql #8,%sp <== NOT EXECUTED 4a99c: 4a80 tstl %d0 <== NOT EXECUTED 4a99e: 67c4 beqs 4a964 <== NOT EXECUTED return -1; 4a9a0: 70ff moveq #-1,%d0 <== NOT EXECUTED } } } while (jnode != NULL); return 0; } 4a9a2: 4cee 3c04 ffd8 moveml %fp@(-40),%d2/%a2-%a5 <== NOT EXECUTED 4a9a8: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004aa28 : const char *path, int pathlen, char *token, int *token_len ) { 4aa28: 4e56 ffe4 linkw %fp,#-28 4aa2c: 48d7 3c1c moveml %d2-%d4/%a2-%a5,%sp@ register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 4aa30: 246e 0008 moveal %fp@(8),%a2 4aa34: 49f9 0004 3c2c lea 43c2c ,%a4 int pathlen, char *token, int *token_len ) { register int i = 0; 4aa3a: 4282 clrl %d2 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 4aa3c: 161a moveb %a2@+,%d3 const char *path, int pathlen, char *token, int *token_len ) { 4aa3e: 2a6e 0010 moveal %fp@(16),%a5 register char c; /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; 4aa42: 264d moveal %a5,%a3 while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 4aa44: 1003 moveb %d3,%d0 const char *path, int pathlen, char *token, int *token_len ) { 4aa46: 282e 000c movel %fp@(12),%d4 /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 4aa4a: 49c0 extbl %d0 4aa4c: 2f00 movel %d0,%sp@- 4aa4e: 4e94 jsr %a4@ 4aa50: 588f addql #4,%sp 4aa52: 4a80 tstl %d0 4aa54: 6620 bnes 4aa76 4aa56: b882 cmpl %d2,%d4 4aa58: 6f1c bles 4aa76 <== NEVER TAKEN token[i] = c; if ( i == IMFS_NAME_MAX ) 4aa5a: 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; 4aa5c: 16c3 moveb %d3,%a3@+ if ( i == IMFS_NAME_MAX ) 4aa5e: b082 cmpl %d2,%d0 4aa60: 6700 0082 beqw 4aae4 return IMFS_INVALID_TOKEN; if ( !IMFS_is_valid_name_char(c) ) type = IMFS_INVALID_TOKEN; c = path [++i]; 4aa64: 5282 addql #1,%d2 4aa66: 161a moveb %a2@+,%d3 /* * Copy a name into token. (Remember NULL is a token.) */ c = path[i]; while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { 4aa68: 1003 moveb %d3,%d0 4aa6a: 49c0 extbl %d0 4aa6c: 2f00 movel %d0,%sp@- 4aa6e: 4e94 jsr %a4@ 4aa70: 588f addql #4,%sp 4aa72: 4a80 tstl %d0 4aa74: 67e0 beqs 4aa56 /* * Copy a seperator into token. */ if ( i == 0 ) { 4aa76: 4a82 tstl %d2 4aa78: 6626 bnes 4aaa0 token[i] = c; 4aa7a: 1a83 moveb %d3,%a5@ if ( (token[i] != '\0') && pathlen ) { 4aa7c: 6718 beqs 4aa96 4aa7e: 4a84 tstl %d4 4aa80: 6714 beqs 4aa96 <== NEVER TAKEN /* * Set token_len to the number of characters copied. */ *token_len = i; 4aa82: 206e 0014 moveal %fp@(20),%a0 if ( i == 0 ) { token[i] = c; if ( (token[i] != '\0') && pathlen ) { i++; 4aa86: 7401 moveq #1,%d2 type = IMFS_CURRENT_DIR; 4aa88: 7001 moveq #1,%d0 /* * Set token_len to the number of characters copied. */ *token_len = i; 4aa8a: 2082 movel %d2,%a0@ else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 4aa8c: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 4aa92: 4e5e unlk %fp 4aa94: 4e75 rts /* * Set token_len to the number of characters copied. */ *token_len = i; 4aa96: 206e 0014 moveal %fp@(20),%a0 if ( (token[i] != '\0') && pathlen ) { i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; 4aa9a: 4280 clrl %d0 /* * Set token_len to the number of characters copied. */ *token_len = i; 4aa9c: 2082 movel %d2,%a0@ 4aa9e: 60ec bras 4aa8c i++; type = IMFS_CURRENT_DIR; } else { type = IMFS_NO_MORE_PATH; } } else if (token[ i-1 ] != '\0') { 4aaa0: 4a35 28ff tstb %a5@(ffffffff,%d2:l) 4aaa4: 6706 beqs 4aaac <== NEVER TAKEN token[i] = '\0'; 4aaa6: 4200 clrb %d0 4aaa8: 1b80 2800 moveb %d0,%a5@(00000000,%d2:l) * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 4aaac: 4879 0005 d65f pea 5d65f 4aab2: 45f9 0004 f7e4 lea 4f7e4 ,%a2 /* * Set token_len to the number of characters copied. */ *token_len = i; 4aab8: 206e 0014 moveal %fp@(20),%a0 4aabc: 2082 movel %d2,%a0@ * If we copied something that was not a seperator see if * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) 4aabe: 2f0d movel %a5,%sp@- 4aac0: 4e92 jsr %a2@ 4aac2: 508f addql #8,%sp 4aac4: 4a80 tstl %d0 4aac6: 6728 beqs 4aaf0 <== NEVER TAKEN type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) 4aac8: 4879 0005 d660 pea 5d660 4aace: 2f0d movel %a5,%sp@- 4aad0: 4e92 jsr %a2@ 4aad2: 508f addql #8,%sp 4aad4: 4a80 tstl %d0 4aad6: 6724 beqs 4aafc <== NEVER TAKEN 4aad8: 7003 moveq #3,%d0 type = IMFS_CURRENT_DIR; } return type; } 4aada: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 4aae0: 4e5e unlk %fp 4aae2: 4e75 rts while ( (!IMFS_is_separator(c)) && (i < pathlen) && (i <= IMFS_NAME_MAX) ) { token[i] = c; if ( i == IMFS_NAME_MAX ) return IMFS_INVALID_TOKEN; 4aae4: 7004 moveq #4,%d0 <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 4aae6: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4aaec: 4e5e unlk %fp <== NOT EXECUTED 4aaee: 4e75 rts <== NOT EXECUTED * it was a special name. */ if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; 4aaf0: 7002 moveq #2,%d0 <== NOT EXECUTED else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; } return type; } 4aaf2: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4aaf8: 4e5e unlk %fp <== NOT EXECUTED 4aafa: 4e75 rts <== NOT EXECUTED if ( type == IMFS_NAME ) { if ( strcmp( token, "..") == 0 ) type = IMFS_UP_DIR; else if ( strcmp( token, "." ) == 0 ) type = IMFS_CURRENT_DIR; 4aafc: 7001 moveq #1,%d0 <== NOT EXECUTED } return type; } 4aafe: 4cee 3c1c ffe4 moveml %fp@(-28),%d2-%d4/%a2-%a5 <== NOT EXECUTED 4ab04: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042138 : /* * 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) { 42138: 7010 moveq #16,%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 ) { 4213a: 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, 4213e: 2239 0005 e318 movel 5e318 ,%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 ) { 42144: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ 42148: 246e 0008 moveal %fp@(8),%a2 4214c: 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) { 42150: b081 cmpl %d1,%d0 42152: 6724 beqs 42178 is_valid = true; break; } if(bit_mask > requested_bytes_per_block) 42154: 103c 000f moveb #15,%d0 42158: b081 cmpl %d1,%d0 4215a: 6c16 bges 42172 4215c: 307c 0005 moveaw #5,%a0 42160: 103c 0020 moveb #32,%d0 int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 42164: 5388 subql #1,%a0 if (bit_mask == requested_bytes_per_block) { 42166: b081 cmpl %d1,%d0 42168: 670e beqs 42178 is_valid = true; break; } if(bit_mask > requested_bytes_per_block) 4216a: 6e06 bgts 42172 <== NEVER TAKEN int bit_mask; /* * check, whether requested bytes per block is valid */ for (bit_mask = 16; !is_valid && (bit_mask <= 512); bit_mask <<= 1) { 4216c: d080 addl %d0,%d0 4216e: 4a88 tstl %a0 42170: 66f2 bnes 42164 <== ALWAYS TAKEN if(bit_mask > requested_bytes_per_block) break; } *dest_bytes_per_block = ((is_valid) ? requested_bytes_per_block : default_bytes_per_block); 42172: 223c 0000 0080 movel #128,%d1 break; } if(bit_mask > requested_bytes_per_block) break; } *dest_bytes_per_block = ((is_valid) 42178: 23c1 0005 f324 movel %d1,5f324 /* * 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(); 4217e: 4eb9 0004 a0f0 jsr 4a0f0 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 ) ); 42184: 4878 0014 pea 14 * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_root_node(); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 42188: 41f9 0005 d62a lea 5d62a ,%a0 4218e: 43f9 0005 d62e lea 5d62e ,%a1 /* * 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(); 42194: 2640 moveal %d0,%a3 temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 42196: 2550 0038 movel %a0@,%a2@(56) 4219a: 41f9 0005 d632 lea 5d632 ,%a0 421a0: 2551 003c movel %a1@,%a2@(60) 421a4: 43f9 0005 d636 lea 5d636 ,%a1 421aa: 2550 0040 movel %a0@,%a2@(64) 421ae: 41f9 0005 d63a lea 5d63a ,%a0 421b4: 2551 0044 movel %a1@,%a2@(68) 421b8: 43f9 0005 d63e lea 5d63e ,%a1 /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); 421be: 4878 0001 pea 1 * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_root_node(); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS; 421c2: 2550 0048 movel %a0@,%a2@(72) 421c6: 41f9 0005 d642 lea 5d642 ,%a0 421cc: 2551 004c movel %a1@,%a2@(76) 421d0: 43f9 0005 d646 lea 5d646 ,%a1 421d6: 2550 0050 movel %a0@,%a2@(80) 421da: 41f9 0005 d64a lea 5d64a ,%a0 421e0: 2551 0054 movel %a1@,%a2@(84) 421e4: 43f9 0005 d64e lea 5d64e ,%a1 421ea: 2550 0058 movel %a0@,%a2@(88) 421ee: 41f9 0005 d652 lea 5d652 ,%a0 421f4: 2551 005c movel %a1@,%a2@(92) 421f8: 43f9 0005 d656 lea 5d656 ,%a1 421fe: 2550 0060 movel %a0@,%a2@(96) 42202: 2551 0064 movel %a1@,%a2@(100) * * NOTE: UNIX root is 755 and owned by root/root (0/0). */ temp_mt_entry->mt_fs_root.node_access = IMFS_create_root_node(); temp_mt_entry->mt_fs_root.handlers = directory_handlers; temp_mt_entry->mt_fs_root.ops = op_table; 42206: 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(); 4220c: 2540 001c movel %d0,%a2@(28) temp_mt_entry->mt_fs_root.handlers = directory_handlers; 42210: 2542 0024 movel %d2,%a2@(36) 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 ) ); 42214: 4eb9 0004 28f0 jsr 428f0 if ( !fs_info ) { 4221a: 508f addql #8,%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 ) ); 4221c: 2040 moveal %d0,%a0 if ( !fs_info ) { 4221e: 4a80 tstl %d0 42220: 673c beqs 4225e <== NEVER TAKEN free(temp_mt_entry->mt_fs_root.node_access); rtems_set_errno_and_return_minus_one(ENOMEM); } temp_mt_entry->fs_info = fs_info; 42222: 2548 0034 movel %a0,%a2@(52) /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; 42226: 2239 0005 f328 movel 5f328 ,%d1 4222c: 2241 moveal %d1,%a1 4222e: 5289 addql #1,%a1 fs_info->fifo_handlers = fifo_handlers; jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; 42230: 4280 clrl %d0 /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; 42232: 2081 movel %d1,%a0@ fs_info->ino_count = 1; 42234: 7201 moveq #1,%d1 fs_info->memfile_handlers = memfile_handlers; 42236: 216e 0010 0008 movel %fp@(16),%a0@(8) fs_info->directory_handlers = directory_handlers; fs_info->fifo_handlers = fifo_handlers; 4223c: 216e 0018 0010 movel %fp@(24),%a0@(16) */ fs_info->instance = imfs_instance++; fs_info->ino_count = 1; fs_info->memfile_handlers = memfile_handlers; fs_info->directory_handlers = directory_handlers; 42242: 2142 000c movel %d2,%a0@(12) /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; fs_info->ino_count = 1; 42246: 2141 0004 movel %d1,%a0@(4) fs_info->memfile_handlers = memfile_handlers; fs_info->directory_handlers = directory_handlers; fs_info->fifo_handlers = fifo_handlers; jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; 4224a: 2741 0034 movel %d1,%a3@(52) return 0; } 4224e: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 /* * Set st_ino for the root to 1. */ fs_info->instance = imfs_instance++; 42254: 23c9 0005 f328 movel %a1,5f328 jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 4225a: 4e5e unlk %fp 4225c: 4e75 rts /* * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ) { free(temp_mt_entry->mt_fs_root.node_access); 4225e: 2f0b movel %a3,%sp@- <== NOT EXECUTED 42260: 4eb9 0004 2cfc jsr 42cfc <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 42266: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4226c: 588f addql #4,%sp <== NOT EXECUTED 4226e: 720c moveq #12,%d1 <== NOT EXECUTED 42270: 2040 moveal %d0,%a0 <== NOT EXECUTED 42272: 70ff moveq #-1,%d0 <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 42274: 4cee 0c04 fff4 moveml %fp@(-12),%d2/%a2-%a3 <== NOT EXECUTED * Create custom file system data. */ fs_info = calloc( 1, sizeof( IMFS_fs_info_t ) ); if ( !fs_info ) { free(temp_mt_entry->mt_fs_root.node_access); rtems_set_errno_and_return_minus_one(ENOMEM); 4227a: 2081 movel %d1,%a0@ <== NOT EXECUTED jnode = temp_mt_entry->mt_fs_root.node_access; jnode->st_ino = fs_info->ino_count; return 0; } 4227c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042280 : /* * 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 ) 42280: 4280 clrl %d0 <== NOT EXECUTED 42282: 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 */ ) { 42284: 4e56 ffbc linkw %fp,#-68 <== NOT EXECUTED 42288: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 4228c: 2f03 movel %d3,%sp@- <== NOT EXECUTED int i; /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 4228e: 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 */ ) { 42290: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42292: 242e 0010 movel %fp@(16),%d2 <== 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 ) 42296: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED int i; /* * Verify this node can be linked to. */ info.hard_link.link_node = to_loc->node_access; 4229a: 2d48 ffe0 movel %a0,%fp@(-32) <== NOT EXECUTED if ( info.hard_link.link_node->st_nlink >= LINK_MAX ) 4229e: b280 cmpl %d0,%d1 <== NOT EXECUTED 422a0: 6578 bcss 4231a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EMLINK ); /* * Remove any separators at the end of the string. */ IMFS_get_token( token, strlen( token ), new_name, &i ); 422a2: 2f02 movel %d2,%sp@- <== NOT EXECUTED 422a4: 260e movel %fp,%d3 <== NOT EXECUTED 422a6: 0683 ffff ffbf addil #-65,%d3 <== NOT EXECUTED 422ac: 4eb9 0004 fd3c jsr 4fd3c <== NOT EXECUTED 422b2: 588f addql #4,%sp <== NOT EXECUTED 422b4: 486e fffc pea %fp@(-4) <== NOT EXECUTED 422b8: 2f03 movel %d3,%sp@- <== NOT EXECUTED 422ba: 2f00 movel %d0,%sp@- <== NOT EXECUTED 422bc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 422be: 4eb9 0004 aa28 jsr 4aa28 <== 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( 422c4: 486e ffe0 pea %fp@(-32) <== NOT EXECUTED 422c8: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 422ce: 2f03 movel %d3,%sp@- <== NOT EXECUTED 422d0: 4878 0003 pea 3 <== NOT EXECUTED 422d4: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 422d8: 4eb9 0004 9efa jsr 49efa <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) 422de: 4fef 0024 lea %sp@(36),%sp <== NOT EXECUTED 422e2: 4a80 tstl %d0 <== NOT EXECUTED 422e4: 674e beqs 42334 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOMEM ); /* * Increment the link count of the node being pointed to. */ info.hard_link.link_node->st_nlink++; 422e6: 206e ffe0 moveal %fp@(-32),%a0 <== NOT EXECUTED 422ea: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 422ee: 5280 addql #1,%d0 <== NOT EXECUTED 422f0: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( info.hard_link.link_node ); 422f4: 42a7 clrl %sp@- <== NOT EXECUTED 422f6: 486e fff4 pea %fp@(-12) <== NOT EXECUTED 422fa: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 42300: 206e ffe0 moveal %fp@(-32),%a0 <== NOT EXECUTED return 0; 42304: 508f addql #8,%sp <== NOT EXECUTED 42306: 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 ); 42308: 216e fff4 0044 movel %fp@(-12),%a0@(68) <== NOT EXECUTED return 0; } 4230e: 242e ffb4 movel %fp@(-76),%d2 <== NOT EXECUTED 42312: 262e ffb8 movel %fp@(-72),%d3 <== NOT EXECUTED 42316: 4e5e unlk %fp <== NOT EXECUTED 42318: 4e75 rts <== 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 ) rtems_set_errno_and_return_minus_one( EMLINK ); 4231a: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 42320: 741f moveq #31,%d2 <== NOT EXECUTED 42322: 2040 moveal %d0,%a0 <== NOT EXECUTED 42324: 70ff moveq #-1,%d0 <== NOT EXECUTED 42326: 2082 movel %d2,%a0@ <== NOT EXECUTED */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 42328: 242e ffb4 movel %fp@(-76),%d2 <== NOT EXECUTED 4232c: 262e ffb8 movel %fp@(-72),%d3 <== NOT EXECUTED 42330: 4e5e unlk %fp <== NOT EXECUTED 42332: 4e75 rts <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 42334: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 4233a: 242e ffb4 movel %fp@(-76),%d2 <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4233e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42340: 720c moveq #12,%d1 <== NOT EXECUTED 42342: 70ff moveq #-1,%d0 <== NOT EXECUTED */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } 42344: 262e ffb8 movel %fp@(-72),%d3 <== NOT EXECUTED 42348: 4e5e unlk %fp <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 4234a: 2081 movel %d1,%a0@ <== NOT EXECUTED */ info.hard_link.link_node->st_nlink++; IMFS_update_ctime( info.hard_link.link_node ); return 0; } ... =============================================================================== 0004d258 : */ MEMFILE_STATIC int IMFS_memfile_addblock( IMFS_jnode_t *the_jnode, unsigned int block ) { 4d258: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4d25c: 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 ); 4d25e: 4878 0001 pea 1 <== NOT EXECUTED 4d262: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4d266: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d26a: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED if ( *block_entry_ptr ) 4d270: 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 ); 4d274: 2440 moveal %d0,%a2 <== NOT EXECUTED if ( *block_entry_ptr ) 4d276: 4a92 tstl %a2@ <== NOT EXECUTED 4d278: 670a beqs 4d284 <== NOT EXECUTED if ( !memory ) return 1; *block_entry_ptr = memory; return 0; } 4d27a: 246e fffc moveal %fp@(-4),%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; 4d27e: 4280 clrl %d0 <== NOT EXECUTED if ( !memory ) return 1; *block_entry_ptr = memory; return 0; } 4d280: 4e5e unlk %fp <== NOT EXECUTED 4d282: 4e75 rts <== NOT EXECUTED return 0; /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); 4d284: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED if ( !memory ) 4d28a: 4a80 tstl %d0 <== NOT EXECUTED 4d28c: 670c beqs 4d29a <== NOT EXECUTED return 1; *block_entry_ptr = memory; 4d28e: 2480 movel %d0,%a2@ <== NOT EXECUTED return 0; } 4d290: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED memory = memfile_alloc_block(); if ( !memory ) return 1; *block_entry_ptr = memory; return 0; 4d294: 4280 clrl %d0 <== NOT EXECUTED } 4d296: 4e5e unlk %fp <== NOT EXECUTED 4d298: 4e75 rts <== NOT EXECUTED 4d29a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED /* * There is no memory for this block number so allocate it. */ memory = memfile_alloc_block(); if ( !memory ) return 1; 4d29e: 7001 moveq #1,%d0 <== NOT EXECUTED *block_entry_ptr = memory; return 0; } 4d2a0: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004d446 : IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4d446: 4280 clrl %d0 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4d448: 4e56 ffdc linkw %fp,#-36 <== NOT EXECUTED 4d44c: 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 ) 4d450: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d456: 2406 movel %d6,%d2 <== NOT EXECUTED 4d458: e48a lsrl #2,%d2 <== NOT EXECUTED 4d45a: 2802 movel %d2,%d4 <== NOT EXECUTED 4d45c: 5284 addql #1,%d4 <== NOT EXECUTED 4d45e: 4c02 4800 mulsl %d2,%d4 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4d462: 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 ) 4d466: 5284 addql #1,%d4 <== NOT EXECUTED 4d468: 4c02 4800 mulsl %d2,%d4 <== NOT EXECUTED */ MEMFILE_STATIC int IMFS_memfile_extend( IMFS_jnode_t *the_jnode, off_t new_length ) { 4d46c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4d470: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED IMFS_assert( the_jnode->type == IMFS_MEMORY_FILE ); /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) 4d474: 5384 subql #1,%d4 <== NOT EXECUTED 4d476: 4c06 4800 mulsl %d6,%d4 <== NOT EXECUTED 4d47a: 2204 movel %d4,%d1 <== NOT EXECUTED 4d47c: 2800 movel %d0,%d4 <== NOT EXECUTED 4d47e: 2a01 movel %d1,%d5 <== NOT EXECUTED 4d480: 9a83 subl %d3,%d5 <== NOT EXECUTED 4d482: 9982 subxl %d2,%d4 <== NOT EXECUTED 4d484: 6f00 00ae blew 4d534 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); /* * Verify new file size is actually larger than current size */ if ( new_length <= the_jnode->info.file.size ) 4d488: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4d48c: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4d490: 2002 movel %d2,%d0 <== NOT EXECUTED 4d492: 2203 movel %d3,%d1 <== NOT EXECUTED 4d494: 9285 subl %d5,%d1 <== NOT EXECUTED 4d496: 9184 subxl %d4,%d0 <== NOT EXECUTED 4d498: 6f5e bles 4d4f8 <== NOT EXECUTED return 0; /* * Calculate the number of range of blocks to allocate */ new_blocks = new_length / IMFS_MEMFILE_BYTES_PER_BLOCK; 4d49a: 49f9 0005 a780 lea 5a780 <__divdi3>,%a4 <== NOT EXECUTED 4d4a0: 2e06 movel %d6,%d7 <== NOT EXECUTED 4d4a2: 5bc6 smi %d6 <== NOT EXECUTED 4d4a4: 49c6 extbl %d6 <== NOT EXECUTED 4d4a6: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d4a8: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d4aa: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d4ac: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d4ae: 4e94 jsr %a4@ <== NOT EXECUTED 4d4b0: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d4b4: 2641 moveal %d1,%a3 <== NOT EXECUTED old_blocks = the_jnode->info.file.size / IMFS_MEMFILE_BYTES_PER_BLOCK; 4d4b6: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d4b8: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d4ba: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d4bc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d4be: 4e94 jsr %a4@ <== NOT EXECUTED 4d4c0: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d4c4: 2c01 movel %d1,%d6 <== NOT EXECUTED /* * Now allocate each of those blocks. */ for ( block=old_blocks ; block<=new_blocks ; block++ ) { 4d4c6: b28b cmpl %a3,%d1 <== NOT EXECUTED 4d4c8: 621a bhis 4d4e4 <== NOT EXECUTED 4d4ca: 2801 movel %d1,%d4 <== NOT EXECUTED 4d4cc: 49f9 0004 d258 lea 4d258 ,%a4 <== NOT EXECUTED if ( IMFS_memfile_addblock( the_jnode, block ) ) { 4d4d2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d4d4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d4d6: 4e94 jsr %a4@ <== NOT EXECUTED 4d4d8: 508f addql #8,%sp <== NOT EXECUTED 4d4da: 4a80 tstl %d0 <== NOT EXECUTED 4d4dc: 6626 bnes 4d504 <== 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++ ) { 4d4de: 5284 addql #1,%d4 <== NOT EXECUTED 4d4e0: b88b cmpl %a3,%d4 <== NOT EXECUTED 4d4e2: 63ee blss 4d4d2 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; 4d4e4: 4280 clrl %d0 <== NOT EXECUTED } /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; 4d4e6: 2542 004c movel %d2,%a2@(76) <== NOT EXECUTED 4d4ea: 2543 0050 movel %d3,%a2@(80) <== NOT EXECUTED return 0; } 4d4ee: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d4f4: 4e5e unlk %fp <== NOT EXECUTED 4d4f6: 4e75 rts <== NOT EXECUTED /* * Verify new file size is actually larger than current size */ if ( new_length <= the_jnode->info.file.size ) return 0; 4d4f8: 4280 clrl %d0 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4d4fa: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d500: 4e5e unlk %fp <== NOT EXECUTED 4d502: 4e75 rts <== 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-- ) { 4d504: b886 cmpl %d6,%d4 <== NOT EXECUTED 4d506: 6514 bcss 4d51c <== NOT EXECUTED 4d508: 47f9 0004 d41e lea 4d41e ,%a3 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4d50e: 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-- ) { 4d510: 5384 subql #1,%d4 <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); 4d512: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d514: 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-- ) { 4d516: 508f addql #8,%sp <== NOT EXECUTED 4d518: b886 cmpl %d6,%d4 <== NOT EXECUTED 4d51a: 64f2 bccs 4d50e <== NOT EXECUTED IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 4d51c: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4d522: 721c moveq #28,%d1 <== NOT EXECUTED 4d524: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d526: 70ff moveq #-1,%d0 <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4d528: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED for ( block=old_blocks ; block<=new_blocks ; block++ ) { if ( IMFS_memfile_addblock( the_jnode, block ) ) { for ( ; block>=old_blocks ; block-- ) { IMFS_memfile_remove_block( the_jnode, block ); } rtems_set_errno_and_return_minus_one( ENOSPC ); 4d52e: 2081 movel %d1,%a0@ <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4d530: 4e5e unlk %fp <== NOT EXECUTED 4d532: 4e75 rts <== NOT EXECUTED /* * Verify new file size is supported */ if ( new_length >= IMFS_MEMFILE_MAXIMUM_SIZE ) rtems_set_errno_and_return_minus_one( EINVAL ); 4d534: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4d53a: 7416 moveq #22,%d2 <== NOT EXECUTED 4d53c: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d53e: 70ff moveq #-1,%d0 <== NOT EXECUTED 4d540: 2082 movel %d2,%a0@ <== NOT EXECUTED /* * Set the new length of the file. */ the_jnode->info.file.size = new_length; return 0; } 4d542: 4cee 1cfc ffdc moveml %fp@(-36),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d548: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004ce2c : #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4ce2c: 4e56 fff0 linkw %fp,#-16 <== NOT EXECUTED my_block = block; /* * Is the block number in the simple indirect portion? */ if ( my_block <= LAST_INDIRECT ) { 4ce30: 2239 0005 f324 movel 5f324 ,%d1<== NOT EXECUTED 4ce36: e489 lsrl #2,%d1 <== NOT EXECUTED 4ce38: 2001 movel %d1,%d0 <== NOT EXECUTED 4ce3a: 5380 subql #1,%d0 <== NOT EXECUTED #endif IMFS_jnode_t *the_jnode, unsigned int block, int malloc_it ) { 4ce3c: 48d7 041c moveml %d2-%d4/%a2,%sp@ <== NOT EXECUTED 4ce40: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED 4ce44: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4ce48: 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 ) { 4ce4c: b082 cmpl %d2,%d0 <== NOT EXECUTED 4ce4e: 651e bcss 4ce6e <== NOT EXECUTED p = info->indirect; 4ce50: 226a 0054 moveal %a2@(84),%a1 <== NOT EXECUTED if ( malloc_it ) { 4ce54: 4a88 tstl %a0 <== NOT EXECUTED 4ce56: 675a beqs 4ceb2 <== NOT EXECUTED if ( !p ) { 4ce58: 4a89 tstl %a1 <== NOT EXECUTED 4ce5a: 6700 00c0 beqw 4cf1c <== NOT EXECUTED } if ( !p ) return 0; return &info->indirect[ my_block ]; 4ce5e: 43f1 2c00 lea %a1@(00000000,%d2:l:4),%a1 <== NOT EXECUTED 4ce62: 2009 movel %a1,%d0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 4ce64: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4ce6a: 4e5e unlk %fp <== NOT EXECUTED 4ce6c: 4e75 rts <== NOT EXECUTED /* * Is the block number in the doubly indirect portion? */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { 4ce6e: 2001 movel %d1,%d0 <== NOT EXECUTED 4ce70: 5280 addql #1,%d0 <== NOT EXECUTED 4ce72: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4ce76: 2240 moveal %d0,%a1 <== NOT EXECUTED 4ce78: 5389 subql #1,%a1 <== NOT EXECUTED 4ce7a: b3c2 cmpal %d2,%a1 <== NOT EXECUTED 4ce7c: 6544 bcss 4cec2 <== NOT EXECUTED my_block -= FIRST_DOUBLY_INDIRECT; 4ce7e: 9481 subl %d1,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; 4ce80: 226a 0058 moveal %a2@(88),%a1 <== NOT EXECUTED */ if ( my_block <= LAST_DOUBLY_INDIRECT ) { my_block -= FIRST_DOUBLY_INDIRECT; singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4ce84: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 4ce88: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; p = info->doubly_indirect; if ( malloc_it ) { 4ce8c: 4a88 tstl %a0 <== NOT EXECUTED 4ce8e: 6700 0104 beqw 4cf94 <== NOT EXECUTED if ( !p ) { 4ce92: 4a89 tstl %a1 <== NOT EXECUTED 4ce94: 6700 00a0 beqw 4cf36 <== NOT EXECUTED if ( !p ) return 0; info->doubly_indirect = p; } p1 = (block_p *)p[ doubly ]; 4ce98: 45f1 2c00 lea %a1@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4ce9c: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 4ce9e: 4a88 tstl %a0 <== NOT EXECUTED 4cea0: 6764 beqs 4cf06 <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; return (block_p *)&p2[ singly ]; 4cea2: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4cea6: 2008 movel %a0,%d0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 4cea8: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4ceae: 4e5e unlk %fp <== NOT EXECUTED 4ceb0: 4e75 rts <== NOT EXECUTED info->indirect = p; } return &info->indirect[ my_block ]; } if ( !p ) 4ceb2: 4a89 tstl %a1 <== NOT EXECUTED 4ceb4: 66a8 bnes 4ce5e <== NOT EXECUTED if ( !p1 ) return 0; p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; 4ceb6: 4280 clrl %d0 <== NOT EXECUTED /* * This means the requested block number is out of range. */ return 0; } 4ceb8: 4cee 041c fff0 moveml %fp@(-16),%d2-%d4/%a2 <== NOT EXECUTED 4cebe: 4e5e unlk %fp <== NOT EXECUTED 4cec0: 4e75 rts <== NOT EXECUTED } /* * Is the block number in the triply indirect portion? */ if ( my_block <= LAST_TRIPLY_INDIRECT ) { 4cec2: 2600 movel %d0,%d3 <== NOT EXECUTED 4cec4: 5283 addql #1,%d3 <== NOT EXECUTED 4cec6: 4c01 3800 mulsl %d1,%d3 <== NOT EXECUTED 4ceca: 5383 subql #1,%d3 <== NOT EXECUTED 4cecc: b682 cmpl %d2,%d3 <== NOT EXECUTED 4cece: 65e6 bcss 4ceb6 <== NOT EXECUTED my_block -= FIRST_TRIPLY_INDIRECT; 4ced0: 9480 subl %d0,%d2 <== NOT EXECUTED singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; 4ced2: 4c41 2003 remul %d1,%d3,%d2 <== NOT EXECUTED 4ced6: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS; doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; 4ceda: 226a 005c moveal %a2@(92),%a1 <== NOT EXECUTED if ( my_block <= LAST_TRIPLY_INDIRECT ) { my_block -= FIRST_TRIPLY_INDIRECT; singly = my_block % IMFS_MEMFILE_BLOCK_SLOTS; doubly = my_block / IMFS_MEMFILE_BLOCK_SLOTS; triply = doubly / IMFS_MEMFILE_BLOCK_SLOTS; 4cede: 4c41 2004 remul %d1,%d4,%d2 <== NOT EXECUTED 4cee2: 4c41 2002 remul %d1,%d2,%d2 <== NOT EXECUTED doubly %= IMFS_MEMFILE_BLOCK_SLOTS; p = info->triply_indirect; if ( malloc_it ) { 4cee6: 4a88 tstl %a0 <== NOT EXECUTED 4cee8: 6700 00c4 beqw 4cfae <== NOT EXECUTED if ( !p ) { 4ceec: 4a89 tstl %a1 <== NOT EXECUTED 4ceee: 6700 0084 beqw 4cf74 <== NOT EXECUTED if ( !p ) return 0; info->triply_indirect = p; } p1 = (block_p *) p[ triply ]; 4cef2: 45f1 2c00 lea %a1@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4cef6: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 4cef8: 4a88 tstl %a0 <== NOT EXECUTED 4cefa: 675a beqs 4cf56 <== NOT EXECUTED if ( !p1 ) return 0; p[ triply ] = (block_p) p1; } p2 = (block_p *)p1[ doubly ]; 4cefc: 45f0 4c00 lea %a0@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 4cf00: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p2 ) { 4cf02: 4a88 tstl %a0 <== NOT EXECUTED 4cf04: 669c bnes 4cea2 <== NOT EXECUTED p2 = memfile_alloc_block(); 4cf06: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED 4cf0c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p2 ) 4cf0e: 4a80 tstl %d0 <== NOT EXECUTED 4cf10: 67a4 beqs 4ceb6 <== NOT EXECUTED return 0; p1[ doubly ] = (block_p) p2; 4cf12: 2480 movel %d0,%a2@ <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; return (block_p *)&p2[ singly ]; 4cf14: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4cf18: 2008 movel %a0,%d0 <== NOT EXECUTED 4cf1a: 608c bras 4cea8 <== NOT EXECUTED p = info->indirect; if ( malloc_it ) { if ( !p ) { p = memfile_alloc_block(); 4cf1c: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED if ( !p ) 4cf22: 4a80 tstl %d0 <== NOT EXECUTED 4cf24: 6790 beqs 4ceb6 <== NOT EXECUTED return 0; info->indirect = p; 4cf26: 2240 moveal %d0,%a1 <== NOT EXECUTED } if ( !p ) return 0; return &info->indirect[ my_block ]; 4cf28: 43f1 2c00 lea %a1@(00000000,%d2:l:4),%a1 <== NOT EXECUTED if ( !p ) { p = memfile_alloc_block(); if ( !p ) return 0; info->indirect = p; 4cf2c: 2540 0054 movel %d0,%a2@(84) <== NOT EXECUTED } if ( !p ) return 0; return &info->indirect[ my_block ]; 4cf30: 2009 movel %a1,%d0 <== NOT EXECUTED 4cf32: 6000 ff30 braw 4ce64 <== NOT EXECUTED p = info->doubly_indirect; if ( malloc_it ) { if ( !p ) { p = memfile_alloc_block(); 4cf36: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED 4cf3c: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !p ) 4cf3e: 4a80 tstl %d0 <== NOT EXECUTED 4cf40: 6700 ff74 beqw 4ceb6 <== NOT EXECUTED return 0; info->doubly_indirect = p; 4cf44: 2540 0058 movel %d0,%a2@(88) <== NOT EXECUTED } p1 = (block_p *)p[ doubly ]; 4cf48: 45f1 2c00 lea %a1@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4cf4c: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 4cf4e: 4a88 tstl %a0 <== NOT EXECUTED 4cf50: 6600 ff50 bnew 4cea2 <== NOT EXECUTED 4cf54: 60b0 bras 4cf06 <== NOT EXECUTED info->triply_indirect = p; } p1 = (block_p *) p[ triply ]; if ( !p1 ) { p1 = memfile_alloc_block(); 4cf56: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED 4cf5c: 2040 moveal %d0,%a0 <== NOT EXECUTED if ( !p1 ) 4cf5e: 4a80 tstl %d0 <== NOT EXECUTED 4cf60: 6700 ff54 beqw 4ceb6 <== NOT EXECUTED return 0; p[ triply ] = (block_p) p1; 4cf64: 2480 movel %d0,%a2@ <== NOT EXECUTED } p2 = (block_p *)p1[ doubly ]; 4cf66: 45f0 4c00 lea %a0@(00000000,%d4:l:4),%a2 <== NOT EXECUTED 4cf6a: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p2 ) { 4cf6c: 4a88 tstl %a0 <== NOT EXECUTED 4cf6e: 6600 ff32 bnew 4cea2 <== NOT EXECUTED 4cf72: 6092 bras 4cf06 <== NOT EXECUTED p = info->triply_indirect; if ( malloc_it ) { if ( !p ) { p = memfile_alloc_block(); 4cf74: 4eb9 0004 ce08 jsr 4ce08 <== NOT EXECUTED 4cf7a: 2240 moveal %d0,%a1 <== NOT EXECUTED if ( !p ) 4cf7c: 4a80 tstl %d0 <== NOT EXECUTED 4cf7e: 6700 ff36 beqw 4ceb6 <== NOT EXECUTED return 0; info->triply_indirect = p; 4cf82: 2540 005c movel %d0,%a2@(92) <== NOT EXECUTED } p1 = (block_p *) p[ triply ]; 4cf86: 45f1 2c00 lea %a1@(00000000,%d2:l:4),%a2 <== NOT EXECUTED 4cf8a: 2052 moveal %a2@,%a0 <== NOT EXECUTED if ( !p1 ) { 4cf8c: 4a88 tstl %a0 <== NOT EXECUTED 4cf8e: 6600 ff6c bnew 4cefc <== NOT EXECUTED 4cf92: 60c2 bras 4cf56 <== NOT EXECUTED } return (block_p *)&p1[ singly ]; } if ( !p ) 4cf94: 4a89 tstl %a1 <== NOT EXECUTED 4cf96: 6700 ff1e beqw 4ceb6 <== NOT EXECUTED return 0; p = (block_p *)p[ doubly ]; 4cf9a: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p ) 4cf9e: 4a88 tstl %a0 <== NOT EXECUTED 4cfa0: 6700 ff14 beqw 4ceb6 <== NOT EXECUTED p2 = (block_p *)p1[ doubly ]; if ( !p2 ) return 0; return (block_p *)&p2[ singly ]; 4cfa4: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4cfa8: 2008 movel %a0,%d0 <== NOT EXECUTED 4cfaa: 6000 fefc braw 4cea8 <== NOT EXECUTED p1[ doubly ] = (block_p) p2; } return (block_p *)&p2[ singly ]; } if ( !p ) 4cfae: 4a89 tstl %a1 <== NOT EXECUTED 4cfb0: 6700 ff04 beqw 4ceb6 <== NOT EXECUTED return 0; p1 = (block_p *) p[ triply ]; 4cfb4: 2071 2c00 moveal %a1@(00000000,%d2:l:4),%a0 <== NOT EXECUTED if ( !p1 ) 4cfb8: 4a88 tstl %a0 <== NOT EXECUTED 4cfba: 6700 fefa beqw 4ceb6 <== NOT EXECUTED return 0; p2 = (block_p *)p1[ doubly ]; 4cfbe: 2070 4c00 moveal %a0@(00000000,%d4:l:4),%a0 <== NOT EXECUTED if ( !p2 ) 4cfc2: 4a88 tstl %a0 <== NOT EXECUTED 4cfc4: 6700 fef0 beqw 4ceb6 <== NOT EXECUTED return 0; return (block_p *)&p2[ singly ]; 4cfc8: 41f0 3c00 lea %a0@(00000000,%d3:l:4),%a0 <== NOT EXECUTED 4cfcc: 2008 movel %a0,%d0 <== NOT EXECUTED 4cfce: 6000 fed8 braw 4cea8 <== NOT EXECUTED =============================================================================== 00045036 : * 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 ) { 45036: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 4503a: 2039 0006 55f4 movel 655f4 ,%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 ) { 45040: 2f02 movel %d2,%sp@- <== NOT EXECUTED return IMFS_MEMFILE_MAXIMUM_SIZE; 45042: 2400 movel %d0,%d2 <== NOT EXECUTED 45044: e48a lsrl #2,%d2 <== NOT EXECUTED 45046: 2202 movel %d2,%d1 <== NOT EXECUTED 45048: 5281 addql #1,%d1 <== NOT EXECUTED 4504a: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED 4504e: 5281 addql #1,%d1 <== NOT EXECUTED 45050: 4c02 1800 mulsl %d2,%d1 <== NOT EXECUTED } 45054: 241f movel %sp@+,%d2 <== NOT EXECUTED * using the IMFS memory file type. * */ int IMFS_memfile_maximum_size( void ) { return IMFS_MEMFILE_MAXIMUM_SIZE; 45056: 5381 subql #1,%d1 <== NOT EXECUTED } 45058: 4c01 0800 mulsl %d1,%d0 <== NOT EXECUTED 4505c: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004cfd2 : IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 4cfd2: 4e56 ffc8 linkw %fp,#-56 <== NOT EXECUTED 4cfd6: 48d7 3cfc moveml %d2-%d7/%a2-%a5,%sp@ <== NOT EXECUTED 4cfda: 246e 0008 moveal %fp@(8),%a2 <== 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) { 4cfde: 7806 moveq #6,%d4 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, unsigned char *destination, unsigned int length ) { 4cfe0: 266e 0014 moveal %fp@(20),%a3 <== NOT EXECUTED 4cfe4: 2a6e 0018 moveal %fp@(24),%a5 <== NOT EXECUTED 4cfe8: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4cfec: 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) { 4cff0: b8aa 0048 cmpl %a2@(72),%d4 <== NOT EXECUTED 4cff4: 6700 017c beqw 4d172 <== 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; 4cff8: 43f5 3800 lea %a5@(00000000,%d3:l),%a1 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) 4cffc: 4280 clrl %d0 <== NOT EXECUTED 4cffe: 2209 movel %a1,%d1 <== NOT EXECUTED 4d000: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4d004: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4d008: 2c00 movel %d0,%d6 <== NOT EXECUTED 4d00a: 2e01 movel %d1,%d7 <== NOT EXECUTED 4d00c: 9e85 subl %d5,%d7 <== NOT EXECUTED 4d00e: 9d84 subxl %d4,%d6 <== NOT EXECUTED 4d010: 6f00 0110 blew 4d122 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4d014: 2c39 0005 f324 movel 5f324 ,%d6<== 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; if ( last_byte > the_jnode->info.file.size ) my_length = the_jnode->info.file.size - start; 4d01a: 2e05 movel %d5,%d7 <== NOT EXECUTED 4d01c: 9e83 subl %d3,%d7 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4d01e: 2a06 movel %d6,%d5 <== NOT EXECUTED 4d020: 5bc4 smi %d4 <== NOT EXECUTED 4d022: 49c4 extbl %d4 <== NOT EXECUTED 4d024: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d026: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d028: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d02a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d02c: 4eb9 0005 ab34 jsr 5ab34 <__moddi3> <== NOT EXECUTED 4d032: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d036: 2841 moveal %d1,%a4 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4d038: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d03a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d03c: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d03e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d040: 4eb9 0005 a780 jsr 5a780 <__divdi3> <== NOT EXECUTED 4d046: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d04a: 2401 movel %d1,%d2 <== NOT EXECUTED if ( start_offset ) { 4d04c: 4a8c tstl %a4 <== NOT EXECUTED 4d04e: 6700 010e beqw 4d15e <== 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 ); 4d052: 42a7 clrl %sp@- <== NOT EXECUTED 4d054: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d056: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d058: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED if ( !block_ptr ) 4d05e: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d062: 4a80 tstl %d0 <== NOT EXECUTED 4d064: 6700 01c0 beqw 4d226 <== 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; 4d068: 9c8c subl %a4,%d6 <== NOT EXECUTED 4d06a: 2207 movel %d7,%d1 <== NOT EXECUTED 4d06c: bc87 cmpl %d7,%d6 <== NOT EXECUTED 4d06e: 6500 0162 bcsw 4d1d2 <== 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 ); 4d072: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d074: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d076: d9d0 addal %a0@,%a4 <== NOT EXECUTED dest += to_copy; 4d078: 280b movel %a3,%d4 <== NOT EXECUTED 4d07a: d881 addl %d1,%d4 <== NOT EXECUTED block++; my_length -= to_copy; 4d07c: 9e81 subl %d1,%d7 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); dest += to_copy; block++; 4d07e: 5282 addql #1,%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 ); 4d080: 2f0c movel %a4,%sp@- <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; copied += to_copy; 4d082: 2841 moveal %d1,%a4 <== 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 ); 4d084: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d086: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 4d08c: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d092: 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 ) { 4d096: bc87 cmpl %d7,%d6 <== NOT EXECUTED 4d098: 623c bhis 4d0d6 <== NOT EXECUTED 4d09a: 47f9 0004 ce2c lea 4ce2c ,%a3<== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4d0a0: 4bf9 0004 f190 lea 4f190 ,%a5 <== 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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d0a6: 42a7 clrl %sp@- <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); dest += to_copy; block++; my_length -= to_copy; 4d0a8: 9e86 subl %d6,%d7 <== 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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d0aa: 2f02 movel %d2,%sp@- <== NOT EXECUTED if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); dest += to_copy; block++; 4d0ac: 5282 addql #1,%d2 <== 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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d0ae: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d0b0: 4e93 jsr %a3@ <== NOT EXECUTED if ( !block_ptr ) 4d0b2: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d0b6: 4a80 tstl %d0 <== NOT EXECUTED 4d0b8: 6700 00ac beqw 4d166 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], to_copy ); 4d0bc: 2040 moveal %d0,%a0 <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; copied += to_copy; 4d0be: d9c6 addal %d6,%a4 <== 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 ); 4d0c0: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d0c2: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4d0c4: 2f04 movel %d4,%sp@- <== NOT EXECUTED dest += to_copy; 4d0c6: d886 addl %d6,%d4 <== 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 ); 4d0c8: 4e95 jsr %a5@ <== 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 ) { 4d0ca: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d0ce: beb9 0005 f324 cmpl 5f324 ,%d7<== NOT EXECUTED 4d0d4: 64d0 bccs 4d0a6 <== NOT EXECUTED /* * Phase 3: possibly the first part of one block */ IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { 4d0d6: 4a87 tstl %d7 <== NOT EXECUTED 4d0d8: 6728 beqs 4d102 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d0da: 42a7 clrl %sp@- <== NOT EXECUTED 4d0dc: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d0de: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d0e0: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED if ( !block_ptr ) 4d0e6: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d0ea: 4a80 tstl %d0 <== NOT EXECUTED 4d0ec: 6778 beqs 4d166 <== NOT EXECUTED return copied; memcpy( dest, &(*block_ptr)[ 0 ], my_length ); 4d0ee: 2040 moveal %d0,%a0 <== NOT EXECUTED copied += my_length; 4d0f0: d9c7 addal %d7,%a4 <== 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 ); 4d0f2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d0f4: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4d0f6: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d0f8: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED copied += my_length; 4d0fe: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); 4d102: 42a7 clrl %sp@- <== NOT EXECUTED 4d104: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4d108: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4d10e: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return copied; 4d114: 200c movel %a4,%d0 <== NOT EXECUTED 4d116: 508f addql #8,%sp <== NOT EXECUTED } 4d118: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4d11e: 4e5e unlk %fp <== NOT EXECUTED 4d120: 4e75 rts <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4d122: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED /* * Linear files (as created from a tar file are easier to handle * than block files). */ my_length = length; 4d128: 2e0d movel %a5,%d7 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4d12a: 2a06 movel %d6,%d5 <== NOT EXECUTED 4d12c: 5bc4 smi %d4 <== NOT EXECUTED 4d12e: 49c4 extbl %d4 <== NOT EXECUTED 4d130: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d132: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d134: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d136: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d138: 4eb9 0005 ab34 jsr 5ab34 <__moddi3> <== NOT EXECUTED 4d13e: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d142: 2841 moveal %d1,%a4 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4d144: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d146: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d148: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d14a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d14c: 4eb9 0005 a780 jsr 5a780 <__divdi3> <== NOT EXECUTED 4d152: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d156: 2401 movel %d1,%d2 <== NOT EXECUTED if ( start_offset ) { 4d158: 4a8c tstl %a4 <== NOT EXECUTED 4d15a: 6600 fef6 bnew 4d052 <== NOT EXECUTED unsigned int last_byte; unsigned int copied; unsigned int start_offset; unsigned char *dest; dest = destination; 4d15e: 280b movel %a3,%d4 <== NOT EXECUTED */ last_byte = start + length; if ( last_byte > the_jnode->info.file.size ) my_length = the_jnode->info.file.size - start; copied = 0; 4d160: 99cc subal %a4,%a4 <== NOT EXECUTED 4d162: 6000 ff32 braw 4d096 <== NOT EXECUTED IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; 4d166: 200c movel %a4,%d0 <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 4d168: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4d16e: 4e5e unlk %fp <== NOT EXECUTED 4d170: 4e75 rts <== NOT EXECUTED if (the_jnode->type == IMFS_LINEAR_FILE) { unsigned char *file_ptr; file_ptr = (unsigned char *)the_jnode->info.linearfile.direct; if (my_length > (the_jnode->info.linearfile.size - start)) 4d172: 91c8 subal %a0,%a0 <== NOT EXECUTED 4d174: 202a 004c movel %a2@(76),%d0 <== NOT EXECUTED 4d178: 222a 0050 movel %a2@(80),%d1 <== NOT EXECUTED 4d17c: 2d4d fff4 movel %a5,%fp@(-12) <== 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; 4d180: 286a 0054 moveal %a2@(84),%a4 <== NOT EXECUTED if (my_length > (the_jnode->info.linearfile.size - start)) 4d184: 2800 movel %d0,%d4 <== NOT EXECUTED 4d186: 2a01 movel %d1,%d5 <== NOT EXECUTED 4d188: 2d48 fff0 movel %a0,%fp@(-16) <== NOT EXECUTED 4d18c: 9a83 subl %d3,%d5 <== NOT EXECUTED 4d18e: 9982 subxl %d2,%d4 <== NOT EXECUTED 4d190: 2c2e fff0 movel %fp@(-16),%d6 <== NOT EXECUTED 4d194: 2e2e fff4 movel %fp@(-12),%d7 <== NOT EXECUTED 4d198: 9e85 subl %d5,%d7 <== NOT EXECUTED 4d19a: 9d84 subxl %d4,%d6 <== NOT EXECUTED 4d19c: 6f5e bles 4d1fc <== NOT EXECUTED my_length = the_jnode->info.linearfile.size - start; 4d19e: 2e01 movel %d1,%d7 <== NOT EXECUTED 4d1a0: 9e83 subl %d3,%d7 <== NOT EXECUTED memcpy(dest, &file_ptr[start], my_length); 4d1a2: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d1a4: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 4d1a8: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d1aa: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED IMFS_update_atime( the_jnode ); 4d1b0: 42a7 clrl %sp@- <== NOT EXECUTED 4d1b2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4d1b6: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4d1bc: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 4d1c2: 2007 movel %d7,%d0 <== NOT EXECUTED 4d1c4: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 4d1c8: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4d1ce: 4e5e unlk %fp <== NOT EXECUTED 4d1d0: 4e75 rts <== 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; 4d1d2: 2206 movel %d6,%d1 <== 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 ); 4d1d4: 2040 moveal %d0,%a0 <== NOT EXECUTED dest += to_copy; 4d1d6: 280b movel %a3,%d4 <== NOT EXECUTED 4d1d8: d881 addl %d1,%d4 <== NOT EXECUTED block++; my_length -= to_copy; 4d1da: 9e81 subl %d1,%d7 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) return copied; memcpy( dest, &(*block_ptr)[ start_offset ], to_copy ); dest += to_copy; block++; 4d1dc: 5282 addql #1,%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 ); 4d1de: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d1e0: d9d0 addal %a0@,%a4 <== NOT EXECUTED 4d1e2: 2f0c movel %a4,%sp@- <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; copied += to_copy; 4d1e4: 2841 moveal %d1,%a4 <== 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 ); 4d1e6: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d1e8: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED dest += to_copy; block++; my_length -= to_copy; 4d1ee: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d1f4: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d1f8: 6000 fe9c braw 4d096 <== NOT EXECUTED /* * Linear files (as created from a tar file are easier to handle * than block files). */ my_length = length; 4d1fc: 2e0d movel %a5,%d7 <== 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); 4d1fe: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d200: 4874 3800 pea %a4@(00000000,%d3:l) <== NOT EXECUTED 4d204: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d206: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED IMFS_update_atime( the_jnode ); 4d20c: 42a7 clrl %sp@- <== NOT EXECUTED 4d20e: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4d212: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4d218: 256e fff8 003c movel %fp@(-8),%a2@(60) <== NOT EXECUTED return my_length; 4d21e: 2007 movel %d7,%d0 <== NOT EXECUTED 4d220: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED 4d224: 60a2 bras 4d1c8 <== 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; 4d226: 4280 clrl %d0 <== NOT EXECUTED } IMFS_update_atime( the_jnode ); return copied; } 4d228: 4cee 3cfc ffc8 moveml %fp@(-56),%d2-%d7/%a2-%a5 <== NOT EXECUTED 4d22e: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004d304 : * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 4d304: 4e56 ffe0 linkw %fp,#-32 <== NOT EXECUTED 4d308: 48d7 1c7c moveml %d2-%d6/%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; 4d30c: 2839 0005 f324 movel 5f324 ,%d4<== NOT EXECUTED 4d312: e48c lsrl #2,%d4 <== NOT EXECUTED * is better to stick to simple, easy to understand algorithms. */ int IMFS_memfile_remove( IMFS_jnode_t *the_jnode ) { 4d314: 286e 0008 moveal %fp@(8),%a4 <== NOT EXECUTED * + doubly indirect * + triply indirect */ info = &the_jnode->info.file; if ( info->indirect ) { 4d318: 4aac 0054 tstl %a4@(84) <== NOT EXECUTED 4d31c: 670e beqs 4d32c <== NOT EXECUTED memfile_free_blocks_in_table( &info->indirect, to_free ); 4d31e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d320: 486c 0054 pea %a4@(84) <== NOT EXECUTED 4d324: 4eb9 0004 d2be jsr 4d2be <== NOT EXECUTED 4d32a: 508f addql #8,%sp <== NOT EXECUTED } if ( info->doubly_indirect ) { 4d32c: 206c 0058 moveal %a4@(88),%a0 <== NOT EXECUTED 4d330: 4a88 tstl %a0 <== NOT EXECUTED 4d332: 6750 beqs 4d384 <== NOT EXECUTED for ( i=0 ; i,%d1<== NOT EXECUTED 4d33a: 2001 movel %d1,%d0 <== NOT EXECUTED 4d33c: e488 lsrl #2,%d0 <== NOT EXECUTED 4d33e: 47f9 0004 d2be lea 4d2be ,%a3<== NOT EXECUTED 4d344: 6734 beqs 4d37a <== NOT EXECUTED 4d346: 4280 clrl %d0 <== NOT EXECUTED 4d348: 4282 clrl %d2 <== NOT EXECUTED 4d34a: 47f9 0004 d2be lea 4d2be ,%a3<== NOT EXECUTED 4d350: 5282 addql #1,%d2 <== NOT EXECUTED if ( info->doubly_indirect[i] ) { 4d352: e588 lsll #2,%d0 <== NOT EXECUTED 4d354: 4ab0 0800 tstl %a0@(00000000,%d0:l) <== NOT EXECUTED 4d358: 6710 beqs 4d36a <== NOT EXECUTED memfile_free_blocks_in_table( 4d35a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d35c: 4870 0800 pea %a0@(00000000,%d0:l) <== NOT EXECUTED 4d360: 4e93 jsr %a3@ <== NOT EXECUTED 4d362: 2239 0005 f324 movel 5f324 ,%d1<== NOT EXECUTED 4d368: 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 <== NOT EXECUTED 4d374: 206c 0058 moveal %a4@(88),%a0 <== NOT EXECUTED 4d378: 60d6 bras 4d350 <== 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 ); 4d37a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d37c: 486c 0058 pea %a4@(88) <== NOT EXECUTED 4d380: 4e93 jsr %a3@ <== NOT EXECUTED 4d382: 508f addql #8,%sp <== NOT EXECUTED } if ( info->triply_indirect ) { 4d384: 206c 005c moveal %a4@(92),%a0 <== NOT EXECUTED 4d388: 4a88 tstl %a0 <== NOT EXECUTED 4d38a: 6700 0086 beqw 4d412 <== NOT EXECUTED for ( i=0 ; i,%d1<== NOT EXECUTED 4d394: 2001 movel %d1,%d0 <== NOT EXECUTED 4d396: e488 lsrl #2,%d0 <== NOT EXECUTED 4d398: 47f9 0004 d2be lea 4d2be ,%a3<== NOT EXECUTED 4d39e: 6768 beqs 4d408 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; 4d3a0: 2450 moveal %a0@,%a2 <== NOT EXECUTED 4d3a2: 47f9 0004 d2be lea 4d2be ,%a3<== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4d3a8: 4a8a tstl %a2 <== NOT EXECUTED 4d3aa: 675c beqs 4d408 <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 4d3ac: 4286 clrl %d6 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4d3ae: 4285 clrl %d5 <== NOT EXECUTED break; for ( j=0 ; j <== NOT EXECUTED 4d3b4: 4280 clrl %d0 <== NOT EXECUTED 4d3b6: 4282 clrl %d2 <== NOT EXECUTED 4d3b8: 5282 addql #1,%d2 <== NOT EXECUTED if ( p[j] ) { 4d3ba: e588 lsll #2,%d0 <== NOT EXECUTED 4d3bc: 4ab2 0800 tstl %a2@(00000000,%d0:l) <== NOT EXECUTED 4d3c0: 6710 beqs 4d3d2 <== NOT EXECUTED memfile_free_blocks_in_table( (block_p **)&p[j], to_free); 4d3c2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d3c4: 4872 0800 pea %a2@(00000000,%d0:l) <== NOT EXECUTED 4d3c8: 4e93 jsr %a3@ <== NOT EXECUTED 4d3ca: 2239 0005 f324 movel 5f324 ,%d1<== NOT EXECUTED 4d3d0: 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 <== NOT EXECUTED if ( p[j] ) { memfile_free_blocks_in_table( (block_p **)&p[j], to_free); } } memfile_free_blocks_in_table( 4d3dc: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d3de: dcac 005c addl %a4@(92),%d6 <== 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,%d1<== NOT EXECUTED 4d3ee: 2001 movel %d1,%d0 <== NOT EXECUTED 4d3f0: 508f addql #8,%sp <== NOT EXECUTED 4d3f2: e488 lsrl #2,%d0 <== NOT EXECUTED 4d3f4: ba80 cmpl %d0,%d5 <== NOT EXECUTED 4d3f6: 6410 bccs 4d408 <== NOT EXECUTED p = (block_p *) info->triply_indirect[i]; if ( !p ) /* ensure we have a valid pointer */ 4d3f8: 2c05 movel %d5,%d6 <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 4d3fa: 206c 005c moveal %a4@(92),%a0 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4d3fe: e58e lsll #2,%d6 <== NOT EXECUTED } if ( info->triply_indirect ) { for ( i=0 ; itriply_indirect[i]; 4d400: 2470 6800 moveal %a0@(00000000,%d6:l),%a2 <== NOT EXECUTED if ( !p ) /* ensure we have a valid pointer */ 4d404: 4a8a tstl %a2 <== NOT EXECUTED 4d406: 66a8 bnes 4d3b0 <== NOT EXECUTED } } memfile_free_blocks_in_table( (block_p **)&info->triply_indirect[i], to_free ); } memfile_free_blocks_in_table( 4d408: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d40a: 486c 005c pea %a4@(92) <== NOT EXECUTED 4d40e: 4e93 jsr %a3@ <== NOT EXECUTED 4d410: 508f addql #8,%sp <== NOT EXECUTED (block_p **)&info->triply_indirect, to_free ); } return 0; } 4d412: 4280 clrl %d0 <== NOT EXECUTED 4d414: 4cee 1c7c ffe0 moveml %fp@(-32),%d2-%d6/%a2-%a4 <== NOT EXECUTED 4d41a: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004d41e : */ MEMFILE_STATIC int IMFS_memfile_remove_block( IMFS_jnode_t *the_jnode, unsigned int block ) { 4d41e: 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 ); 4d422: 42a7 clrl %sp@- <== NOT EXECUTED 4d424: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4d428: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 4d42c: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED IMFS_assert( block_ptr ); ptr = *block_ptr; 4d432: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d434: 2210 movel %a0@,%d1 <== NOT EXECUTED *block_ptr = 0; 4d436: 4290 clrl %a0@ <== NOT EXECUTED memfile_free_block( ptr ); 4d438: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d43a: 4eb9 0004 d2a4 jsr 4d2a4 <== NOT EXECUTED return 1; } 4d440: 7001 moveq #1,%d0 <== NOT EXECUTED 4d442: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004d54c : * 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 ) { 4d54c: 4280 clrl %d0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4d54e: 4e56 ffd4 linkw %fp,#-44 <== NOT EXECUTED 4d552: 48d7 1cfc moveml %d2-%d7/%a2-%a4,%sp@ <== NOT EXECUTED 4d556: 2e2e 0018 movel %fp@(24),%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; 4d55a: 2047 moveal %d7,%a0 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4d55c: 242e 000c movel %fp@(12),%d2 <== NOT EXECUTED 4d560: 262e 0010 movel %fp@(16),%d3 <== NOT EXECUTED 4d564: 246e 0008 moveal %fp@(8),%a2 <== 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; 4d568: d1c3 addal %d3,%a0 <== NOT EXECUTED if ( last_byte > the_jnode->info.file.size ) { 4d56a: 2208 movel %a0,%d1 <== NOT EXECUTED IMFS_jnode_t *the_jnode, off_t start, const unsigned char *source, unsigned int length ) { 4d56c: 286e 0014 moveal %fp@(20),%a4 <== 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 ) { 4d570: 282a 004c movel %a2@(76),%d4 <== NOT EXECUTED 4d574: 2a2a 0050 movel %a2@(80),%d5 <== NOT EXECUTED 4d578: 9a81 subl %d1,%d5 <== NOT EXECUTED 4d57a: 9980 subxl %d0,%d4 <== NOT EXECUTED 4d57c: 6d00 0118 bltw 4d696 <== NOT EXECUTED */ /* * Phase 1: possibly the last part of one block */ start_offset = start % IMFS_MEMFILE_BYTES_PER_BLOCK; 4d580: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d586: 2a06 movel %d6,%d5 <== NOT EXECUTED 4d588: 5bc4 smi %d4 <== NOT EXECUTED 4d58a: 49c4 extbl %d4 <== NOT EXECUTED 4d58c: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d58e: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d590: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d592: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d594: 4eb9 0005 ab34 jsr 5ab34 <__moddi3> <== NOT EXECUTED 4d59a: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d59e: 2641 moveal %d1,%a3 <== NOT EXECUTED block = start / IMFS_MEMFILE_BYTES_PER_BLOCK; 4d5a0: 2f05 movel %d5,%sp@- <== NOT EXECUTED 4d5a2: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d5a4: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4d5a6: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d5a8: 4eb9 0005 a780 jsr 5a780 <__divdi3> <== NOT EXECUTED 4d5ae: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED 4d5b2: 2401 movel %d1,%d2 <== NOT EXECUTED if ( start_offset ) { 4d5b4: 4a8b tstl %a3 <== NOT EXECUTED 4d5b6: 6700 00d6 beqw 4d68e <== 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 ); 4d5ba: 42a7 clrl %sp@- <== NOT EXECUTED 4d5bc: 2f01 movel %d1,%sp@- <== NOT EXECUTED 4d5be: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d5c0: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED if ( !block_ptr ) 4d5c6: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d5ca: 4a80 tstl %d0 <== NOT EXECUTED 4d5cc: 6700 012c beqw 4d6fa <== 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; 4d5d0: 9c8b subl %a3,%d6 <== NOT EXECUTED 4d5d2: be86 cmpl %d6,%d7 <== NOT EXECUTED 4d5d4: 6500 00fa bcsw 4d6d0 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4d5d8: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d5da: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; 4d5dc: 280c movel %a4,%d4 <== NOT EXECUTED 4d5de: d886 addl %d6,%d4 <== NOT EXECUTED block++; my_length -= to_copy; 4d5e0: 9e86 subl %d6,%d7 <== NOT EXECUTED copied += to_copy; 4d5e2: 2606 movel %d6,%d3 <== NOT EXECUTED src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); src += to_copy; block++; 4d5e4: 5282 addql #1,%d2 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4d5e6: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4d5e8: d7d0 addal %a0@,%a3 <== NOT EXECUTED 4d5ea: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d5ec: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; copied += to_copy; 4d5f2: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d5f8: 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 ) { 4d5fc: bc87 cmpl %d7,%d6 <== NOT EXECUTED 4d5fe: 623c bhis 4d63c <== NOT EXECUTED 4d600: 47f9 0004 ce2c lea 4ce2c ,%a3<== 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 ); 4d606: 49f9 0004 f190 lea 4f190 ,%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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d60c: 42a7 clrl %sp@- <== NOT EXECUTED fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); src += to_copy; block++; my_length -= to_copy; 4d60e: 9e86 subl %d6,%d7 <== 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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d610: 2f02 movel %d2,%sp@- <== NOT EXECUTED #if 0 fprintf(stdout, "write %d in %d: %*s\n", to_copy, block, to_copy, src ); #endif memcpy( &(*block_ptr)[ 0 ], src, to_copy ); src += to_copy; block++; 4d612: 5282 addql #1,%d2 <== 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 ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d614: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d616: 4e93 jsr %a3@ <== NOT EXECUTED if ( !block_ptr ) 4d618: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d61c: 4a80 tstl %d0 <== NOT EXECUTED 4d61e: 6700 00a4 beqw 4d6c4 <== 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 ); 4d622: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d624: 2040 moveal %d0,%a0 <== 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( 4d626: d686 addl %d6,%d3 <== 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 ); 4d628: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d62a: 2f10 movel %a0@,%sp@- <== NOT EXECUTED src += to_copy; 4d62c: d886 addl %d6,%d4 <== 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 ); 4d62e: 4e94 jsr %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 ) { 4d630: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d634: beb9 0005 f324 cmpl 5f324 ,%d7<== NOT EXECUTED 4d63a: 64d0 bccs 4d60c <== 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 ) { 4d63c: 4a87 tstl %d7 <== NOT EXECUTED 4d63e: 6728 beqs 4d668 <== NOT EXECUTED block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); 4d640: 42a7 clrl %sp@- <== NOT EXECUTED 4d642: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4d644: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d646: 4eb9 0004 ce2c jsr 4ce2c <== NOT EXECUTED if ( !block_ptr ) 4d64c: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d650: 4a80 tstl %d0 <== NOT EXECUTED 4d652: 6770 beqs 4d6c4 <== 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 ); 4d654: 2f07 movel %d7,%sp@- <== NOT EXECUTED 4d656: 2040 moveal %d0,%a0 <== NOT EXECUTED my_length = 0; copied += to_copy; 4d658: d687 addl %d7,%d3 <== 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 ); 4d65a: 2f04 movel %d4,%sp@- <== NOT EXECUTED 4d65c: 2f10 movel %a0@,%sp@- <== NOT EXECUTED 4d65e: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED my_length = 0; copied += to_copy; 4d664: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); 4d668: 42a7 clrl %sp@- <== NOT EXECUTED 4d66a: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 4d66e: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4d674: 222e fff8 movel %fp@(-8),%d1 <== NOT EXECUTED return copied; 4d678: 2003 movel %d3,%d0 <== NOT EXECUTED 4d67a: 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 ); 4d67c: 2541 0040 movel %d1,%a2@(64) <== NOT EXECUTED 4d680: 2541 0044 movel %d1,%a2@(68) <== NOT EXECUTED return copied; } 4d684: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d68a: 4e5e unlk %fp <== NOT EXECUTED 4d68c: 4e75 rts <== NOT EXECUTED unsigned int last_byte; unsigned int start_offset; int copied; const unsigned char *src; src = source; 4d68e: 280c movel %a4,%d4 <== NOT EXECUTED status = IMFS_memfile_extend( the_jnode, last_byte ); if ( status ) rtems_set_errno_and_return_minus_one( ENOSPC ); } copied = 0; 4d690: 4283 clrl %d3 <== NOT EXECUTED 4d692: 6000 ff68 braw 4d5fc <== NOT EXECUTED * in memory file, then extend the length. */ last_byte = start + my_length; if ( last_byte > the_jnode->info.file.size ) { status = IMFS_memfile_extend( the_jnode, last_byte ); 4d696: 2f08 movel %a0,%sp@- <== NOT EXECUTED 4d698: 2f00 movel %d0,%sp@- <== NOT EXECUTED 4d69a: 2f0a movel %a2,%sp@- <== NOT EXECUTED 4d69c: 4eb9 0004 d446 jsr 4d446 <== NOT EXECUTED if ( status ) 4d6a2: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d6a6: 4a80 tstl %d0 <== NOT EXECUTED 4d6a8: 6700 fed6 beqw 4d580 <== NOT EXECUTED rtems_set_errno_and_return_minus_one( ENOSPC ); 4d6ac: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4d6b2: 761c moveq #28,%d3 <== NOT EXECUTED 4d6b4: 2040 moveal %d0,%a0 <== NOT EXECUTED 4d6b6: 70ff moveq #-1,%d0 <== NOT EXECUTED 4d6b8: 2083 movel %d3,%a0@ <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); return copied; } 4d6ba: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d6c0: 4e5e unlk %fp <== NOT EXECUTED 4d6c2: 4e75 rts <== NOT EXECUTED IMFS_assert( my_length < IMFS_MEMFILE_BYTES_PER_BLOCK ); to_copy = my_length; if ( my_length ) { block_ptr = IMFS_memfile_get_block_pointer( the_jnode, block, 0 ); if ( !block_ptr ) 4d6c4: 2003 movel %d3,%d0 <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); return copied; } 4d6c6: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d6cc: 4e5e unlk %fp <== NOT EXECUTED 4d6ce: 4e75 rts <== 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; 4d6d0: 2c07 movel %d7,%d6 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4d6d2: 2040 moveal %d0,%a0 <== NOT EXECUTED src += to_copy; 4d6d4: 280c movel %a4,%d4 <== NOT EXECUTED 4d6d6: d886 addl %d6,%d4 <== NOT EXECUTED block++; my_length -= to_copy; 4d6d8: 9e86 subl %d6,%d7 <== NOT EXECUTED copied += to_copy; 4d6da: 2606 movel %d6,%d3 <== NOT EXECUTED src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); src += to_copy; block++; 4d6dc: 5282 addql #1,%d2 <== NOT EXECUTED block, to_copy, src ); #endif memcpy( &(*block_ptr)[ start_offset ], src, to_copy ); 4d6de: 2f06 movel %d6,%sp@- <== NOT EXECUTED 4d6e0: 2f0c movel %a4,%sp@- <== NOT EXECUTED 4d6e2: d7d0 addal %a0@,%a3 <== NOT EXECUTED 4d6e4: 2f0b movel %a3,%sp@- <== NOT EXECUTED 4d6e6: 4eb9 0004 f190 jsr 4f190 <== NOT EXECUTED src += to_copy; block++; my_length -= to_copy; copied += to_copy; 4d6ec: 2c39 0005 f324 movel 5f324 ,%d6<== NOT EXECUTED 4d6f2: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 4d6f6: 6000 ff04 braw 4d5fc <== 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; 4d6fa: 4280 clrl %d0 <== NOT EXECUTED } IMFS_mtime_ctime_update( the_jnode ); return copied; } 4d6fc: 4cee 1cfc ffd4 moveml %fp@(-44),%d2-%d7/%a2-%a4 <== NOT EXECUTED 4d702: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042350 : const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 42350: 4e56 ffb0 linkw %fp,#-80 42354: 48d7 007c moveml %d2-%d6,%sp@ 42358: 282e 0008 movel %fp@(8),%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 ); 4235c: 240e movel %fp,%d2 4235e: 0682 ffff ffc7 addil #-57,%d2 42364: 2f04 movel %d4,%sp@- const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 42366: 262e 000c movel %fp@(12),%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 ); 4236a: 4eb9 0004 fd3c jsr 4fd3c 42370: 588f addql #4,%sp 42372: 486e fffc pea %fp@(-4) const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 42376: 2c2e 0010 movel %fp@(16),%d6 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 ); 4237a: 2f02 movel %d2,%sp@- const char *token, /* IN */ mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { 4237c: 2a2e 0014 movel %fp@(20),%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 ); 42380: 2f00 movel %d0,%sp@- 42382: 2f04 movel %d4,%sp@- 42384: 4eb9 0004 aa28 jsr 4aa28 /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) 4238a: 4fef 0010 lea %sp@(16),%sp 4238e: 2003 movel %d3,%d0 42390: 0280 0000 f000 andil #61440,%d0 42396: 0c80 0000 4000 cmpil #16384,%d0 4239c: 6756 beqs 423f4 type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) 4239e: 0c80 0000 8000 cmpil #32768,%d0 423a4: 6752 beqs 423f8 type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { 423a6: 0c80 0000 6000 cmpil #24576,%d0 423ac: 673a beqs 423e8 423ae: 0c80 0000 2000 cmpil #8192,%d0 423b4: 6732 beqs 423e8 <== ALWAYS TAKEN type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); } else if (S_ISFIFO(mode)) 423b6: 0c80 0000 1000 cmpil #4096,%d0 <== NOT EXECUTED 423bc: 673e beqs 423fc <== NOT EXECUTED mode_t mode, /* IN */ dev_t dev, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN/OUT */ ) { IMFS_token_types type = 0; 423be: 4280 clrl %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 ); 423c0: 486e ffe8 pea %fp@(-24) 423c4: 2f03 movel %d3,%sp@- 423c6: 2f02 movel %d2,%sp@- 423c8: 2f00 movel %d0,%sp@- 423ca: 2f2e 0018 movel %fp@(24),%sp@- 423ce: 4eb9 0004 9efa jsr 49efa if ( !new_node ) 423d4: 4fef 0014 lea %sp@(20),%sp 423d8: 4a80 tstl %d0 423da: 6724 beqs 42400 <== NEVER TAKEN rtems_set_errno_and_return_minus_one( ENOMEM ); return 0; 423dc: 4280 clrl %d0 } 423de: 4cee 007c ffb0 moveml %fp@(-80),%d2-%d6 423e4: 4e5e unlk %fp 423e6: 4e75 rts type = IMFS_DIRECTORY; else if ( S_ISREG(mode) ) type = IMFS_MEMORY_FILE; else if ( S_ISBLK(mode) || S_ISCHR(mode) ) { type = IMFS_DEVICE; rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 423e8: 2d46 ffe8 movel %d6,%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; 423ec: 7002 moveq #2,%d0 rtems_filesystem_split_dev_t( dev, info.device.major, info.device.minor ); 423ee: 2d45 ffec movel %d5,%fp@(-20) 423f2: 60cc bras 423c0 /* * Figure out what type of IMFS node this is. */ if ( S_ISDIR(mode) ) type = IMFS_DIRECTORY; 423f4: 7001 moveq #1,%d0 423f6: 60c8 bras 423c0 else if ( S_ISREG(mode) ) type = IMFS_MEMORY_FILE; 423f8: 7005 moveq #5,%d0 423fa: 60c4 bras 423c0 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; 423fc: 7007 moveq #7,%d0 <== NOT EXECUTED 423fe: 60c0 bras 423c0 <== NOT EXECUTED * existed. The result was simpler code which should not have * this path. */ new_node = IMFS_create_node( pathloc, type, new_name, mode, &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 42400: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 42406: 720c moveq #12,%d1 <== NOT EXECUTED 42408: 2040 moveal %d0,%a0 <== NOT EXECUTED 4240a: 70ff moveq #-1,%d0 <== NOT EXECUTED return 0; } 4240c: 4cee 007c ffb0 moveml %fp@(-80),%d2-%d6 <== NOT EXECUTED * existed. The result was simpler code which should not have * this path. */ new_node = IMFS_create_node( pathloc, type, new_name, mode, &info ); if ( !new_node ) rtems_set_errno_and_return_minus_one( ENOMEM ); 42412: 2081 movel %d1,%a0@ <== NOT EXECUTED return 0; } 42414: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 00042418 : /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 42418: 7001 moveq #1,%d0 <== NOT EXECUTED #include int IMFS_mount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 4241a: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4241e: 226e 0008 moveal %fp@(8),%a1 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 42422: 2069 0008 moveal %a1@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 42426: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 4242a: 660a bnes 42436 <== 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; 4242c: 2149 0058 movel %a1,%a0@(88) <== NOT EXECUTED return 0; 42430: 4280 clrl %d0 <== NOT EXECUTED } 42432: 4e5e unlk %fp <== NOT EXECUTED 42434: 4e75 rts <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 42436: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 4243c: 7214 moveq #20,%d1 <== NOT EXECUTED 4243e: 2040 moveal %d0,%a0 <== NOT EXECUTED 42440: 70ff moveq #-1,%d0 <== NOT EXECUTED * the mounted file system. */ node->info.directory.mt_fs = mt_entry; return 0; } 42442: 4e5e unlk %fp <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 42444: 2081 movel %d1,%a0@ <== NOT EXECUTED * the mounted file system. */ node->info.directory.mt_fs = mt_entry; return 0; } =============================================================================== 00044da0 : * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 44da0: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44da4: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 44daa: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44dac: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED * This routine prints the contents of the specified jnode. */ void IMFS_print_jnode( IMFS_jnode_t *the_jnode ) { 44db0: 246e 0008 moveal %fp@(8),%a2 <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); 44db4: 486a 000c pea %a2@(12) <== NOT EXECUTED 44db8: 4eb9 0005 33bc jsr 533bc <== NOT EXECUTED switch( the_jnode->type ) { 44dbe: 202a 0048 movel %a2@(72),%d0 <== NOT EXECUTED 44dc2: 508f addql #8,%sp <== NOT EXECUTED 44dc4: 7207 moveq #7,%d1 <== NOT EXECUTED 44dc6: b280 cmpl %d0,%d1 <== NOT EXECUTED 44dc8: 6424 bccs 44dee <== NOT EXECUTED case IMFS_FIFO: fprintf(stdout, " FIFO not printed\n" ); return; default: fprintf(stdout, " bad type %d\n", the_jnode->type ); 44dca: 2f00 movel %d0,%sp@- <== NOT EXECUTED 44dcc: 4879 0006 2f43 pea 62f43 <== NOT EXECUTED 44dd2: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44dd8: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44ddc: 4eb9 0005 326e jsr 5326e <== NOT EXECUTED return; } puts(""); } 44de2: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED fprintf(stdout, " FIFO not printed\n" ); return; default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; 44de6: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED } puts(""); } 44dea: 4e5e unlk %fp <== NOT EXECUTED 44dec: 4e75 rts <== NOT EXECUTED ) { IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { 44dee: 323b 0a08 movew %pc@(44df8 ,%d0:l:2),%d1<== NOT EXECUTED 44df2: 48c1 extl %d1 <== NOT EXECUTED 44df4: 4efb 1802 jmp %pc@(44df8 ,%d1:l)<== NOT EXECUTED 44df8: ffd2 .short 0xffd2 <== NOT EXECUTED 44dfa: 003a .short 0x003a <== NOT EXECUTED 44dfc: 0066 .short 0x0066 <== NOT EXECUTED 44dfe: 0010 .short 0x0010 <== NOT EXECUTED 44e00: 0010 .short 0x0010 <== NOT EXECUTED 44e02: 009e 00d2 010a oril #13762826,%d6 <== NOT EXECUTED case IMFS_HARD_LINK: fprintf(stdout, " links not printed\n" ); return; case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); 44e08: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44e0e: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44e12: 4878 0013 pea 13 <== NOT EXECUTED 44e16: 4878 0001 pea 1 <== NOT EXECUTED 44e1a: 4879 0006 2f1c pea 62f1c <== NOT EXECUTED 44e20: 4eb9 0005 3f24 jsr 53f24 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44e26: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED fprintf(stdout, " links not printed\n" ); return; case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); return; 44e2a: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44e2e: 4e5e unlk %fp <== NOT EXECUTED 44e30: 4e75 rts <== NOT EXECUTED IMFS_assert( the_jnode ); fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { case IMFS_DIRECTORY: fprintf(stdout, "/" ); 44e32: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44e38: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44e3c: 4878 002f pea 2f <== NOT EXECUTED 44e40: 4eb9 0005 32ec jsr 532ec <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44e46: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e4a: 203c 0006 35f6 movel #407030,%d0 <== NOT EXECUTED fprintf(stdout, "%s", the_jnode->name ); switch( the_jnode->type ) { case IMFS_DIRECTORY: fprintf(stdout, "/" ); break; 44e50: 508f addql #8,%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e52: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 44e56: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e58: 4ef9 0005 4c46 jmp 54c46 <== NOT EXECUTED case IMFS_DIRECTORY: fprintf(stdout, "/" ); break; case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", 44e5e: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 44e62: 2f2a 004c movel %a2@(76),%sp@- <== NOT EXECUTED 44e66: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44e6c: 4879 0006 2eee pea 62eee <== NOT EXECUTED 44e72: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44e76: 4eb9 0005 326e jsr 5326e <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44e7c: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e80: 203c 0006 35f6 movel #407030,%d0 <== NOT EXECUTED break; case IMFS_DEVICE: fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", the_jnode->info.device.major, the_jnode->info.device.minor ); break; 44e86: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e8a: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 44e8e: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44e90: 4ef9 0005 4c46 jmp 54c46 <== NOT EXECUTED the_jnode->info.file.indirect, the_jnode->info.file.doubly_indirect, the_jnode->info.file.triply_indirect ); #else fprintf(stdout, " (file %" PRId32 ")", 44e96: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 44e9a: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44ea0: 4879 0006 2f10 pea 62f10 <== NOT EXECUTED 44ea6: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44eaa: 4eb9 0005 326e jsr 5326e <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44eb0: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44eb4: 203c 0006 35f6 movel #407030,%d0 <== NOT EXECUTED ); #else fprintf(stdout, " (file %" PRId32 ")", (uint32_t)the_jnode->info.file.size ); #endif break; 44eba: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44ebe: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 44ec2: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44ec4: 4ef9 0005 4c46 jmp 54c46 <== NOT EXECUTED fprintf(stdout, " (device %" PRId32 ", %" PRId32 ")", the_jnode->info.device.major, the_jnode->info.device.minor ); break; case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", 44eca: 2f2a 0054 movel %a2@(84),%sp@- <== NOT EXECUTED 44ece: 2f2a 0050 movel %a2@(80),%sp@- <== NOT EXECUTED 44ed2: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44ed8: 4879 0006 2f01 pea 62f01 <== NOT EXECUTED 44ede: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44ee2: 4eb9 0005 326e jsr 5326e <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44ee8: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44eec: 203c 0006 35f6 movel #407030,%d0 <== NOT EXECUTED case IMFS_LINEAR_FILE: fprintf(stdout, " (file %" PRId32 " %p)", (uint32_t)the_jnode->info.linearfile.size, the_jnode->info.linearfile.direct ); break; 44ef2: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44ef6: 2d40 0008 movel %d0,%fp@(8) <== NOT EXECUTED } 44efa: 4e5e unlk %fp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); 44efc: 4ef9 0005 4c46 jmp 54c46 <== NOT EXECUTED case IMFS_SYM_LINK: fprintf(stdout, " links not printed\n" ); return; case IMFS_FIFO: fprintf(stdout, " FIFO not printed\n" ); 44f02: 2079 0006 4888 moveal 64888 <_impure_ptr>,%a0 <== NOT EXECUTED 44f08: 2f28 0008 movel %a0@(8),%sp@- <== NOT EXECUTED 44f0c: 4878 0012 pea 12 <== NOT EXECUTED 44f10: 4878 0001 pea 1 <== NOT EXECUTED 44f14: 4879 0006 2f30 pea 62f30 <== NOT EXECUTED 44f1a: 4eb9 0005 3f24 jsr 53f24 <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44f20: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED fprintf(stdout, " links not printed\n" ); return; case IMFS_FIFO: fprintf(stdout, " FIFO not printed\n" ); return; 44f24: 4fef 0010 lea %sp@(16),%sp <== NOT EXECUTED default: fprintf(stdout, " bad type %d\n", the_jnode->type ); return; } puts(""); } 44f28: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004245c : ssize_t IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 4245c: 4e56 fff4 linkw %fp,#-12 <== NOT EXECUTED IMFS_jnode_t *node; ssize_t i; node = loc->node_access; 42460: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED ssize_t IMFS_readlink( rtems_filesystem_location_info_t *loc, char *buf, /* OUT */ size_t bufsize ) { 42464: 48d7 0c04 moveml %d2/%a2-%a3,%sp@ <== NOT EXECUTED 42468: 266e 000c moveal %fp@(12),%a3 <== NOT EXECUTED 4246c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED IMFS_jnode_t *node; ssize_t i; node = loc->node_access; 42470: 2450 moveal %a0@,%a2 <== NOT EXECUTED IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 42472: 672a beqs 4249e <== NOT EXECUTED 42474: 206a 004c moveal %a2@(76),%a0 <== NOT EXECUTED 42478: 1210 moveb %a0@,%d1 <== NOT EXECUTED 4247a: 6722 beqs 4249e <== NOT EXECUTED 4247c: 91c8 subal %a0,%a0 <== NOT EXECUTED 4247e: 4280 clrl %d0 <== NOT EXECUTED 42480: 5280 addql #1,%d0 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; 42482: 1781 8800 moveb %d1,%a3@(00000000,%a0:l) <== NOT EXECUTED node = loc->node_access; IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 42486: 2040 moveal %d0,%a0 <== NOT EXECUTED 42488: b480 cmpl %d0,%d2 <== NOT EXECUTED 4248a: 630a blss 42496 <== NOT EXECUTED 4248c: 226a 004c moveal %a2@(76),%a1 <== NOT EXECUTED 42490: 1231 0800 moveb %a1@(00000000,%d0:l),%d1 <== NOT EXECUTED 42494: 66ea bnes 42480 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 42496: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 4249a: 4e5e unlk %fp <== NOT EXECUTED 4249c: 4e75 rts <== NOT EXECUTED node = loc->node_access; IMFS_assert( node->type == IMFS_SYM_LINK ); for( i=0; ((iinfo.sym_link.name[i] != '\0')); i++ ) 4249e: 4280 clrl %d0 <== NOT EXECUTED buf[i] = node->info.sym_link.name[i]; return i; } 424a0: 4cd7 0c04 moveml %sp@,%d2/%a2-%a3 <== NOT EXECUTED 424a4: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 000424a8 : 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 */ ) { 424a8: 4e56 fff8 linkw %fp,#-8 <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_jnode_t *new_parent; the_jnode = old_loc->node_access; 424ac: 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 */ ) { 424b0: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; IMFS_jnode_t *new_parent; the_jnode = old_loc->node_access; strncpy( the_jnode->name, new_name, IMFS_NAME_MAX ); 424b2: 4878 0020 pea 20 <== NOT EXECUTED 424b6: 2f2e 0014 movel %fp@(20),%sp@- <== NOT EXECUTED ) { IMFS_jnode_t *the_jnode; IMFS_jnode_t *new_parent; the_jnode = old_loc->node_access; 424ba: 2450 moveal %a0@,%a2 <== NOT EXECUTED strncpy( the_jnode->name, new_name, IMFS_NAME_MAX ); 424bc: 486a 000c pea %a2@(12) <== NOT EXECUTED 424c0: 4eb9 0004 fd54 jsr 4fd54 <== NOT EXECUTED if ( the_jnode->Parent != NULL ) 424c6: 4fef 000c lea %sp@(12),%sp <== NOT EXECUTED 424ca: 4aaa 0008 tstl %a2@(8) <== NOT EXECUTED 424ce: 670a beqs 424da <== NOT EXECUTED */ RTEMS_INLINE_ROUTINE void rtems_chain_extract( rtems_chain_node *the_node ) { _Chain_Extract( the_node ); 424d0: 2f0a movel %a2,%sp@- <== NOT EXECUTED 424d2: 4eb9 0004 6f08 jsr 46f08 <_Chain_Extract> <== NOT EXECUTED 424d8: 588f addql #4,%sp <== NOT EXECUTED rtems_chain_extract( (rtems_chain_node *) the_jnode ); new_parent = new_parent_loc->node_access; 424da: 206e 0010 moveal %fp@(16),%a0 <== NOT EXECUTED 424de: 2050 moveal %a0@,%a0 <== NOT EXECUTED the_jnode->Parent = new_parent; 424e0: 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 ); 424e4: 2f0a movel %a2,%sp@- <== NOT EXECUTED 424e6: 4868 004c pea %a0@(76) <== NOT EXECUTED 424ea: 4eb9 0004 6ed0 jsr 46ed0 <_Chain_Append> <== NOT EXECUTED rtems_chain_append( &new_parent->info.directory.Entries, &the_jnode->Node ); /* * Update the time. */ IMFS_update_ctime( the_jnode ); 424f0: 42a7 clrl %sp@- <== NOT EXECUTED 424f2: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 424f6: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 424fc: 256e fff8 0044 movel %fp@(-8),%a2@(68) <== NOT EXECUTED return 0; } 42502: 4280 clrl %d0 <== NOT EXECUTED 42504: 246e fff4 moveal %fp@(-12),%a2 <== NOT EXECUTED 42508: 4e5e unlk %fp <== NOT EXECUTED =============================================================================== 0004abe4 : int IMFS_rmnod( rtems_filesystem_location_info_t *parent_pathloc, /* IN */ rtems_filesystem_location_info_t *pathloc /* IN */ ) { 4abe4: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 4abe8: 206e 000c moveal %fp@(12),%a0 <== NOT EXECUTED 4abec: 2f02 movel %d2,%sp@- <== NOT EXECUTED IMFS_jnode_t *jnode = (IMFS_jnode_t *) pathloc->node_access; 4abee: 2410 movel %a0@,%d2 <== NOT EXECUTED IMFS_create_orphan( jnode ); 4abf0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4abf2: 4eb9 0004 ab08 jsr 4ab08 <== NOT EXECUTED IMFS_check_node_remove( jnode ); 4abf8: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4abfa: 4eb9 0004 ab4c jsr 4ab4c <== NOT EXECUTED return 0; } 4ac00: 242e fffc movel %fp@(-4),%d2 <== NOT EXECUTED 4ac04: 4280 clrl %d0 <== NOT EXECUTED 4ac06: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 0004ac0c : IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 4ac0c: 7007 moveq #7,%d0 int IMFS_stat( rtems_filesystem_location_info_t *loc, struct stat *buf ) { 4ac0e: 4e56 0000 linkw %fp,#0 4ac12: 206e 000c moveal %fp@(12),%a0 4ac16: 2f0a movel %a2,%sp@- 4ac18: 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; 4ac1c: 2252 moveal %a2@,%a1 switch ( the_jnode->type ) { 4ac1e: b0a9 0048 cmpl %a1@(72),%d0 4ac22: 6418 bccs 4ac3c <== ALWAYS TAKEN case IMFS_FIFO: buf->st_size = 0; break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4ac24: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4ac2a: 246e fffc moveal %fp@(-4),%a2 <== NOT EXECUTED case IMFS_FIFO: buf->st_size = 0; break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4ac2e: 2040 moveal %d0,%a0 <== NOT EXECUTED 4ac30: 70ff moveq #-1,%d0 <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4ac32: 4e5e unlk %fp <== NOT EXECUTED case IMFS_FIFO: buf->st_size = 0; break; default: rtems_set_errno_and_return_minus_one( ENOTSUP ); 4ac34: 20bc 0000 0086 movel #134,%a0@ <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4ac3a: 4e75 rts <== NOT EXECUTED IMFS_device_t *io; the_jnode = loc->node_access; switch ( the_jnode->type ) { 4ac3c: 2029 0048 movel %a1@(72),%d0 4ac40: d080 addl %d0,%d0 4ac42: 303b 0808 movew %pc@(4ac4c ,%d0:l),%d0 4ac46: 48c0 extl %d0 4ac48: 4efb 0802 jmp %pc@(4ac4c ,%d0:l) 4ac4c: ffd8 .short 0xffd8 <== NOT EXECUTED 4ac4e: ffd8 .short 0xffd8 <== NOT EXECUTED 4ac50: 00c2 bitrev %d2 <== NOT EXECUTED 4ac52: ffd8 .short 0xffd8 <== NOT EXECUTED 4ac54: 0010 .short 0x0010 <== NOT EXECUTED 4ac56: 006a .short 0x006a <== NOT EXECUTED 4ac58: 006a .short 0x006a <== NOT EXECUTED 4ac5a: 0010 .short 0x0010 <== 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; 4ac5c: 246a 0010 moveal %a2@(16),%a2 <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; case IMFS_FIFO: buf->st_size = 0; 4ac60: 4280 clrl %d0 <== NOT EXECUTED 4ac62: 4281 clrl %d1 <== 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; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4ac64: 246a 0034 moveal %a2@(52),%a2 <== NOT EXECUTED case IMFS_SYM_LINK: buf->st_size = 0; break; case IMFS_FIFO: buf->st_size = 0; 4ac68: 2140 001e movel %d0,%a0@(30) <== NOT EXECUTED 4ac6c: 2141 0022 movel %d1,%a0@(34) <== 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; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4ac70: 2212 movel %a2@,%d1 <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; 4ac72: 4280 clrl %d0 <== NOT EXECUTED */ fs_info = loc->mt_entry->fs_info; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); buf->st_mode = the_jnode->st_mode; 4ac74: 2169 002e 000c movel %a1@(46),%a0@(12) <== NOT EXECUTED buf->st_nlink = the_jnode->st_nlink; 4ac7a: 3169 0032 0010 movew %a1@(50),%a0@(16) <== NOT EXECUTED buf->st_ino = the_jnode->st_ino; 4ac80: 2169 0034 0008 movel %a1@(52),%a0@(8) <== NOT EXECUTED buf->st_uid = the_jnode->st_uid; 4ac86: 3169 0038 0012 movew %a1@(56),%a0@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; 4ac8c: 3169 003a 0014 movew %a1@(58),%a0@(20) <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; 4ac92: 2169 003c 0026 movel %a1@(60),%a0@(38) <== NOT EXECUTED buf->st_mtime = the_jnode->stat_mtime; 4ac98: 2169 0040 002e movel %a1@(64),%a0@(46) <== NOT EXECUTED buf->st_ctime = the_jnode->stat_ctime; 4ac9e: 2169 0044 0036 movel %a1@(68),%a0@(54) <== 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; buf->st_dev = 4aca4: 20bc 0000 fffe movel #65534,%a0@ <== NOT EXECUTED 4acaa: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; } 4acae: 246e fffc moveal %fp@(-4),%a2 4acb2: 4e5e unlk %fp 4acb4: 4e75 rts /* * The device number of the IMFS is the major number and the minor is the * instance. */ fs_info = loc->mt_entry->fs_info; 4acb6: 246a 0010 moveal %a2@(16),%a2 <== NOT EXECUTED buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); break; case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 4acba: 2029 004c movel %a1@(76),%d0 <== NOT EXECUTED 4acbe: 2229 0050 movel %a1@(80),%d1 <== 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; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4acc2: 246a 0034 moveal %a2@(52),%a2 <== NOT EXECUTED buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); break; case IMFS_LINEAR_FILE: case IMFS_MEMORY_FILE: buf->st_size = the_jnode->info.file.size; 4acc6: 2140 001e movel %d0,%a0@(30) <== NOT EXECUTED 4acca: 2141 0022 movel %d1,%a0@(34) <== 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; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4acce: 2212 movel %a2@,%d1 <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; 4acd0: 4280 clrl %d0 <== NOT EXECUTED */ fs_info = loc->mt_entry->fs_info; buf->st_dev = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); buf->st_mode = the_jnode->st_mode; 4acd2: 2169 002e 000c movel %a1@(46),%a0@(12) <== NOT EXECUTED buf->st_nlink = the_jnode->st_nlink; 4acd8: 3169 0032 0010 movew %a1@(50),%a0@(16) <== NOT EXECUTED buf->st_ino = the_jnode->st_ino; 4acde: 2169 0034 0008 movel %a1@(52),%a0@(8) <== NOT EXECUTED buf->st_uid = the_jnode->st_uid; 4ace4: 3169 0038 0012 movew %a1@(56),%a0@(18) <== NOT EXECUTED buf->st_gid = the_jnode->st_gid; 4acea: 3169 003a 0014 movew %a1@(58),%a0@(20) <== NOT EXECUTED buf->st_atime = the_jnode->stat_atime; 4acf0: 2169 003c 0026 movel %a1@(60),%a0@(38) <== NOT EXECUTED buf->st_mtime = the_jnode->stat_mtime; 4acf6: 2169 0040 002e movel %a1@(64),%a0@(46) <== NOT EXECUTED buf->st_ctime = the_jnode->stat_ctime; 4acfc: 2169 0044 0036 movel %a1@(68),%a0@(54) <== 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; buf->st_dev = 4ad02: 20bc 0000 fffe movel #65534,%a0@ <== NOT EXECUTED 4ad08: 2141 0004 movel %d1,%a0@(4) <== NOT EXECUTED 4ad0c: 60a0 bras 4acae <== 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; 4ad0e: 246a 0010 moveal %a2@(16),%a2 switch ( the_jnode->type ) { case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); 4ad12: 2029 0050 movel %a1@(80),%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 = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4ad16: 246a 0034 moveal %a2@(52),%a2 switch ( the_jnode->type ) { case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); 4ad1a: 2169 004c 0016 movel %a1@(76),%a0@(22) * 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 = rtems_filesystem_make_dev_t( IMFS_DEVICE_MAJOR_NUMBER, fs_info->instance ); 4ad20: 2212 movel %a2@,%d1 buf->st_mode = the_jnode->st_mode; 4ad22: 2169 002e 000c movel %a1@(46),%a0@(12) buf->st_nlink = the_jnode->st_nlink; 4ad28: 3169 0032 0010 movew %a1@(50),%a0@(16) buf->st_ino = the_jnode->st_ino; 4ad2e: 2169 0034 0008 movel %a1@(52),%a0@(8) buf->st_uid = the_jnode->st_uid; 4ad34: 3169 0038 0012 movew %a1@(56),%a0@(18) buf->st_gid = the_jnode->st_gid; 4ad3a: 3169 003a 0014 movew %a1@(58),%a0@(20) buf->st_atime = the_jnode->stat_atime; 4ad40: 2169 003c 0026 movel %a1@(60),%a0@(38) buf->st_mtime = the_jnode->stat_mtime; 4ad46: 2169 0040 002e movel %a1@(64),%a0@(46) buf->st_ctime = the_jnode->stat_ctime; 4ad4c: 2169 0044 0036 movel %a1@(68),%a0@(54) switch ( the_jnode->type ) { case IMFS_DEVICE: io = &the_jnode->info.device; buf->st_rdev = rtems_filesystem_make_dev_t( io->major, io->minor ); 4ad52: 2140 001a movel %d0,%a0@(26) buf->st_atime = the_jnode->stat_atime; buf->st_mtime = the_jnode->stat_mtime; buf->st_ctime = the_jnode->stat_ctime; return 0; 4ad56: 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 = 4ad58: 20bc 0000 fffe movel #65534,%a0@ 4ad5e: 2141 0004 movel %d1,%a0@(4) 4ad62: 6000 ff4a braw 4acae ... =============================================================================== 0004250c : int IMFS_symlink( rtems_filesystem_location_info_t *parent_loc, const char *link_name, const char *node_name ) { 4250c: 4e56 ffc4 linkw %fp,#-60 <== NOT EXECUTED 42510: 2f03 movel %d3,%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 ); 42512: 260e movel %fp,%d3 <== NOT EXECUTED 42514: 0683 ffff ffc7 addil #-57,%d3 <== NOT EXECUTED int IMFS_symlink( rtems_filesystem_location_info_t *parent_loc, const char *link_name, const char *node_name ) { 4251a: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4251c: 242e 0010 movel %fp@(16),%d2 <== NOT EXECUTED int i; /* * Remove any separators at the end of the string. */ IMFS_get_token( node_name, strlen( node_name ), new_name, &i ); 42520: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42522: 4eb9 0004 fd3c jsr 4fd3c <== NOT EXECUTED 42528: 588f addql #4,%sp <== NOT EXECUTED 4252a: 486e fffc pea %fp@(-4) <== NOT EXECUTED 4252e: 2f03 movel %d3,%sp@- <== NOT EXECUTED 42530: 2f00 movel %d0,%sp@- <== NOT EXECUTED 42532: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42534: 4eb9 0004 aa28 jsr 4aa28 <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup(link_name); 4253a: 2f2e 000c movel %fp@(12),%sp@- <== NOT EXECUTED 4253e: 4eb9 0004 f8ac jsr 4f8ac <== NOT EXECUTED if (info.sym_link.name == NULL) { 42544: 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); 42548: 2d40 ffe8 movel %d0,%fp@(-24) <== NOT EXECUTED if (info.sym_link.name == NULL) { 4254c: 6730 beqs 4257e <== 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( 4254e: 486e ffe8 pea %fp@(-24) <== NOT EXECUTED 42552: 2f3c 0000 a1ff movel #41471,%sp@- <== NOT EXECUTED 42558: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4255a: 4878 0004 pea 4 <== NOT EXECUTED 4255e: 2f2e 0008 movel %fp@(8),%sp@- <== NOT EXECUTED 42562: 4eb9 0004 9efa jsr 49efa <== NOT EXECUTED new_name, ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { 42568: 4fef 0014 lea %sp@(20),%sp <== NOT EXECUTED 4256c: 4a80 tstl %d0 <== NOT EXECUTED 4256e: 6728 beqs 42598 <== NOT EXECUTED free(info.sym_link.name); rtems_set_errno_and_return_minus_one(ENOMEM); } return 0; } 42570: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED if (new_node == NULL) { free(info.sym_link.name); rtems_set_errno_and_return_minus_one(ENOMEM); } return 0; 42574: 4280 clrl %d0 <== NOT EXECUTED } 42576: 262e ffc0 movel %fp@(-64),%d3 <== NOT EXECUTED 4257a: 4e5e unlk %fp <== NOT EXECUTED 4257c: 4e75 rts <== NOT EXECUTED /* * Duplicate link name */ info.sym_link.name = strdup(link_name); if (info.sym_link.name == NULL) { rtems_set_errno_and_return_minus_one(ENOMEM); 4257e: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 42584: 740c moveq #12,%d2 <== NOT EXECUTED 42586: 2040 moveal %d0,%a0 <== NOT EXECUTED 42588: 70ff moveq #-1,%d0 <== NOT EXECUTED 4258a: 2082 movel %d2,%a0@ <== NOT EXECUTED free(info.sym_link.name); rtems_set_errno_and_return_minus_one(ENOMEM); } return 0; } 4258c: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED 42590: 262e ffc0 movel %fp@(-64),%d3 <== NOT EXECUTED 42594: 4e5e unlk %fp <== NOT EXECUTED 42596: 4e75 rts <== NOT EXECUTED ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )), &info ); if (new_node == NULL) { free(info.sym_link.name); 42598: 2f2e ffe8 movel %fp@(-24),%sp@- <== NOT EXECUTED 4259c: 4eb9 0004 2cfc jsr 42cfc <== NOT EXECUTED rtems_set_errno_and_return_minus_one(ENOMEM); 425a2: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED } return 0; } 425a8: 242e ffbc movel %fp@(-68),%d2 <== NOT EXECUTED &info ); if (new_node == NULL) { free(info.sym_link.name); rtems_set_errno_and_return_minus_one(ENOMEM); 425ac: 2040 moveal %d0,%a0 <== NOT EXECUTED 425ae: 720c moveq #12,%d1 <== NOT EXECUTED 425b0: 588f addql #4,%sp <== NOT EXECUTED 425b2: 70ff moveq #-1,%d0 <== NOT EXECUTED } return 0; } 425b4: 262e ffc0 movel %fp@(-64),%d3 <== NOT EXECUTED 425b8: 4e5e unlk %fp <== NOT EXECUTED &info ); if (new_node == NULL) { free(info.sym_link.name); rtems_set_errno_and_return_minus_one(ENOMEM); 425ba: 2081 movel %d1,%a0@ <== NOT EXECUTED } return 0; } ... =============================================================================== 000425c0 : /* * If this is the last last pointer to the node * free the node. */ if ( node->type == IMFS_HARD_LINK ) { 425c0: 7003 moveq #3,%d0 <== NOT EXECUTED int IMFS_unlink( rtems_filesystem_location_info_t *parentloc, /* IN */ rtems_filesystem_location_info_t *loc /* IN */ ) { 425c2: 4e56 ffd0 linkw %fp,#-48 <== NOT EXECUTED 425c6: 48d7 0c1c moveml %d2-%d4/%a2-%a3,%sp@ <== NOT EXECUTED 425ca: 246e 000c moveal %fp@(12),%a2 <== NOT EXECUTED 425ce: 242e 0008 movel %fp@(8),%d2 <== NOT EXECUTED IMFS_jnode_t *node; rtems_filesystem_location_info_t the_link; int result = 0; node = loc->node_access; 425d2: 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 ) { 425d4: b0ab 0048 cmpl %a3@(72),%d0 <== NOT EXECUTED 425d8: 671a beqs 425f4 <== NOT EXECUTED /* * Now actually free the node we were asked to free. */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); 425da: 2f0a movel %a2,%sp@- <== NOT EXECUTED 425dc: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 425e0: 2f02 movel %d2,%sp@- <== NOT EXECUTED 425e2: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 425e6: 4e90 jsr %a0@ <== NOT EXECUTED return result; 425e8: 508f addql #8,%sp <== NOT EXECUTED } 425ea: 4cee 0c1c ffd0 moveml %fp@(-48),%d2-%d4/%a2-%a3 <== NOT EXECUTED 425f0: 4e5e unlk %fp <== NOT EXECUTED 425f2: 4e75 rts <== NOT EXECUTED * free the node. */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) 425f4: 202b 004c movel %a3@(76),%d0 <== NOT EXECUTED 425f8: 6700 0090 beqw 4268a <== NOT EXECUTED rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; 425fc: 41ea 0004 lea %a2@(4),%a0 <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 42600: 260e movel %fp,%d3 <== NOT EXECUTED 42602: 0683 ffff ffe4 addil #-28,%d3 <== 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) 42608: 7801 moveq #1,%d4 <== NOT EXECUTED if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); the_link = *loc; 4260a: 2d58 ffe8 movel %a0@+,%fp@(-24) <== NOT EXECUTED 4260e: 2d58 ffec movel %a0@+,%fp@(-20) <== NOT EXECUTED 42612: 2d58 fff0 movel %a0@+,%fp@(-16) <== NOT EXECUTED 42616: 2d50 fff4 movel %a0@,%fp@(-12) <== NOT EXECUTED the_link.node_access = node->info.hard_link.link_node; IMFS_Set_handlers( &the_link ); 4261a: 2f03 movel %d3,%sp@- <== 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; 4261c: 2d40 ffe4 movel %d0,%fp@(-28) <== NOT EXECUTED IMFS_Set_handlers( &the_link ); 42620: 4eb9 0004 a12c jsr 4a12c <== 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) 42626: 206b 004c moveal %a3@(76),%a0 <== NOT EXECUTED 4262a: 4281 clrl %d1 <== NOT EXECUTED 4262c: 588f addql #4,%sp <== NOT EXECUTED 4262e: 3028 0032 movew %a0@(50),%d0 <== NOT EXECUTED 42632: 3200 movew %d0,%d1 <== NOT EXECUTED 42634: b881 cmpl %d1,%d4 <== NOT EXECUTED 42636: 6730 beqs 42668 <== NOT EXECUTED if ( result != 0 ) return -1; } else { node->info.hard_link.link_node->st_nlink --; 42638: 5380 subql #1,%d0 <== NOT EXECUTED 4263a: 3140 0032 movew %d0,%a0@(50) <== NOT EXECUTED IMFS_update_ctime( node->info.hard_link.link_node ); 4263e: 42a7 clrl %sp@- <== NOT EXECUTED 42640: 486e fff8 pea %fp@(-8) <== NOT EXECUTED 42644: 4eb9 0004 2d8c jsr 42d8c <== NOT EXECUTED 4264a: 206b 004c moveal %a3@(76),%a0 <== NOT EXECUTED 4264e: 508f addql #8,%sp <== NOT EXECUTED 42650: 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 ); 42656: 2f0a movel %a2,%sp@- <== NOT EXECUTED 42658: 206a 0008 moveal %a2@(8),%a0 <== NOT EXECUTED 4265c: 2f02 movel %d2,%sp@- <== NOT EXECUTED 4265e: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 42662: 4e90 jsr %a0@ <== NOT EXECUTED return result; 42664: 508f addql #8,%sp <== NOT EXECUTED 42666: 6082 bras 425ea <== NOT EXECUTED * to remove the node that is a link and the node itself. */ if ( node->info.hard_link.link_node->st_nlink == 1) { result = (*the_link.handlers->rmnod_h)( parentloc, &the_link ); 42668: 2f03 movel %d3,%sp@- <== NOT EXECUTED 4266a: 206e ffec moveal %fp@(-20),%a0 <== NOT EXECUTED 4266e: 2f02 movel %d2,%sp@- <== NOT EXECUTED 42670: 2068 0034 moveal %a0@(52),%a0 <== NOT EXECUTED 42674: 4e90 jsr %a0@ <== NOT EXECUTED if ( result != 0 ) 42676: 508f addql #8,%sp <== NOT EXECUTED 42678: 4a80 tstl %d0 <== NOT EXECUTED 4267a: 6700 ff5e beqw 425da <== NOT EXECUTED return -1; 4267e: 70ff moveq #-1,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); return result; } 42680: 4cee 0c1c ffd0 moveml %fp@(-48),%d2-%d4/%a2-%a3 <== NOT EXECUTED 42686: 4e5e unlk %fp <== NOT EXECUTED 42688: 4e75 rts <== NOT EXECUTED */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); 4268a: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 42690: 7216 moveq #22,%d1 <== NOT EXECUTED 42692: 2040 moveal %d0,%a0 <== NOT EXECUTED 42694: 70ff moveq #-1,%d0 <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); return result; } 42696: 4cee 0c1c ffd0 moveml %fp@(-48),%d2-%d4/%a2-%a3 <== NOT EXECUTED */ if ( node->type == IMFS_HARD_LINK ) { if ( !node->info.hard_link.link_node ) rtems_set_errno_and_return_minus_one( EINVAL ); 4269c: 2081 movel %d1,%a0@ <== NOT EXECUTED */ result = (*loc->handlers->rmnod_h)( parentloc, loc ); return result; } 4269e: 4e5e unlk %fp <== NOT EXECUTED ... =============================================================================== 000426a4 : /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 426a4: 7001 moveq #1,%d0 <== NOT EXECUTED #include int IMFS_unmount( rtems_filesystem_mount_table_entry_t *mt_entry ) { 426a6: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 426aa: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED IMFS_jnode_t *node; node = mt_entry->mt_point_node.node_access; 426ae: 2068 0008 moveal %a0@(8),%a0 <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) 426b2: b0a8 0048 cmpl %a0@(72),%d0 <== NOT EXECUTED 426b6: 6610 bnes 426c8 <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) 426b8: 4aa8 0058 tstl %a0@(88) <== NOT EXECUTED 426bc: 671c beqs 426da <== 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; 426be: 42a8 0058 clrl %a0@(88) <== NOT EXECUTED return 0; 426c2: 4280 clrl %d0 <== NOT EXECUTED } 426c4: 4e5e unlk %fp <== NOT EXECUTED 426c6: 4e75 rts <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 426c8: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 426ce: 7214 moveq #20,%d1 <== NOT EXECUTED 426d0: 2040 moveal %d0,%a0 <== NOT EXECUTED 426d2: 70ff moveq #-1,%d0 <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 426d4: 4e5e unlk %fp <== NOT EXECUTED /* * Is the node that we are mounting onto a directory node ? */ if ( node->type != IMFS_DIRECTORY ) rtems_set_errno_and_return_minus_one( ENOTDIR ); 426d6: 2081 movel %d1,%a0@ <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 426d8: 4e75 rts <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 426da: 4eb9 0004 e8e4 jsr 4e8e4 <__errno> <== NOT EXECUTED 426e0: 7216 moveq #22,%d1 <== NOT EXECUTED 426e2: 2040 moveal %d0,%a0 <== NOT EXECUTED 426e4: 70ff moveq #-1,%d0 <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } 426e6: 4e5e unlk %fp <== NOT EXECUTED /* * Did the node indicate that there was a directory mounted here? */ if ( node->info.directory.mt_fs == NULL ) rtems_set_errno_and_return_minus_one( EINVAL ); /* XXX */ 426e8: 2081 movel %d1,%a0@ <== NOT EXECUTED */ node->info.directory.mt_fs = NULL; return 0; } =============================================================================== 000426ec : int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ time_t modtime /* IN */ ) { 426ec: 4e56 0000 linkw %fp,#0 <== NOT EXECUTED 426f0: 206e 0008 moveal %fp@(8),%a0 <== NOT EXECUTED 426f4: 2f0a movel %a2,%sp@- <== NOT EXECUTED IMFS_jnode_t *the_jnode; the_jnode = (IMFS_jnode_t *) pathloc->node_access; 426f6: 2450 moveal %a0@,%a2 <== NOT EXECUTED the_jnode->stat_atime = actime; 426f8: 256e 000c 003c movel %fp@(12),%a2@(60) <== NOT EXECUTED the_jnode->stat_mtime = modtime; 426fe: 256e 0010 0040 movel %fp@(16),%a2@(64) <== NOT EXECUTED the_jnode->stat_ctime = time( NULL ); 42704: 42a7 clrl %sp@- <== NOT EXECUTED 42706: 4eb9 0005 2004 jsr 52004